传统垂直架构改造的核心:对应用服务化;
服务化改造的核心技术:分布式服务框架;
一.背景
1.应用从集中式走向分布式
集中式缺点:功能越来越多,打包,部署,新特性上线周期都越来越低效。
应对高并发,大流量:只能通过不断增加硬件的方式来满足应用的低时延和高吞吐量。
深度截图_选择区域_20201013112521.png
2.设计原则
大规模系统架构的设计原则:尽可能的拆分,以达到更好的独立扩展与伸缩、更灵活的部署、更好的隔离和容错、更高的开发效率。
1)横向拆分:将核心的、公共的业务拆分出来,进行服务化,消费者通过标准契约进行消费;
2)纵向拆分:根据业务特性将应用拆分,不同业务模块独立部署;
3.服务治理
主要诉求如下:
1)生命周期管理:
2)服务容量规划:
3)运行期治理:
4)服务安全:
二.现有框架
1.阿里Dubbo
深度截图_选择区域_20201013114046.png
服务治理:
深度截图_选择区域_20201013114524.png
三.框架设计
1.架构原理
深度截图_选择区域_20201013114705.png
通常,分布式服务框架的架构抽象为三层:
1)RPC层:
包括:底层通信框架(Eg:NIO框架的封装, 公有协议的封装等), 序列化和反序列化框架, 用于屏蔽底层通信协议细节和序列化方式差异的Remoting框架。
2)Filter Chain层:
服务调用职责链,提供多种服务调用切面供框架自身使用和扩展。Eg:负载均衡、服务调用性能统计、服务调用完成通知、失败重发等。
3)Service层:
主要包括Java动态代理:消费者使用,主要用于将服务提供者的接口封装成远程接口调用;Java反射:服务提供者使用,根据消费者请求的签名,反射调用服务提供者接口本地实现类。
再向上就是业务的服务接口定义和实现类。
2.从功能角度看,分布式服务框架通常会包含另外两个功能:
1)服务注册中心(zk):负责服务的发布和通知,通常支持对等集群部署。一般通过观察者模式实现。
2)服务治理中心:通常包含服务治理接口和服务治理Protal。
3.功能特性
分布式服务框架的功能特性总结:
深度截图_选择区域_20201013120034.png 深度截图_选择区域_20201013120135.png
3.性能评估
深度截图_选择区域_20201013120458.png
4.可靠性
深度截图_选择区域_20201013120601.png
5.服务治理
深度截图_选择区域_20201013120702.png
网友评论