五个角色:
- 注册中心registry:服务注册与发现
- 服务提供者provider:暴露服务服务
- 消费者consumer:调用远程服务
- 监控中心monitor:统计服务的调用次数和调用时间
- 容器container:服务允许容器
调用流程:
- container容器负责启动、加载、运行provider
- provider在启动时,向regisitry中心注册自己提供的服务
- consumer在启动时,向regisitry中心订阅自己所需的服务
- regisitry返回服务提供者列表给consumer,如果有变更,registry将基于长连接推送变更数据给consumer
- consumer调用provider服务,基于负载均衡算法进行调用
- consumer调用provider的统计,基于短链接定时每分钟一次统计到monitor
分层:
- 接口服务层(Service):面向开发者,业务代码、接口、实现等
- 配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心
- 服务代理层(Proxy):对生产者和消费者、dubbo都会产生一个代理类封装调用细节,业务层对远程调用无感
- 服务注册层(Registry):封装服务地址的注册和发现,以服务URL为中心
- 路由层(Cluster):封装多个提供者的路由和负载均衡,并桥接注册中心
- 监控层(Monitor):RPC调用次数和调用时间监控
- 远程调用层(Protocal):封装RPC调用
- 信息交换层(Exchange):封装请求响应模式,同步转异步
- 网络传输层(Transport):抽象mina和netty为统一接口,统一网络传输接口数据
- 序列化层(Serialize):数据传输的序列化和反序列化
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END