先声明一下,文章是引用别人的,感觉写的很好,一定要保存下来,url链接:http://blog.sina.com.cn/s/blog_493a84550102vlie.html
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。主要核心部件:
Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅
连通性说明
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小;监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示。
服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销;服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销。
注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外;注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者;注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表;注册中心和监控中心都是可选的,服务消费者可以直连服务提供者。
健状性说明
监控中心宕掉不影响使用,只是丢失部分采样数据;数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务。
注册中心对等集群,任意一台宕掉后,将自动切换到另一台;注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯。服务提供者无状态,任意一台宕掉后,不影响使用;服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复。
伸缩性说明
注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心;服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者。
以上内容是Dubbo主页提供的一些简单介绍,对于Dubbo的详细架构分析和介绍网上也有专门的文章说明,在此不再详细描述,只是对Dubbo本身的一些架构思路和使用场景再做些简单总结。
对于Dubbo分布式服务框架可以看到,对于实现系统内的完全组件化独立开发相当有好处,在这个之前我们往往使用的方法是利用OSGI软总线方式来实现内部的组件化开发和独立部署。而Dubbo框架可以更加容易的实现这点,即将逻辑层的方法很容易暴露为远程可以调用的各种类型的服务。即组件完全独立部署,而组件之间的交互只能够通过服务代理层暴露出来的服务进行交互,而这些服务都在服务注册中心进行注册。
对于注册中心和监控中心,这里有一个高可靠性设计,即即使两者都宕机无法访问,也不会影响到服务的正常消费和调用,这个设计相当重要,直接降低了本身服务框架和业务系统组件之间的强耦合性。当然注册中心本身也有内置的基于zookeeper的分布式协调机制和机器本身的动态心跳检测。
Dubbo分布式服务框架同传统的ESB一个重点区别就是对于实际的消息流不会走在Dubbo上面,即前面我有文章谈到过的对于服务的调用基本上是两次调用模式。即第一次调用首先从注册中心获取到动态的服务调用地址,第二次调用即服务的提供端和消费端直接握手,以解决消息流不需要在dubbo上传递的问题。这样做的好处就是dubbo本身不会有太大的消息传输和性能压力,但是缺点就是dubbo无法对消息传输日志进行详细的审计,这个只有留个各个业务系统自己去完成。
由于是二次握手,因此很容易实现完全的一种分布式服务架构模式,而且这种分布式集群不需要借助任何的集群软件和负载均衡设备。这是Dubbo框架的另外一个重要优点,即在服务注册中心本身有一个请求分配机制,可以在获取服务访问地址的时候动态的根据各种分配策略将服务请求分配到不同的服务端提供地址上面。即将所有的服务提供端IP地址,提供服务地址都需要配置到服务注册中心,服务注册中心根据某种负载均衡算法进行服务请求的平均分配。由于本身服务的无状态性,因此也不需要有专门的服务状态和会话保持机制。
应用的心跳检测是一个重要内容,注意这里不仅仅是服务器本身的心跳检查,而可能是到服务是否可用的心跳检测,只有实现这个层面的心跳,服务注册和管理中心才可能在服务提供端无法访问的时候动态分配其它可访问的服务提供地址,形成一种高可用性架构模式。对于心跳检测现在常用的方法仍然是基于socket的长连接和状态监听机制来实现。但是对于tcp keepalive心跳检测机制最大的问题还是在于无法很好的检测服务本身是否可用的问题,这个问题得到解决才是根本。
注意在dubbo里面有两个重要的模块,一个是dubbo-cluster 集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡、容错、路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。另外一个是dubbo-registry 注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。要注意到这两个模块对应的服务注册中心和服务监控中心对服务本身的实际调用和消息传输是完全解耦的,这也是dubbo本身实现高可用性和高可靠性的一个基础。
dubbo当前的实现机制在设计ESB类服务总线的时候很多思路也可以借鉴,即其对集群的实现思路,对监控中心和服务注册中心的实现思路。通过这种思路的实现可以将ESB服务总线彻底设计为一种全分布式高扩展性的分布式服务总线架构模式。这将同时解决到ESB总线本身的分布式集群扩展和传统dubbo无法监控和审计消息日志传输两方面的问题。
相关推荐
.NET Standard 2.1、.NET 6、.NET 7、.NET8 版本SQLBuilder,Expression表达式转换为SQL语句,支持SqlServer、MySql、Oracle、Sqlite、PostgreSql;基于Dapper实现了不同数据库对应的数据仓储Repository;
各国数字服务贸易进出口额(2010-2022年)
2024版银行及保险高净值客户健康绿皮书
【博客】MVC、MVP、MVVM设计模式的案例_pgc
Python数据抓取淘宝电商商品图片
基于python开发爬虫脚本,并使用django,echarts对数据进行分析_pgc
Tesseract繁体中文OCR数据文件,垂直布局
## 介绍 碳排放数据是衡量地方经济发展与环境可持续性的重要指标。碳排放数据通常包括二氧化碳排放量,来源包括能源消耗以及工业、交通、建筑等领域的排放。由于中国地理辽阔、经济发展不平衡,各地的碳排放水平差异较大。本次分享的数据是根据EDGAR资源提取的中国地级市二氧化碳排放数据,数据年份为2000-2023年 ## 一、数据介绍 数据名称:中国地级市二氧化碳排放数据 数据年份:2000-2023年 数据范围:300个地级以上城市 数据来源:EDGAR_2024_GHG of October 2024 数据说明:根据EDGAR提取的城市碳排放数据 ## 二、数据指标 年份、省份、城市、城市代码、所属地域、二氧化碳排放总量
基于多算法融合的齿轮箱故障诊断模型优化:GADF-CNN-BKA-LSSVM算法的原理与应用,基于GADF-CNN-BKA-LSSVM的齿轮箱故障诊断 首先,利用格拉姆角场差(GADF)时频分辨率高、可以深度反映时间序列内在结构和关系的特点,对采集到的一维故障数据信号转为二维图像,得到图像后并将图像进行降维处理;然后,将第一步得到的格拉姆角场差图像输入二维卷积神经网络(CNN)进行自适应故障特征提取;最后,取CNN的全连接层结果作为LSSVM分类器的输入,并采用黑翅鸢优化算法BKA对LSSVM分类器的超参数进行优化,以提高模型泛化能力,避免模型陷入局部最优 附赠常春藤优化算法IVY和鹈鹕优化算法POA ,基于GADF-CNN-BKA-LSSVM; 故障诊断; 图像降维; 特征提取; 模型泛化; 常春藤优化算法IVY; 鹈鹕优化算法POA,基于多算法优化的齿轮箱故障诊断:GADF-CNN-BKA-LSSVM模型
省级-创新资源错配指数(2000-2022年)
TencentMeeting_0300000000_3.30.30.420_x86_64.publish.officialwebsite.exe
基于FPGA的Endat绝对值编码器PG卡源代码优化与实现:海德汉1313编码器应用案例,基于fpga的海德汉1313 Endat绝对值编码器pg卡源代码 ,基于FPGA的海德汉1313; Endat; 绝对值编码器; PG卡; 源代码,基于FPGA的Endat绝对值编码器PG卡源代码
【Vue+PHP】基于thinkphp6、vue(iview-admin)前后端分离快速开发框架
## 1.基本信息 数据名称:ALOS 12.5m DEM 数据 空间位置:中国 数据格式:栅格 数据大小:61.5GB 空间分辨率:12.5m ## 2.内容概述 ALOS 12.5m DEM 数据,是ALOS(Advanced Land Observing Satellite. 2006年发射)卫星相控阵型L波段合成孔径雷达(PALSAR)采集的高程数据。PALSAR传感器具有高分辨率、扫描式合成孔径雷达、极化三种观测模式。ALOS Dem高程数据水平及垂直精度可达12.5米。 ALOS是日本宇宙航空研究所(JAXA)的Advanced Land Observing Satellite-1(高级陆地观测卫星-1,ALOS)项目。ALOS卫星载有三个传感器:全色遥感立体测绘仪(PRISM),主要用于数字高程测绘;先进可见光与近红外辐射计-2(AVNIR-2),用于精确陆地观测;相控阵型L波段合成孔径雷达(PALSAR),用于全天时全天候陆地观测。
基于六自由度机械臂模型的MPC预测控制方法研究,六自由度机械臂模型预测控制mpc ,六自由度机械臂;模型预测控制;MPC,六自由度机械臂的MPC预测控制模型
## 介绍 碳排放数据是衡量地方经济发展与环境可持续性的重要指标。碳排放数据通常包括二氧化碳排放量,来源包括能源消耗以及工业、交通、建筑等领域的排放。由于中国地理辽阔、经济发展不平衡,各地的碳排放水平差异较大。 本次分享的数据是根据EDGAR资源提取的中国各省、地级市、区县二氧化碳排放数据,数据年份为1980-2023年。 ## 一、数据介绍 数据名称:中国省、市、县二氧化碳排放数据 数据年份:1980-2023年 数据范围:各省、地级市、区县 数据来源:EDGAR_2024_GHG of October 2024 数据说明:根据EDGAR提取的城市碳排放数据 ## 二、数据指标 年份、省份、城市、城市代码、区县、二氧化碳排放总量 ## 三、数据展示
基于混合整数规划与次梯度法的分散PEV充电控制策略:比较与验证分析,基于混合整数规划问题次梯度法的分散PEV控制 本文提出了一种解决智能电网中充电式电动汽车(pev)车队充电问题的分散方法,其中通过MPC策略将全局和局部约束和目标与电网模型一起考虑。 充电问题的表示涉及连续变量和整数变量的组合(特别是布尔性质的)。 它被公式化为混合整数线性规划(MILP)问题,使用次梯度方法求解。 将所提出的方法与集中式方法进行比较,集中式方法通常通过分支定界算法来解决。 结果表明,分散式方法能够实现接近集中式方法的性能,同时减少计算负担,特别是对于大型车队。 这些发现通过在测试案例上执行的模拟来支持。 ,混合整数规划问题;次梯度法;分散PEV控制;MPC策略;全局和局部约束;MILP问题;计算负担;测试案例模拟,基于混合整数规划的次梯度法:分散PEV充电控制策略研究
.archivetemp活动七:小古文.doc
适用操作系统:windows。 适用CPU架构:x64。
数值分析与公式定理