36 | 微博Service Mesh实践之路(下)
胡忠想
该思维导图由 AI 生成,仅供参考
专栏上一期我们聊到了微博的服务化是如何一步步走向 Service Mesh 之路的,可以说正是由于微博自身业务对跨语言服务调用的需求日趋强烈,才促使了 Weibo Mesh 的诞生,也因此乘上了 Service Mesh 的东风。我在前面讲过,Service Mesh 主要由两部分组成,一部分是 SideCar,负责服务之间请求的转发;一部分是 Control Plane,负责具体的服务治理。从 Weibo Mesh 的实现方案来看,对应的 SideCar 采用的是自研的 Motan-go Agent,服务治理则是通过统一服务治理中心来实现,这里面的一些思路还是和 Control Plane 有很大区别的。
今天我们就来聊聊 Weibo Mesh 实现的技术细节,看看它给业务带来了哪些收益,最后再谈谈 Weibo Mesh 下一步的发展方向。
Motan-go Agent
通过上一期的学习,我们知道 Weibo Mesh 中使用的 SideCar 就是 Motan-go Agent,考虑到 Motan-go Agent 要与 PHP 进程部署在一起,为了减少对本机资源的占用,这里 Motan-go Agent 采用了 Go 语言来实现,它包含的功能模块请看下图。
我们拆解一下图中 Motan-go Agent 主要的模块,看看它们的作用是什么。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
微博Service Mesh实践之路(下)一文深入介绍了微博在服务化方面的实践经验。文章首先介绍了微博Mesh的实现方案,包括Motan-go Agent和统一服务治理中心。Motan-go Agent采用了自研的技术实现,包括Filter Chain、High Available、Load Balance等模块,并使用自定义的Motan2协议进行跨语言服务通信。统一服务治理中心实现了动态服务注册与发现、监控上报、动态流量切换与降级、自动扩缩容等功能。微博Mesh的收益包括跨语言服务化调用的能力、统一服务治理能力以及业务无感知的持续功能更新能力。微博Mesh的实践为微博业务带来了巨大的收益,提升了服务化框架的功能和效率,为业务发展提供了有力支持。未来,Weibo Mesh的发展规划包括将服务治理能力延伸到资源的治理上,以及利用收集的数据进行更深层次的挖掘,引入机器学习算法等。微博Mesh的紧贴业务、定制化的解决方案使其在微博的业务中落地生根,成为行之有效的架构实践。Service Mesh中业务与服务框架解耦的设计思想不仅适用于服务与服务之间相互调用的场景,还能应用于其他业务场景中。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》,新⼈⾸单¥59
《从 0 开始学微服务》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(11)
- 最新
- 精选
- wuhulalaservice mesh 可不可以理解为把之前的一些封装在服务框架里面的内容 比如复杂均衡 注册 远程通讯 等这些功能 糅合成一个新的agent 以后业务服务只与这个agent交互 ?
作者回复: 可以简单这么理解,更重要的是业务与服务治理解耦,后续升级以及功能扩展都是mesh端处理,业务无感知
2018-12-085 - 朱升平weibo mesh这两期还是非常赞的!
作者回复: 感谢支持,欢迎提出意见
2018-11-142 - 不靠谱的琴谱服务与服务之间的事务怎么控制
作者回复: 前面讲过微博主要是通过对帐机制保障数据一致性,基本没有事务操作
2018-11-131 - 小菜鸡想问下老师用Golang写Agent,GC对调用延时带来的的影响大吗
作者回复: 目前我们线上来看,影响不大
2018-11-262 - suke微博不就是各种拉取信息流么,事务应该不多吧
作者回复: 我们是弱一致性,事务主要体现在更新数据上
2018-11-13 - 技术修行者Service Mesh带来的最大好处是解耦服务和服务框架,服务只需要关注业务逻辑,其他的事情由服务框架通过非侵入的方式实现,将来如果升级或者替换服务框架,成本会非常低。 服务和服务框架解耦的设计,可以 1. 更容易在环境中针对同一个服务维护多个版本,用来做AB测试。 2. 更高效的运维产品环境,对于限流、机房切换等,只需要调整agent的配置,无需修改服务。2019-09-229
- Bobo除了分开部署,service mesh和dubbo这种框架的本质区别在哪呢,dubbo客户端不也是代理所有远程调用以及一些服务治理动作的吗2019-01-021
- Ilmen请问限流和熔断是怎么做的呢2018-12-2611
- 田小麦没太明白,业务(client)多语言,是怎么和agent交互的?2022-10-14归属地:北京
- MwumLi1. Service Mesh 每一个微服务部署的时候是怎么部署的? 是在部署的时候, ops 平台内部把这个微服务和一个 agent 组成一个 pod 运行起来的吗? 2. 微服务每次请求其他服务的时候应该是不关心 agent 的, 那么它是如何做到编码不关心 agent, 而实际运行的时候请求会先到 agent 1. 是通过一个2022-09-13归属地:北京
收起评论