搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
AI算法诗人
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Manjaro安装教程
2
【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比_深度学习论文对比实验
3
Vue3+element ui取消el-select下拉选边框_vue3中使用elementplus选择器的边框如何去掉
4
58.tablewidget模拟手指实现滑动_根据鼠标的动作——按下、放开、拖动,执行相应的操作
5
【温故而知新】构建高可用Linux服务器(一)_构建高可用linux服务器书github
6
微信小程序云开发笔记(一):button组件的应用_size default
7
Python之UTC(格林威治时间)转北京时间(本地时间)和获取当前时间_python格林威治转北京
8
mkdir: cannot create directory ‘a1’: Permission denied_mkdir: cannot create directory ‘a’: permission den
9
搞定 OAuth 2.0 第三方登录,So Easy !_java 实现oauth2.0搭建用户认证服务(四) - 实现第三方登录
10
Spring boot整合pagehelper(全网最全,最容易理解,有前端页面)_pagehelper只能在controller层使用吗?
当前位置:
article
> 正文
Dubbo 服务请求流程,Dubbo 工作原理,Dubbo 负载均衡策略_kong & dubbo请求
作者:AI算法诗人 | 2024-01-17 22:02:05
赞
踩
kong & dubbo请求
请求流程
基本工作流程:
上图中角色说明:
工作原理
工作原理分
10
层:
第一层:
service
层,接口层,给服务提供者和消费者来实现的(留给开发人员来实现);
第二层:
config
层,配置层,主要是对
Dubbo
进行各种配置的,
Dubbo
相关配置;
第三层:
proxy
层,服务代理层,透明生成客户端的
stub
和服务单的
skeleton
,调用的是接口,实现类没有,所以得生成代理,代理之间再进行网络通讯、负责均衡等;
第四层:
registry
层,服务注册层,负责服务的注册与发现;
第五层:
cluster
层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务;
第六层:
monitor
层,监控层,对
rpc
接口的调用次数和调用时间进行监控;
第七层:
protocol
层,远程调用层,封装
rpc
调用;
第八层:
exchange
层,信息交换层,封装请求响应模式,同步转异步;
第九层:
transport
层,网络传输层,抽象
mina
和
netty
为统一接口;
第十层:
serialize
层,数据序列化层。
Dubbo 支持协议
Memcached
协议、
Redis
协议、
Rest
协议。
注册中心挂了,
consumer
还能不能调用
provider
?
可以。因为刚开始初始化的时候,
consumer
会将需要的所有提供者的地址等信息拉取到本地缓存,所以注册中心挂了可以继续通信。但是 provider
挂了,那就没法调用了。
Dubbo
负载均衡策略
随机(默认):随机来
轮训:一个一个来
活跃度:机器活跃度来负载
一致性
hash
:落到同一台机器上
Dubbo
容错策略
failover cluster
模式
provider
宕机重试以后,请求会分到其他的
provider
上,默认两次,可以手动设置重试次数,建议把写操作重试次数设置成 0
。
failback
模式
失败自动恢复会在调用失败后,返回一个空结果给服务消费者。并通过定时任务对失败的调用进行重试,适合执行消息通知等操作。
failfast cluster
模式
快速失败只会进行一次调用,失败后立即抛出异常。适用于幂等操作、写操作,类似于
failover cluster 模式中重试次数设置为
0
的情况。
failsafe cluster
模式
失败安全是指,当调用过程中出现异常时,仅会打印异常,而不会抛出异常。适用于写入审计日志等操作。
forking cluster
模式
并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2"
来设置最大并行数。
broadcacst cluster
模式
广播调用所有提供者,逐个调用,任意一台报错则报错。通常用于通知所有提供者更新缓存或日志等本地资源信息。
Dubbo
动态代理策略
默认使用
javassist
动态字节码生成,创建代理类,但是可以通过
SPI
扩展机制配置自己的动态代理策略。
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop】
推荐阅读
article
配置
kubeadm
的
部署
参数
_
kubeadm
-
init
.
yaml
文件
...
然后,
kubeadm
就会使用上面这些信息替换 /etc/kubernetes/manifests/kubeapiser...
赞
踩
article
uniapp
Android
调用各种
权限
(主要解决
webview
使用相机无法获取
权限
)_
ue
and...
代码如下: onLaunch: function() { console.log('onLaunch') //监...
赞
踩
article
gmap
一些
实用方法...
1.创建图标背景色 var icon = new GIcon(); icon.image = "blue.png"; i...
赞
踩
article
wxwidgets
的多
语言
支持
_
wxcrafter
切换
语言
...
最近在做一个翻译的项目,框架是
wxwidgets
,最开始想的是读配置文件,然后ifelse的形式来做,但是这样做会是代码...
赞
踩
article
中学生
c++
语言
网络
编程
实例
,
C++
中
Socket
网络
编程
实例
详解...
C++
中
Socket
网络
编程
实例
详解发布时间:2020-09-17 06:49:50来源:脚本之家阅读:148作者:lq...
赞
踩
article
unity
游戏在
Android12
上崩溃啦(小米12)_
unity
/
lib
/
arm64
/li...
Hello,村长????崩溃信息日志E/DEBUG: Activity: (none)E/DEBUG: --- --- ...
赞
踩
article
系统学习
Linux
-故障处理(
文件系统
损坏、
MBR
引导
扇区、
grub
引导
故障)_
linux
修复
引导
...
查看模块 lsmod 卸载模块 rmmod 模块名称 加载模块 insmod 模块的绝对路径。后进入
grub
引导
操作。...
赞
踩
article
解决
java
.io.FileNotFoundException:
HADOOP
_
HOME
and h...
解决
java
.io.FileNotFoundException:
java
.io.FileNotFoundExcepti...
赞
踩
article
Linux
——
Route
指令详解_
linux
route
...
一、指令概要
route
命令用于显示和操作IP路由表使用下面的
route
命令可以查看
Linux
内核路由表 ...
赞
踩
article
"
不能
为
虚拟
电脑
ubuntu
打开一个新任务
"
的
解决办法
...
使用virtualbox报错:
不能
为
虚拟
电脑
ubuntu
3 打开一个新任务.The virtual machine '...
赞
踩
article
解决“Module
build
failed
(
from
./
node
_modules/
sass
-l...
如果你在使用Node.js和Sass时遇到了"Module
build
failed
(
from
./
node
_modu...
赞
踩
article
轮询
机制
是
什么意思
(
通俗
理解
轮询
)...
按照某种规则进行顺序触发
(
表述不
是
太明确,望指正);案例供思考1、 一艘船漏水了,上面20个人,但
是
只有一个救生艇可供3...
赞
踩
article
3D
视觉
感知新
SOTA
BEVFormer
复现
nuscenes
数据集测试
demo
...
环视bev目标检测_bevformer复现bevformer复现 0 写在前面 分享最近在BEV...
赞
踩
article
史上最简单
Git
入门教程
...
一:
Git
是什么?
Git
是目前世界上最先进的分布式版本控制系统。工作原理 / 流程:Workspace:工作区Index...
赞
踩
article
【设计
模式
】
适配器
模式
怎么
理解
?...
转换器
模式
是一种结构型设计
模式
,主要用于在两种不同类型的对象之间进行转换,而不需要改变原型的实际逻辑。这是一种在软件设计...
赞
踩
article
使用
Python
创造你
自己
的
计算机
游戏
(
游戏
编程快速上手)第四版:第五章到第九章...
五、龙之境原文:inventwithpython.com/invent4thed/chapter5.html译者:飞龙协...
赞
踩
article
UniApp
调试
支付宝
沙箱
(安卓)...
"orderInfo": response.msg, //此处为服务器返回的订单信息字符串。"provider": "a...
赞
踩
article
深入
PyTorch
:简单易懂探索
torch
.
nn
模块
的
强大
功能
...
本文深入探索了
PyTorch
框架中
的
torch
.
nn
模块
,这是构建和实现高效深度学习模型
的
核心组件。我们详细介绍了t...
赞
踩
article
python
yield
函数深入浅出理解...
首先关于生成器的那些事: 1.通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表...
赞
踩
article
使用
kubeadm
部署
Kubernetes1.26.1...
在Linux系统CentOS7.9下
部署
k8s集群,
使用
containerd为容器运行时,Calico为k8s网络组件。...
赞
踩
相关标签
kubernetes
docker
java
android
webview
python
中学生c++语言网络编程实例
unity
游戏引擎
linux
运维
学习
hadoop
开发语言
后端
大数据
网络
路由器
sass
javascript
rust
轮询