当前在线人数16502
首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
各位老司机,进来讨论下microservice?
[版面:葵花宝典][首篇作者:guvest] , 2018年04月15日01:02:54 ,1337次阅读,24次回复
来APP回复,赚取更多伪币 关注本站公众号:
[首页] [上页][下页][末页] [分页:1 2 ]
guvest
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: guvest (我爱你老婆Anna), 信区: Programming
标  题: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Sun Apr 15 01:02:54 2018, 美东)

首先感谢之前各位讨论restful API。
我相信这些实战中的知识对大家都很有益。

各位老司机能否谈下什么叫micro services?
为啥热门了?怎么做?

ref
https://docs.microsoft.com/en-us/azure/architecture/microservices/


--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 47.]

 
Nisayer
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: Nisayer (si fata sinata), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Sun Apr 15 01:13:35 2018, 美东)

我觉得就是类似微内核那套东西,或者所谓的unix哲学

简单的说,就是所有的功能都break down成最小化功能的程序,然后之间通过标准接口
传送数据互相通讯

如果我记得不错,这就是amazon在十几年前就在做的事情,实在没有什么新意

实际上工程里最难的是如何把一个大工程分解为相对独立的小项目,但微服务不谈这个
,只谈为什么分解了之后会好

所以

天底下没有新鲜事情



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 45.]

 
groundhog09
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: groundhog09 (衰哥), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Sun Apr 15 09:49:41 2018, 美东)

人多活少玩这个行,否则维护就是个大问题。另外一个优点是high available,load
balancing, monitoring都做在framework里面了。但是缺点是性能,数据量大了就不
一定适用了。
【 在 Nisayer (si fata sinata) 的大作中提到: 】
: 我觉得就是类似微内核那套东西,或者所谓的unix哲学
: 简单的说,就是所有的功能都break down成最小化功能的程序,然后之间通过标准接口
: 传送数据互相通讯
: 如果我记得不错,这就是amazon在十几年前就在做的事情,实在没有什么新意
: 实际上工程里最难的是如何把一个大工程分解为相对独立的小项目,但微服务不谈这个
: ,只谈为什么分解了之后会好
: 所以
: 天底下没有新鲜事情



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2607:f2c0:937f:]

 
qiongren
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: qiongren (WSN大叔一名, 还需要说明?), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Sun Apr 15 23:00:16 2018, 美东)

见过做成microservice后latency 变差的, 因为以前调用library现在要用另外
service, 经过https, 即使Nginx再快网络再快, 也是慢了。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 24.]

 
sanwadie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: sanwadie (三娃爹), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 00:46:45 2018, 美东)

虽然经常把微服务挂在嘴边,但到了让我说出个所以然的时候,突然糊涂了。然后放狗
搜了吧,还是糊涂。

我司用过很多 Java 的牛B技术,从最早的EJB(至今觉得这个玩意儿就是一坨),然后
JMS,ESB,到现在在用的SOA,然后有开始炒微服务。

相信很多人都傻傻分不清 SOA 和 微服务的区别,我看了那么多资料,其实还是分不清
楚,反正能够糊弄人就行。

以下是我自己的观点,如果错误了,就当是个P,放过了 :-)

先过一下几个概念:

HTTP Service
HTTP 服务,在特定语境下和 HTTP API 等同

HTTP API
API 以 HTTP协议为基本载体,实现远程调用

RESTFul API
遵循Restful规范的 HTTP API

SOA
大型复杂基于HTTP的软件的架构方式,面向服务的架构,把各种软件功能,抽象成
HTTP 服务/API,这些服务通过SOA软件组合起来。这个架构中,有三个角色:
服务提供商
软件代理(SOA软件)
服务消费者
SOA软件,提供了很多额外的功能,用来简化服务自身的开发,比如,安全,版本控制
,服务组合和管理(Orchestration,governance)等等,SOA端还可集成ESB,MSG等各
种功能,同时
还兼做 LB,HA等等

Microservice
Microservice 本质上也是一种架构,把一个复杂基于HTTP的功能,按业务功能拆分成
若干子功能,每个子功能独立部署,多个子功能合并在一起,完成一个复杂的功能。
很显然, 在这个架构里只有两种角色:服务提供商和服务消费者

我个人觉得,SOA和Microservice最大的区别就是,Microservice没有【复杂的软件代
理】,特地断一下句,避免歧义。Micrsoservice可以通过HAProxy等代理,添加安全功
能等,但是不会做非常复杂的事情,比如组合、裁剪多个服务,构成另外的服务等。

在实践中,无论是SOA,Microservice,在分割开发功能时,一般都按业务功能进行
拆分,而不是按开发规模进行拆分,即有些服务很复杂,但必须作为整体开发,这种情
况下,称之为“微”服务不是很恰当。

举个自己这边实际的例子:

我们的APP 需要图片服务,包括上传(上传后解析exif内容,生产各种尺寸的缩略图,
并保存到指定文字),下载,通过"伪"文件名访问上传后的原图和各种尺寸的图片;需
要用户系统,我们使用Spring 独立开发了自己的Oauth 系统;还有App后端常规服务。
我们把 图片服务 和 Oauth 独立成了微服务,因为这两个功能比较单一,和App本身没
有太大关系,同时其他应用也需要使用类似的功能。为了简化部署,目前是通过
HAPROXY 做 LB,提供给APP后端调用,以后打算部署到OpenShift里,这样就省下很多
配置工作,简化了部署。

举这个列子,我是想说,微服务和PaaS有一种天然的亲密度。我司这边,在拼命把各种
服务迁徙到PaaS里,最后去掉昂贵,复杂,不牢靠的SOA。

现在有很多开源项目,非常激进,直接基于PaaS,推出微服务套件,把微服务的开发和
部署极端简化,简化到甚至几行代码的事情。

有兴趣的请参考我最近在学习的项目:fabric8.io

回到实践,我自己的感受是,1)没有啥架构是万能的,还是要因地制宜,微服务不是
万能,SOA也有自己的适用范围,2)避免教条主义,3)这个架构有时候和写代码类似
,不要死循环,真有这样的蠢人 :),4)不要多层嵌套,一般两层足矣

======================

另外统一回答私信我的朋友:

请不要私信我,我是潜水员,主要是时间紧,最近有些空才回贴。

我也不是大拿,除了大学毕业,没有系统学习过其他东西,都是书到用时才去看,主要
是放狗搜,然后看wiki和stackoverflow,先看懂概念,基本规范或语法,就开始做,碰
到具体问题就 Stack Overflow,没有武功秘籍。

所以,第一个找我做项目的人,我真心感谢他,并且说声对不起,我做的内东西比较烂
:)



--
※ 修改:·sanwadie 於 Apr 17 00:53:09 2018 修改本文·[FROM: 209.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 209.]

 
guvest
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: guvest (我爱你老婆Anna), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 01:20:22 2018, 美东)

我觉得和soa的区别就是microservice的
client/server或者service模型简单一致吧。就是数据格式和协议。
Http json
或者groc json/protobuf等等。

SoA的sevice 模型应该复杂的多。这microservice
还真是古代的东西的复活。不过不是Unix philosophy。
我觉得是cobol什么的,类似于用goto定义业务逻辑。

Service分成小块,那么连接的自由度就会很大。
就靠近goto的方法。SOA如果从high level看应该是受到结构化编程的影响。

不知我是不是表达清楚了。我们做以下类比:
一块程序
和另一块程序
互相作用有两个办法,
一个是goto
一个是这两个程序上套一个框。
就是结构化编程或者OO

现在功能模块互相作用也是这两个风格。
SOA看着像后者。

假如翻一下goto转成结构化的那篇古代论文。
应该可以发展出来把microservice refactor成一层一层
结构的技术。我感觉这里的数学部分是一样的。

【 在 sanwadie(三娃爹) 的大作中提到: 】
<br>: 虽然经常把微服务挂在嘴边,但到了让我说出个所以然的时候,突然糊涂
了。然
后放狗
<br>: 搜了吧,还是糊涂。
<br>: 我司用过很多 Java 的牛B技术,从最早的EJB(至今觉得这个玩意儿就是
一坨)
,然后
<br>: JMS,ESB,到现在在用的SOA,然后有开始炒微服务。
<br>: 相信很多人都傻傻分不清 SOA 和 微服务的区别,我看了那么多资料,其
实还是
分不清
<br>: 楚,反正能够糊弄人就行。
<br>: 以下是我自己的观点,如果错误了,就当是个P,放过了 :-)
<br>: 先过一下几个概念:
<br>: HTTP Service
<br>: HTTP 服务,在特定语境下和 HTTP API 等同
: ...................
<br>


--
※ 修改:·guvest 於 Apr 17 01:28:35 2018 修改本文·[FROM: 47.]
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 47.]

 
starstorm
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: starstorm (尘影), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 02:04:58 2018, 美东)

microservice就是把一个大的系统分成若干个service,每个service仅仅负责一件事情
,service之间通过service interface,而不是reference library和function call调
用别的service。
优点
1)service可以足够小,几个人的小组就可以完全own。
2)loose couple.
3)灵活,比如可以加上现在正慢慢流行的service mesh

--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 24.]

 
bobohu
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: bobohu (bobohu), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 16:29:38 2018, 美东)

如果系统比较大,可以考虑在microservice之间加一个eventbus system,比如kafka之
类的。
这样系统就async了。


【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 首先感谢之前各位讨论restful API。
: 我相信这些实战中的知识对大家都很有益。
: 各位老司机能否谈下什么叫micro services?
: 为啥热门了?怎么做?
: ref
: https://docs.microsoft.com/en-us/azure/architecture/microservices/



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 95.]

 
whaticansay
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: whaticansay (big), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 18:44:05 2018, 美东)


【 在 qiongren (WSN大叔一名, 还需要说明?) 的大作中提到: 】
: 见过做成microservice后latency 变差的, 因为以前调用library现在要用另外
: service, 经过https, 即使Nginx再快网络再快, 也是慢了。

干嘛要经过HTTPS?public走HTTPS,内部都走kafka好了,快多了。

--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 65.]

 
zhugong
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 10 ]

发信人: zhugong (zhugong), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 19:08:39 2018, 美东)

我瞎说一句,SOA是内部类似integration的东东,
microservice都是对外的。
我没搞错吧。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 70.]

 
zhugong
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 11 ]

发信人: zhugong (zhugong), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 19:09:59 2018, 美东)

对啊,integration没听说走microservice的。


【 在 whaticansay (big) 的大作中提到: 】
: 干嘛要经过HTTPS?public走HTTPS,内部都走kafka好了,快多了。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 70.]

 
sanwadie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 12 ]

发信人: sanwadie (三娃爹), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:05:42 2018, 美东)

带Integration基本就是 SOA 或 ESB 之类的,microservice 一般不用直接用。

内部走HTTPS今后是个趋势,这些东西随着硬件性能提升,配置傻瓜化(DevOps),都
会配上。


【 在 zhugong (zhugong) 的大作中提到: 】
: 对啊,integration没听说走microservice的。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 209.]

 
sanwadie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 13 ]

发信人: sanwadie (三娃爹), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:07:33 2018, 美东)

Microservice 可以对内

【 在 zhugong (zhugong) 的大作中提到: 】
: 我瞎说一句,SOA是内部类似integration的东东,
: microservice都是对外的。
: 我没搞错吧。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 209.]

 
sanwadie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 14 ]

发信人: sanwadie (三娃爹), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:14:54 2018, 美东)

一般内部开发,都倾向于把独立功能做成一个单独的service,这个service可以是整个
Microservice 架构的一部分,也可以SOA的某个后端service。这个没有特别限定。


【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 我觉得和soa的区别就是microservice的
: client/server或者service模型简单一致吧。就是数据格式和协议。
: Http json
: 或者groc json/protobuf等等。
: SoA的sevice 模型应该复杂的多。这microservice
: 还真是古代的东西的复活。不过不是Unix philosophy。
: 我觉得是cobol什么的,类似于用goto定义业务逻辑。
: Service分成小块,那么连接的自由度就会很大。
: 就靠近goto的方法。SOA如果从high level看应该是受到结构化编程的影响。
: 不知我是不是表达清楚了。我们做以下类比:
: ...................




--
※ 修改:·sanwadie 於 Apr 17 20:25:39 2018 修改本文·[FROM: 209.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 209.]

 
sanwadie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 15 ]

发信人: sanwadie (三娃爹), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:23:45 2018, 美东)

microservice 这个词有问题,通常让人误解为一个 micro service,然后大家会纠结
,如何判断这个 service 是 micro :)

如果要讨论和 SOA 的区别,我觉得这样说比较清晰:

SOA - Service Oriented Architecture
MSA - Micro Service  Architecture

在我自己的实际应用中,我们开发一个Service,总是按某个业务功能来做的,这个和
使用 SOA 还是 MSA 没有太大区别。

但是实际开发中,还是有些区别,主要体现在一些辅助性质的特性功能上,比如,安全
,授权,异步,metrics,监控等等。

SOA 做了很多这方面的处理,我们开发 SOA 的服务时,这些事情,一般不鼓励也不允
许做,都通过SOA来实现,这样就有一个中心化的控制。

MSA 这方面就比较少,当前都需要自己来做。

但是这个不是绝对。fabric8 就开始做了,感觉在一些地方,是个弱化版的SOA,在其
他方面,尤其是DevOps方面,又远远超过常规的SOA。给我的感觉就是一个简化的SOA+
DevOps tool chain。





--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 209.]

 
sanwadie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 16 ]

发信人: sanwadie (三娃爹), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:27:09 2018, 美东)

这个好像很多人都这么用 :)


【 在 bobohu (bobohu) 的大作中提到: 】
: 如果系统比较大,可以考虑在microservice之间加一个eventbus system,比如kafka之
: 类的。
: 这样系统就async了。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 209.]

 
chebyshev
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 17 ]

发信人: chebyshev (......), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:28:05 2018, 美东)

Microservice 是相对完整的独立模块,不和别的microservice
共用辅助功能部分吧。这可能和多种语言都有廉价好用的开源工具有关。

这样Microservice 就可以几个人own一个端到端完整的功能模块。省了不少联合调试的
功夫?


【 在 sanwadie(三娃爹) 的大作中提到: 】
<br>: microservice 这个词有问题,通常让人误解为一个 micro service,然后大家
会纠结
<br>: ,如何判断这个 service 是 micro :)
<br>: 如果要讨论和 SOA 的区别,我觉得这样说比较清晰:
<br>: SOA - Service Oriented Architecture
<br>: MSA - Micro Service  Architecture
<br>: 在我自己的实际应用中,我们开发一个Service,总是按某个业务功能来做的,
这个和
<br>: 使用 SOA 还是 MSA 没有太大区别。
<br>: 但是实际开发中,还是有些区别,主要体现在一些辅助性质的特性功能上,比如
,安全
<br>: ,授权,异步,metrics,监控等等。
<br>: SOA 做了很多这方面的处理,我们开发 SOA 的服务时,这些事情,一般不鼓励
也不允
: ...................
<br>
--
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 47.]

 
zhugong
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 18 ]

发信人: zhugong (zhugong), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:46:27 2018, 美东)

可以对内什么意思?

企业内网应用不是我说的对内的意思。我说对内是esb,soap,jms这种。

【 在 sanwadie (三娃爹) 的大作中提到: 】
: Microservice 可以对内



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 70.]

 
zhugong
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 19 ]

发信人: zhugong (zhugong), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:53:24 2018, 美东)

"内部走HTTPS今后是个趋势"

这个内部又是什么意思?

integration?
服务器和服务器之间?有啥意义?

证书怎么解决?
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 70.]

 
zhugong
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 20 ]

发信人: zhugong (zhugong), 信区: Programming
标  题: Re: 各位老司机,进来讨论下microservice?
发信站: BBS 未名空间站 (Tue Apr 17 20:56:31 2018, 美东)

某些情况不用kafka,用reddis也行
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 70.]

[首页] [上页][下页][末页] [分页:1 2 ]
[快速返回] [ 进入葵花宝典讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996