服务化架构、SOA、微服务是什么关系
小结:服务化架构是宏观目标,SOA与微服务架构是落地实现。服务化架构-强调对业务垂直拆分形成多个服务模块。然而分布式子系统没有标准,需要一个平台例如ESB,提供中心化服务,例如提供格式转换等,很重量级。微服务则给服务架构提供了标准。将单个应用程序拆分成多个小型程序,运行在自己的进程中,进行轻量级通信。
单点模式强调快速价值交付
单点架构存在的问题:资源利用率差、不具备分区容错性、查询效率低
改进办法:部署应用集群、部署分布式缓存、实现数据库高可用HA/读写分离改造
集群架构模式-强调可用性
集群架构存在的问题:技术驱动,非业务驱动、业务耦合严重
改进办法:服务化改造,以业务为中心、垂直拆分业务子系统降低耦合
服务化架构-强调对业务垂直拆分形成多个服务模块
服务层独立管理独立维护
面向服务的架构 SOA (核心产品ESB)
分布式应用是缺少标准的,而ESB是重量级的产品。提供中心化服务
SOA的问题
-
各个子系统之间没有采用统一的通信标准,导致系统间通信与数据交互间变得异常复杂
-
ESB成本超级高,没有好用的开源,被大厂绑架
-
ESB属于重量级产品,部署规划异常笨重
解决方案:
- 引入微服务架构模式
微服务为服务化架构制定了标准
微服务架构风格是一种将单个应用程序开发为一组小型服务的方法,每个小服务运行在自己的进程中,并且以轻量级机制(通常是HTTP REST API)通信。这些服务是围绕业务能力建立的,并且可以由完全自动化的部署机构独立部署。这些服务的集中管理只有最低限度,可以用不同的编程语言编写并使用不同的数据存储技术。
国内比较流行的springcloud alibaba架构模式
nacos仅注册服务集群节点ip,用于服务发现,对于格式转换等不需要经过nacos,是轻量级服务。