Dubbo 之一架构演进
单一应用架构
- 优点
- 简单实用、便于维护,开发成本较低
- 缺点
- 部署麻烦,添加、修改个别模块功能,需要重新将所有模块的代码部署到各个服务器
- 单台服务器的性能有限,不适合对外提供所有模块功能
- 存在单点故障问题
- 关键点
- 数据访问框架(ORM)
垂直应用架构
- 优点
- 性能扩展比较容易
- 协同开发比较容易,每个独立的模块由对应的开发人员负责
- 缺点
- 每个模块都包含了 MVC 三层的所有代码
- 不适用页面经常修改的场景,如果单个模块对应的页面修改了,需要重新部署该模块的所有代码到服务器
- 各个模块之间不可能完全独立,大量应用之间需要相互交互,调用关系相对复杂
- 关键点
- 用于加速前端页面开发的 Web 框架(MVC)
分布式服务架构
- 优点
- 垂直和横向扩展都比较容易
- 前端页面可以快速迭代开发
- 提高了系统整体的高可用、高性能、高并发方面的能力
- 缺点
- 系统的复杂性提高了很多,包括开发与运维方面,
- 关键点
- 分布式服务框架 (RPC)
- 如何拆分业务与提高业务的复用程度
流动计算架构(SOA)
分布式架构中的服务越来越多,导致交互越发复杂,不可避免会出现资源浪费的情况。如何才能更好地管理复杂的调用关系、提高资源利用率、对整个服务集群进行动态控制呢?服务治理被引入来解决此问题。
服务治理一般包括以下内容:
1)通过注册中心管理所有服务(即服务注册与发现)
2)路由选择、负载均衡及容错处理
3)服务升、降级,熔断,权重调整
4)服务过滤(黑名单、白名单)
5)服务状态检测、监测
6)服务权限控制
7)服务依赖关系
8)监控与统计
9)资源隔离
Dubbo 官方的架构演进图