| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Dubbo -> 正文阅读 |
|
[网络协议]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集群容错? ? ??<dubbo:reference retries="3"> 调用失败自动切换,retries设置重试次数 <dubbo:reference cluster="failfast"> 快速失败,只允许一次调用,失败立刻报错? ?一般用于insert记录 <dubbo:reference cluster="failsafe"> 失败安全,出现异常直接忽略 <dubbo:reference cluster="failback"> 失败自动恢复,定时重发 <dubbo:reference cluster="broadcast"> 广播调用所有提供者,逐个调用,任何一台报错,直接报错 ? ? ? ?? ? ? ? ? 3.2负载均衡Random LoadBalance ? ? ? ??随机策略,按权重设置随机率 RoundRobin LoadBalance(默认) ? ? ? ??轮询,按公约后的权重设置轮询比例 LeastActive? LoadBalance ????????最少活跃调?数,相同活跃数的随机,活跃数指调?前后计数差。 ConsistentHash?LoadBalance ?????????致性 Hash,相同参数的请求总是发到同?提供者。 当某?台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引 起剧烈变动。 ? ? ? ?? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:38:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |