Dubbo篇

RPC原理和调用过程

1)客户端 RpcClinet 发现服务
2)调用者 Caller 调用服务 RemoteAPI
3)调用服务代理 RpcProxy
4)调用 RpcInvoker
5)调用 RpcConnector 通过 RpcProtocal 对数据进行 encode(序列化)
6)通过网络传输TCP到服务端

7)服务端通过 RpcAcceptor接受到请求数据
8)通过 RpcProtocal 对数据进行 decode(反序列化)
9)调用 RpcProcessor 
10)再调用 RpcInvoker 反射调用 RemoteAPI
11)真正执行API的实现类 RpcServer 完成整个过程的调用

Dubbo工作原理

1)服务端启动 注册节点到注册中心
2)客户端启动 获取注册中心服务节点列表 缓存到本地
3)服务中心服务变动 会更消费端节点列表
4)客户端Rpc调用服务端服务

负载均衡规则

1)随机负载:可以设计权重随机请求不同的服务节点
2)轮询负载:顺序的消费每个请求
3)最少活跃调用数负载:最少获取的节点优先消费新请求
4)一致性Hash负载:通过一致性Hash算法分摊消费请求

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # 背景 # 关键设计点 ## 模块化 ## 资源隔离 ## 权限控制 ### RPC框架的需求分析和概要设计 #...
    65902f77f84d阅读 1,241评论 0 0
  • 原文地址: https://github.com/xingshaocheng/architect-awesome ...
    Albert陈凯阅读 3,012评论 0 16
  • 每次到特别想睡时,才蓦然发现自己的作业还没写,白天实在太忙了,六点起床,七点吃饭,七点二十从家出发上班,八点交班,...
    Hifly816阅读 214评论 0 0
  • 院里寂寥如空旷大地,屋子隐在浓雾背后,朦胧如醉。 他加大力气拍门,高声喊道:“师父!” 一个身影从浓雾中婀娜走来,...
    王饼阅读 236评论 0 0
  • 1、os.name 输出字符串指示正在使用的平台。 如果是window用 ‘nt’表示,对于Linux/Unix用...
    zksmile阅读 340评论 0 1