Dubbo

Dubbo,第1张

Dubbo 1.RPC介绍

        RPC(Remote Procedure Call)远程过程调⽤,简单的理解是⼀个节点请求另⼀个节点提供的服 务

        

客户端(Client):服务调⽤⽅。

客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成⽹络消息, 再通过⽹络传输发送给服务端。

服务端存根(Server Stub):接收客户端发送过来的请求消息并进⾏解包,然后再调⽤本地服务进⾏ 处理。

服务端(Server):服务的真正提供者

Network Service:底层传输,可以是 TCP 或 HTTP

服务寻址: 在RPC中,所有的函数都必须有一个自己Id,这个id在所有的进程中都是唯一的,客户端在发送请求的时候需要带上这个id,从而来确定客户端需要调用的函数

2.Dubbo结构         2.1基本结构

        dubbo只是RPC框架的一种,基于rpc远程请求方式,对于开发来讲简化了纯粹的RPC调用

        

 provider: 服务提供方

 consumer: 服务消费端

 zk: 服务注册和发现的注册中心

 monitor: 统计服务调用次数/时间的监控中心

1. 服务容器负责启动,加载,运⾏服务提供者。

2. 服务提供者在启动时,向注册中⼼注册⾃⼰提供的服务。

3. 服务消费者在启动时,向注册中⼼订阅⾃⼰所需的服务。

4. 注册中⼼返回服务提供者地址列表给消费者,如果有变更,注册中⼼将基于⻓连接推送变更数 据给消费者。

5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选⼀台提供者进⾏调⽤,如果调⽤ 失败,再选另⼀台调⽤。

6. 服务消费者和提供者,在内存中累计调⽤次数和调⽤时间,定时每分钟发送⼀次统计数据到监 控中⼼。

        2.2调用流程

        

监控中⼼宕掉不影响使⽤,只是丢失部分采样数据

数据库宕掉后,注册中⼼仍能通过缓存提供服务列表查询,但不能注册新服务

注册中⼼对等集群,任意⼀台宕掉后,将⾃动切换到另⼀台

注册中⼼全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯

服务提供者⽆状态,任意⼀台宕掉后,不影响使⽤

服务提供者全部宕掉后,服务消费者应⽤将⽆法使⽤,并⽆限次重连等待服务提供者恢复

3.Dubbo特性         3.1集群容错      

调用失败自动切换,retries设置重试次数

快速失败,只允许一次调用,失败立刻报错   一般用于insert记录

失败安全,出现异常直接忽略

失败自动恢复,定时重发

广播调用所有提供者,逐个调用,任何一台报错,直接报错

        

        3.2负载均衡

Random LoadBalance

        随机策略,按权重设置随机率

RoundRobin LoadBalance(默认)

        轮询,按公约后的权重设置轮询比例

LeastActive  LoadBalance

        最少活跃调⽤数,相同活跃数的随机,活跃数指调⽤前后计数差。

ConsistentHash LoadBalance

        ⼀致性 Hash,相同参数的请求总是发到同⼀提供者。

当某⼀台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引 起剧烈变动。

        

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5652699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存