您现在的位置是: 网站首页 > 程序设计  > 分布式系统 

微服务架构之二(微服务架构的利与弊)

2020年6月26日 00:50 1214人围观

简介微服务虽然是当下的热点话题,虽然微服务有很多优点,但在引入微服务的时候也会面临一些列传统架构所不涉及到挑战。那我们要知道微服务的优缺点。

优点

  • 强模块化边界:

    传统中大型项目我们就开始强调模块化,不同的模块由不同的团队负责,最后以类库的方法提供。相比于传统的模块化,微服务要求的更高一层的模块化,模块之间有很清晰的边界,不同模块之间独立部署,通过rpc的方法调用,不需要导入库,没有任何依赖关系。 - 可独立部署:

    可独立部署是微服务最显著的特性,没有之间彼此独立,模块根据自己的业务需求独立开发,独立部署,不需要专门集成 - 技术多样性:

    由于模块之间互相独立,只需要提供网络服务就可以了,所以在可以用团队自己熟悉的技术栈进行开发。当然技术栈并不是越多越好~

缺点

  • 分布式复杂性:

    传统单块应用程序的时候,一个团队就能cover整个架构,但是微服务化后开发团队变多,需要一定的沟通成本,大多数开发人员也不清楚整个项目的具体架构。 - 最终一致性:

    微服务化后,每个团队都会有自己的存储数据,多个团队之间的数据同步是个很复杂的问题 - 运维复杂性:

    业务模板变多,对于运维来说每个业务都有自己的监控指标,运维人员运维的是整个分布式集群。 - 测试复杂性:

    分布式系统来说,各个业务之间都是通过rpc调用的,这样一样来,如果想要全链路测试,就需要每个业务都搭建一套环境,而且在排查问题时很难一下子定位出是哪个模块出现了问题。