SlideShare une entreprise Scribd logo
1  sur  23
DUBBO
支持动态注册/发现服务的高性能分布式 RPC 框架
传统分布式 RPC 架构
使用 F5、HAProxy 等软硬件进行负载均衡,且需要冗余
服务变多时,应用间的依赖关系难以理清
压力变大时,没有扩容和降级的准确参考指标
DUBBO 架构
1. 服务提供者启动,向注册中心注册自己提供的服务
2. 消费者启动,向注册中心订阅自己需要的服务
3. 注册中心返回服务提供者的列表给消费者
4. 消费者从服务提供者列表中,按照软负载均衡算法,选择
一台发起请求
DUBBO 架构
服务提供者和消费者会在内存中累计请求次数和耗时,每
分钟将数据异步发送给监控中心
DUBBO 架构的优势
消费者获取服务提供者列表,自行实现软负载和容错,消
除了负载均衡器的依赖,同时降低了成本
通过服务注册和订阅,Dubbo 可以提供所有节点间完整的
依赖关系
通过监控中心的统计数据,了解每个服务提供者的调用量
和响应时间,为扩容和降级提供依据
DUBBO 架构的优势
可伸缩性:
注册中心为集群,可动态增删实例
服务提供者无状态,可动态增删实例,注册中心将推送新
实例给订阅的消费者
DUBBO 架构的优势
可用性:
注册中心为集群,任意一台宕机后会重新选举出主服务器
继续提供服务
注册中心推送的服务提供者列表,将缓存在消费者,因此
注册中心集群即使全部宕机也不会影响服务调用
监控中心宕机只会丢失统计数据,不影响服务调用
服务提供者无状态,任意节点宕机后,消费者会重试其他
提供者;如此时注册中心可用,注册中心会通知所有订阅
的消费者放弃此节点
创建 DUBBO 服务
<bean id="fooService" class="com.example.FooServiceImpl">
<property name="fooDao" ref="fooDaoImpl"></property>
</bean>
<dubbo:service interface="com.example.FooService" ref="fooService"></dubbo:servic
Dubbo 采用 Spring 配置方式,对应用没有侵入性,只需在
业务层 (Service / Biz) 声明外增加 dubbo:service 的声明即
可完成远程化
DUBBO 支持的协议
优势 问题
Dubbo 采用 NIO 复用单一长连接,并使
用线程池并发处理请求,减少握
手和加大并发效率,性能较好
在大文件传
输时,单一
连接会成为
瓶颈
RMI 可与原生 RMI 互操作,基于 TCP 偶尔会连接
失败,需重
建 Stub
Hessian 可与原生 Hessian 互操作,基于
HTTP
依赖
Hessian,
HTTP 短连
接的开销大
协议可独立于单个服务或全局
<dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
<dubbo:service protocol="dubbo" interface="com.example.FooService" ref="fooServic
DUBBO 监控中心
目前 Dubbo 提供的 "Simple" 监控中心,是没有集群支持的
单点,但故障后不影响 RPC 服务
DUBBO 服务治理中心
提供服务降级、容错,以及动态配置、负载均衡、权重、
路由规则的调整
DUBBO 注册中心实现
优势 问题
ZooKeeper 广泛用于服务发现,
集群协调的成熟产品
依赖于 ZooKeeper
的稳定性
Redis 性能高 当前版本 (2.x) 自身
不支持集群,需要特
定客户端实现;对服
务器时间同步要求
高,用于检查心跳过
期脏数据
ZOOKEEPER 简介
ZooKeeper 现在是 Apache 的一个独立的顶级项目,它主
要用来解决分布式计算中的状态同步、统一命名、分布式
配置管理、集群选举、共享锁等问题
ZOOKEEPER 简介
它的数据结构就像一个标准文件系统,每个节点叫做
znode,可以存储数据,并且数据有版本
znode 可以是临时的,当创建它的 session 失效,znode 同
时会被删除
znode 可以被订阅,当它存储的数据被修改,子节点变化
都将通知已订阅的客户端
ZK 作为 DUBBO 注册中心
ZOOKEEPER 集群
Zk 集群在启动时选举出一台作为 Leader,其他节点为
Follower
客户端无需知晓 Leader 节点,可以选择集群中的任意节点
连接,发往 Follower 节点的写请求会被 foward 到 Leader
以便集群选举达到 Quorum,集群中的节点数量应是奇数
DUBBO 远景
分布式服务架构 (Dubbo 所处的阶段)
当垂直应用越来越多,应用之间交互不可避免,将核心业
务抽取出来,作为独立的服务,逐渐形成稳定的服务中
心,使前端应用能更快速的响应多变的市场需求
此时,用于提高业务复用及整合的 分布式服务框架(RPC)
是关键
DUBBO 远景
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题
逐渐显现,此时需增加一个调度中心基于访问压力实时管
理集群容量,提高集群利用率
此时,用于提高机器利用率的 资源调度和治理中心(SOA)
是关键
DUBBO 远景
到下一阶段(流动计算)还缺少的部分
DUBBO 相关项目
by 当当网"Dubbox"
支持 REST 风格远程调用
Kryo/FST 高效序列化实现
by Netflix"Eureka"
可作为 ZooKeeper 实现服务注册/发现的替代,为解决 Zk
的 而开发一些不足
by Spring"Spring Security"
解决 Dubbo 没有提供的安全方面
参考
Dubbo 官方文档
ZooKeeper Overview
分布式服务框架 ZooKeeper — 管理分布式环境中的数据
THE END
讨论环节

Contenu connexe

En vedette

Paxos building-reliable-system
Paxos building-reliable-systemPaxos building-reliable-system
Paxos building-reliable-systemYanpo Zhang
 
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)beehivedata
 
Honey's Data Dinner#12 區塊鏈的過往今來(上)
Honey's Data Dinner#12 區塊鏈的過往今來(上)Honey's Data Dinner#12 區塊鏈的過往今來(上)
Honey's Data Dinner#12 區塊鏈的過往今來(上)beehivedata
 
《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿Justin Lin
 
暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1Michael Ding
 
Aggregated queries with Druid on terrabytes and petabytes of data
Aggregated queries with Druid on terrabytes and petabytes of dataAggregated queries with Druid on terrabytes and petabytes of data
Aggregated queries with Druid on terrabytes and petabytes of dataRostislav Pashuto
 
Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得roboard
 
Honey's Data Dinner#8 資料科學實用技術、工具與實例分享
Honey's Data Dinner#8 資料科學實用技術、工具與實例分享Honey's Data Dinner#8 資料科學實用技術、工具與實例分享
Honey's Data Dinner#8 資料科學實用技術、工具與實例分享beehivedata
 
以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )
以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )
以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )Cheng-Hung Chen
 
基于Python构建可扩展的自动化运维平台
基于Python构建可扩展的自动化运维平台基于Python构建可扩展的自动化运维平台
基于Python构建可扩展的自动化运维平台liuts
 
Honey's Data Dinner#1 word2vec 2016總統大選新聞
Honey's Data Dinner#1 word2vec 2016總統大選新聞Honey's Data Dinner#1 word2vec 2016總統大選新聞
Honey's Data Dinner#1 word2vec 2016總統大選新聞beehivedata
 
何謂大數據
何謂大數據何謂大數據
何謂大數據kngchn
 
Arduino、Web 到 IoT
Arduino、Web 到 IoTArduino、Web 到 IoT
Arduino、Web 到 IoTJustin Lin
 
2017.2.23 提升門市服務品質
2017.2.23 提升門市服務品質2017.2.23 提升門市服務品質
2017.2.23 提升門市服務品質LIN JACK
 
Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法
Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法
Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法beehivedata
 
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Etu Solution
 
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃Etu Solution
 
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pubChao Zhu
 
豆瓣数据架构实践
豆瓣数据架构实践豆瓣数据架构实践
豆瓣数据架构实践Xupeng Yun
 

En vedette (20)

Paxos building-reliable-system
Paxos building-reliable-systemPaxos building-reliable-system
Paxos building-reliable-system
 
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
 
Honey's Data Dinner#12 區塊鏈的過往今來(上)
Honey's Data Dinner#12 區塊鏈的過往今來(上)Honey's Data Dinner#12 區塊鏈的過往今來(上)
Honey's Data Dinner#12 區塊鏈的過往今來(上)
 
《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿
 
暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1
 
Aggregated queries with Druid on terrabytes and petabytes of data
Aggregated queries with Druid on terrabytes and petabytes of dataAggregated queries with Druid on terrabytes and petabytes of data
Aggregated queries with Druid on terrabytes and petabytes of data
 
Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得
 
Honey's Data Dinner#8 資料科學實用技術、工具與實例分享
Honey's Data Dinner#8 資料科學實用技術、工具與實例分享Honey's Data Dinner#8 資料科學實用技術、工具與實例分享
Honey's Data Dinner#8 資料科學實用技術、工具與實例分享
 
以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )
以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )
以生產力4.0創造台灣產業成長新契機(經濟部沈榮津次長 )
 
基于Python构建可扩展的自动化运维平台
基于Python构建可扩展的自动化运维平台基于Python构建可扩展的自动化运维平台
基于Python构建可扩展的自动化运维平台
 
Honey's Data Dinner#1 word2vec 2016總統大選新聞
Honey's Data Dinner#1 word2vec 2016總統大選新聞Honey's Data Dinner#1 word2vec 2016總統大選新聞
Honey's Data Dinner#1 word2vec 2016總統大選新聞
 
何謂大數據
何謂大數據何謂大數據
何謂大數據
 
Arduino、Web 到 IoT
Arduino、Web 到 IoTArduino、Web 到 IoT
Arduino、Web 到 IoT
 
2017.2.23 提升門市服務品質
2017.2.23 提升門市服務品質2017.2.23 提升門市服務品質
2017.2.23 提升門市服務品質
 
Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法
Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法
Honey's Data Dinner#11 以資料科學切入的食品安全風險評估方法
 
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
 
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
 
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
 
進階主題
進階主題進階主題
進階主題
 
豆瓣数据架构实践
豆瓣数据架构实践豆瓣数据架构实践
豆瓣数据架构实践
 

Similaire à Dubbo - 高性能分布式 RPC 框架

Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享drewz lin
 
Alibaba Service Framework Practice
Alibaba Service Framework  PracticeAlibaba Service Framework  Practice
Alibaba Service Framework PracticeShawn Qian
 
Minderin p2 p系统文档
Minderin p2 p系统文档Minderin p2 p系统文档
Minderin p2 p系统文档fubenbo
 
Wccp技术简介
Wccp技术简介Wccp技术简介
Wccp技术简介qianshi
 
FlexNet Manager for Engineering Applications Datasheet
FlexNet Manager for Engineering Applications DatasheetFlexNet Manager for Engineering Applications Datasheet
FlexNet Manager for Engineering Applications DatasheetFlexera
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理Kay Yan
 
Gpm light professional綠色供應鏈管理系統介紹
Gpm light professional綠色供應鏈管理系統介紹Gpm light professional綠色供應鏈管理系統介紹
Gpm light professional綠色供應鏈管理系統介紹Manson Liou
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维guiyingshenxia
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维colderboy17
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结beiyu95
 
Hbase使用hadoop分析
Hbase使用hadoop分析Hbase使用hadoop分析
Hbase使用hadoop分析baggioss
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0qianshi
 
GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹Manson Liou
 
GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹Manson Liou
 
200701011
200701011200701011
2007010115045033
 
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构Chen Fei
 
存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0hupo136
 
Top100summit 夏彦刚-视频cdn系统建设关键要点探讨
Top100summit 夏彦刚-视频cdn系统建设关键要点探讨Top100summit 夏彦刚-视频cdn系统建设关键要点探讨
Top100summit 夏彦刚-视频cdn系统建设关键要点探讨drewz lin
 

Similaire à Dubbo - 高性能分布式 RPC 框架 (20)

Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享Top100summit 高楼-7点测试-zee-性能测试案例分享
Top100summit 高楼-7点测试-zee-性能测试案例分享
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
Alibaba Service Framework Practice
Alibaba Service Framework  PracticeAlibaba Service Framework  Practice
Alibaba Service Framework Practice
 
Minderin p2 p系统文档
Minderin p2 p系统文档Minderin p2 p系统文档
Minderin p2 p系统文档
 
Wccp技术简介
Wccp技术简介Wccp技术简介
Wccp技术简介
 
FlexNet Manager for Engineering Applications Datasheet
FlexNet Manager for Engineering Applications DatasheetFlexNet Manager for Engineering Applications Datasheet
FlexNet Manager for Engineering Applications Datasheet
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
Gpm light professional綠色供應鏈管理系統介紹
Gpm light professional綠色供應鏈管理系統介紹Gpm light professional綠色供應鏈管理系統介紹
Gpm light professional綠色供應鏈管理系統介紹
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结
 
Hbase使用hadoop分析
Hbase使用hadoop分析Hbase使用hadoop分析
Hbase使用hadoop分析
 
互联网内容缓存解决方案_应用加速
互联网内容缓存解决方案_应用加速互联网内容缓存解决方案_应用加速
互联网内容缓存解决方案_应用加速
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
 
GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹
 
GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹GPM Light Professional綠色供應鏈管理系統介紹
GPM Light Professional綠色供應鏈管理系統介紹
 
200701011
200701011200701011
200701011
 
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
 
存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0
 
Top100summit 夏彦刚-视频cdn系统建设关键要点探讨
Top100summit 夏彦刚-视频cdn系统建设关键要点探讨Top100summit 夏彦刚-视频cdn系统建设关键要点探讨
Top100summit 夏彦刚-视频cdn系统建设关键要点探讨
 

Dubbo - 高性能分布式 RPC 框架