完整流程图
这个完整的流程图涵盖了 DNS、CDN、Nginx、FastDFS(或Ceph)、 LVS、ServiceMash、数据收集中心、 注册中心、控制中心、网关、业务逻辑层、 数据访问层、存储层等数据交互过程 价值不菲 想要的话 可以添加我微信15900411193
调用链路
1、做协议解析的目的是兼容老的协议 客户端发出请求后 在客户端service和服务方service要做协议解析 如果都是mesh协议 是不需要协议解析的、协议封装也不需要 2、客户端一定要做序列化、反序列化 这和通讯没啥关系 就是一个数据包
调用方时序图
服务方时序图
缓存管理 多个Map: 服务方提供哪些函数调用 通过扫描jar包 反射机制 获取服务提供的类名和方法名
协议设计
数据协议
1、Protocol Buffer 2、分割符、版本号、Mesh消息构成
1、一次传输协议中有版本号 比如 版本号1表示rpc协议 版本号2表示mesh协议 通过版本号可以区分兼容老协议还是新协议 2、多个数据包之间通过头和尾分割符分开 3、分割符占5个字节
Mesh通讯协议
1、TCP长连接 2、Http1.1或2.0
混合云部署
1、调用方 a、SideCar+Service(Mesh) b、Service(RPC) 2、服务方 a、SideCar+Service(Mesh) b、Service(RPC)
访问流程
1、在服务启动的时候 mesh服务或普通的RPC服务都会去注册中心注册 此时就知道了该节点的服务类型 2、调用方下拉服务信息 也就知道了提供方服务类型 然后选择不同的协议去调用
小细节
1、熔断放在mesh里面做 不需要业务方参与 2、下游重试次数是一样的 是服务粒度 非接口粒度 3、proxy(mesh)之间做健康检测 是分布式的 一旦发现自己的上游或下游出现了问题 就更新本地的路由表 4、负载均衡算法:Random、RR、Hash(主要用一致性hash来做) (RR:(循环负载) 第一次请求路由到第一个节点, 第二次请求路由到第二个节点, 第三次请求路由到第三个节点, 第四次请求路由到第一个节点 ....)
架构未来
2平台1中心1趋势 service mesh平台与业务解耦 容器云弹性平台 服务治理平台(控制中心、注册中心、数据收集中心) 人工智能(AI)
服务管理平台的调用关系-数据收集存储方法
服务方-调用方角度
服务方:1分钟500万条记录 调用方:50万 共550万
存储方案
方案1