微服务架构核心20讲_极客时间观后总结_2.微服务的利与弊

本文探讨了微服务架构的优势与劣势,包括其强模块化边界、独立部署特性、技术多样性等优点,以及分布式复杂性、最终一致性和运维复杂性的挑战。文章还提供了通过容器化管理和自动化部署手段来克服微服务部署难题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微服务的优点

  1. 强模块化边界

微服务用每个服务作为模块化,类似于我们之前用的一些工具类,比如我们用Md5,我们直接可以用Md5Utils.md532Upper("");这是我们提前封装好的工具类,而微服务一样,每个微服务团队,只要开发好了接口,部署好,我们可以直接调用里面的接口,方便使用。

  1. 可独立部署

微服务可以独立部署,每个微服务开发人员或者开发团队可以各自的模块,不受其他业务方影响,提高开发效率。

  1. 技术多样性

微服务是可以独立部署,每个微服务是可以用不同的开发技术,比如A服务擅长java语音,B服务擅长其他语言,各个服务之间是不冲突的,可以高效率的完成项目开发。

微服务的劣势

  1. 分布式复杂性

单体项目,由于是整个一个单体项目,每个开发人员都 可以看到整体的项目架构,以及整体项目中单代码,甚至可能清晰的了解其他人的业务,那这样就会很清晰;微服务,由于将系统进行了多个微服务的拆分,开发人员很有可能不清楚其他业务模块,甚至整个系统的工作流程都不清楚。

  1. 最终一致性

个人理解,和第一章的问题是相似的,粘过来复用一下:

比如我们A服务中管控整个微服务架构的用户数据。
我们B服务是掌控订单数据,订单数据需要冗余下单用户的用户名昵称等,当A服务中的用户数据变更,B服务中,不会发生变更,这就是一个弊端。当然我们可以通过mq等,发生用户数据变化时,通过消息队列进行数据同步,保证一致性!

  1. 运维复杂性

运维人员首先要知道每个微服务中运用到的技术,以及需要一些编译工具等,进行安装,还要考虑服务器的容量,资源规划等有一个深入的了解

  1. 测试复杂性

由于每个微服务之间相互配合调用,才形成了整个项目,所以测试人员对微服务之间的测试,需要花很打的精力

问答环节

  1. 运维人员对于微服务的部署是很困难的,那通过什么手端可以解决这些弊端?

容器化管理,通过jenkins自动化部署,并编写好每个微服务部署脚本等,实现自动化部署。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值