- 微服务架构
- 微服务发展史
- 单体架构
- 集群及垂直化
- SOA架构
- 微服务架构
- 微服务架构的优缺点
- 优点
- 缺点
- 参考文献
任何一个理论或者技术的出现往往是伴随着现实中出现了相应的问题,而产生的的一系列解决办法。往往在项目初期业务并不是很复杂、用户量不是很大,单体架构完全符合当时的需求,所以在项目初期是都是从单体架构进行开始的。
集群及垂直化随着用户量、数据量的增加以及业务功能的逐渐完善和复杂化,单体架构造成了业务代码耦合严重、代码复用性降低、单台数据库以及服务器造成了瓶颈,为了减少业务的耦合度,对业务和数据库进行划分,并采用集群化方式进行扩展,提高系统的吞吐量。
SOA架构我理解的SOA架构是对于一个大的业务场景需要对多个其他的应用进行整合,为了进一步加强对于共享业务的解耦,采用SOA架构可以增强共享业务的重用,实现对应用的快速整合。
下图是SOA架构和微服务架构的架构图。
微服务架构SOA架构就是面向服务的一种解决方案,而微服务架构则是针对业务的进一步优化。微服务架构根据业务将服务的粒度进一步细分,降低了业务之间的耦合度,但随之而来也带来了一系列的问题。
微服务架构的优缺点 优点-
降低代码耦合、提高复用性
微服务架构通过对共享业务更细粒度的划分,降低了业务之间的耦合度,增加了共享业务代码的复用性。
-
职责专一
由于每个服务的职责比较清晰,所以对于每个业务的开发、维护等会更加简单。
-
完全独立
- 每个微服务都是独立的,完全可以每个服务采用不同的技术栈,便于团队化的开发以及技术选型的灵活性。
- 可以动态卸载,所以单个服务出现问题可以在不影响整体服务的运行进行下线处理。
-
调用链复杂
随着服务的不断增加,业务调用链路变得更加复杂,如果出现问题,为问题的排查带来了一定的难度。
-
服务间的通信挑战
每个服务都是独立进行部署的,所以服务之前的通信,以及通信所造成的网络问题也成为了系统需要考虑的问题。
-
分布式带来的问题
- 每个服务有可能采用不同的数据库,所以整个系统数据的一致性也是一项新的挑战,需要引入分布式事务的解决方案。
- 为了保证对于共享数据的访问,微服务系统也需要采用一套分布式锁的解决方案。
-
复杂度增加
综上所述,微服务架构系统会带来一系列的技术性问题,需要引入更多来对系统完成治理以及监控的技术,增加了系统的复杂度。
- 《Spring Cloud Alibaba 微服务原理与实战》
- 微服务架构 vs. SOA架构



