极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:50
登录|注册

观点:迁移微服务能提升系统性能和健壮性吗?

讲述:丁婵大小:1.75M时长:03:50
微服务架构现在已经成为了企业应用架构的必聊话题,其中一个是迁移微服务能提升系统性能和健壮性,对此,《高可用可伸缩微服务架构》一书的联合作者梁桂钊结合自己多年工作的所见所闻和实战思考,谈了谈他的观点,以下为具体内容。
业界有一个话题是“迁移微服务能提升系统健壮性吗?”这里有一个主流的观点:一个单体系统是一个大而全的功能集合,如果某个服务出现故障,会对整个业务系统产生影响,然而使用微服务可以实现如果某个服务部署或者宕机,只会影响到当前服务,而不会影响到整个业务系统。
事实上,这个观点看起来非常正确,但是在真实的业务场景下,并不是推动我们改造的关键原因。首先,一个单体为了避免单点故障,肯定需要集群和负载均衡,注意的是,集群和负载均衡与微服务(服务垂直拆分)不是互斥关系,而是在高并发和分布式中的共存关系。此外,为了解决服务部署,我们可以考虑通过滚动发布来实现服务的无中断。
所以,单体系统不一定就是不健壮的。同时,引入了微服务之后,从整体来看,这种方式带来了大量的服务,而服务之间的相互调用也会增多,从而导致整个系统架构变得更加复杂,某个链路上的某个节点出现故障的几率就大大的增加了,更多的依赖也意味着发生更多问题的可能。此时,假设其中某条调用链路上某个微服务宕机而无法提供服务,那么对其强依赖的上游服务,如何保障其自身可用性?(我在这里特指强依赖调用,服务降级或者熔断机制可能会对业务有损,并不是解决的有效方案。)因此,很多场景下,某个服务宕机也可能会影响到整个业务系统。
因此,如果我们没有面向失败设计,并且构建一套服务治理的体系,反而会导致整体服务的不健壮性。
那么,什么才是迁移微服务的主要动因呢?我觉得最主要的利益动因是服务的可扩展性和提升性能方面的考量。一个服务因为宿主机器的限制可能达到了瓶颈,为了更加进一步的压榨机器的资源,拆分服务是一个好主意。同时,我们还可以进一步实现自动缩扩容来调整机器的使用。
但是,迁移微服务一定能提升系统的性能吗?我的观点是真不一定。服务化后,调用链路变长,原本的一次 RPC 通信可能变成几次,性能损耗有所增加。例如,异地多活主要挑战之一就是网络时延,跨城市一定会有延时的问题,假设跨地域网络延时可能在一百毫秒以内,一次 HTTP 请求涉及到一两百次跨城市 RPC 调用,那么整个响应时间会增加很多,所以延时带来的挑战非常大。那么,阿里为了解决数据延迟的问题,最早提出了单元化的解决思路,即将请求收敛到同一区域内完成,单元高内聚,不做跨区域访问,即“单元封闭”。此外,还存在跨服务调用的网络超时问题,通过重试也增加了同步阻塞的隐患性。
因此,服务化是牺牲了服务之间链路上的调用性能,来整体提高整个业务系统对于机器资源压榨来提升系统的性能。
以上就是今天的内容,希望对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 加菲猫
    单体系统迁移到微服务能提高系统的健壮性吗?需要分析迁移的动因,有些比较单一的、量少的业务,不需要迁移,如果要迁移,“单元封闭”也是一种比较好的选择
收起评论
显示
设置
留言
1
收藏
26
沉浸
阅读
分享
手机端
快捷键
回顶部