Eureka 应用程序变迁图

来自姬鸿昌的知识库
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1eU4y187zE/?p=3

无论是 SOA 架构、RPC 架构还是微服务架构统称为分布式架构。

第一代:单体架构 第二代:SOA 架构 第三代:微服务架构
  • 紧耦合
  • 系统复杂、错综交互,牵一发而动全身
  • 重复制造各种轮子:OS、DB、Middleware
  • 完全封闭的架构
  • 松耦合
  • 通常通过 ESB 进行系统集成
  • 有状态
  • 大团队:100-200人
  • TTM:年、半年、月
  • 集中式、计划内停机扩容
  • 解耦
  • 小团队;2 Pizza Team
  • TTM:按天、周进行升级分布
  • DevOps:CI、CD,全自动化
  • 可扩展性;自动弹性伸缩
  • 高可用;升级、扩容不中断业务
应用向 CloudNative 演进,微服务是 CloudNative 的事实标准

附:

SOA

ESB:Enterprise Service BUS,企业消息总线,ESB

TTM:Time To Marketing,上市周期,产品更新上限的频率



RPC 架构和 SOA 架构和微服务架构的区别

SOA 架构:核心消息总线。消息总线过于笨重在目前项目中已经很少使用了。

RPC 架构:主要有被调用的远程服务端(Provider)和调用的服务端(Consumer),把所有数据库操作都封装到了 Provider。一个单体拆分成多个,之间使用 HTTP 通信,每个项目又拆分成两个(Provider 和 Consumer),之间使用 Dubbo 协议通信。mapper 和 service 写到 provider 中,service 和 controller 写到 consumer 中。

微服务架构:每个业务是一个项目。业务之间通信使用 HTTP 协议通信。不再对一个业务(模块)项目进行拆分成 Provider 和 Consumer 了。mapper 和 service 和 controller 都写到一个项目中。



目前市场上微服务架构的常见实现框架

实现框架:Spring Cloud

Spring Cloud 里面目前包含三套体系:

  • Spring Cloud Netflix:目前市场上使用最多的
  • Spring Cloud Alibaba:基于 Dubbo 实现
  • Spring 自己的:为了摆脱受 Netflix 公司限制,所有功能都自己又主键推出一套