DUBBO开源 梁飞.

Slides:



Advertisements
Similar presentations
高级服务器设计和实现 1 —— 基础与进阶 余锋
Advertisements

云计算及安全 ——Cloud Computing & Cloud Security
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
21世纪全国高职高专 计算机系列实用规划教材 计算机网络技术基础 主 编: 杨瑞良 李 平 副主编: 邱 涛 李明龙.
星云集团.
学生教育办介绍 2015年9月.
现代安全管理理论.
OpenStack开源虚拟化平台(三) 云计算 (第三版) 第 8 章 CLOUD COMPUTING Third Edition
基于CloudFoundry的私有云平台
基于node.js的高可扩展游戏服务器框架 设计与实现
J2EE Struts 和Spring 的区别.
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
第8章 系統架構.
大型主机应用上的开放系统和中间件 2011年度教育部-IBM精品课程
海量 数据分析架构.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Html5在移动互联网项目的应用 主讲人:曲毅
Information & Security System in China China North Eastern Air Traffic Control Bureau (CAAC) Customer Background Subsidiary of General Administration of.
YARN & MapReduce 2.0 Boyu Diao
医学仪器中的嵌入式系统设计  T06.WinCE 网络与通信
Microsoft Application Platform 開發技術導引
基于R和pentaho的全套开源BI平台的实现
Asp.net 基礎.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
MariaDB Spider分库分表引擎调研
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
第五章 信息与系统集成技术 概述 数据流集成技术 信息流集成技术 信息管理集成技术 流程重组与业务流程集成 企业门户集成 企业集成架构
建置、升級與轉換您的資料庫 - Data Tier Applications
DM81X 视频采集处理 ——MCFW框架介绍 广州创龙电子科技有限公司
SVN的基本概念 柳峰
CHAPTER 6 認識MapReduce.
BizTalk Server 2004.
第5章 方案工程(Solutions Engineering)
从现在做起 彻底改变你自己 Sanjay Mirchandani EMC公司高级副总裁、首席信息官.
SVN服务器的搭建(Windows) 柳峰
Qt网络编程实战之HTTP服务器 安晓辉(foruok)
Cloud Computing Google云计算原理.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Visual Studio Team System 简介
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
多 层 系 统 应 用 及 集 成 缩 略 图 客户端 用户 开发平台 系统分析员,程序员 应用服务器 应用服务器管理员 数据库
湖南大学-信息科学与工程学院-计算机与科学系
DevDays ’99 The aim of this mission is knowledge..
实习前你需要知道的 PRESENTED BY Yisa.
程序设计工具实习 Software Program Tool
何勉 新浪微博: Scrum框架及其背后的原则 原始图片 何勉 新浪微博:
/ 第6讲:开放服务集成开发 冯顺磊 /
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
Apache Flink 刘 驰.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
模式与实践:Windows Mobile 5.0应用程序架构
解决“最后1公里”问题.
2019/5/3 JAVA Socket(UDP).
Dubbo介绍 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成.
Chapter 18 使用GRASP的对象设计示例.
Touch Github = Touch the World
Delphi 7.0开发示例.
OpenStack vs CloudStack
CMP 讲义 2018 CMP设计哲学及基础概念 CMP推荐的4层代码结构.
Google的云计算 分布式锁服务Chubby.
针对石油石化、能源、矿业、汽车等广泛且严重依赖旋转生产设备的制造企业 典型的旋转设备包括:泵、发动机、电机、风机、传送设备、CNC等
蔺华 ISV开发合作经理 平台及开发技术部 微软(中国)有限公司
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Android进程间通讯.
SMC服务.
高擴充高穩定高安全 企業級資料管理平台 Report Builder概論 錢曉明 資策會 資深講師 台灣微軟 資深講師.
Presentation transcript:

DUBBO开源 梁飞

什么是Dubbo? 分布式服务框架 服务治理平台 远程服务调用 服务动态发现 集群软负载均衡 集群失败容错 依赖关系与关键路键 Netty/Mina/Grizzly RMI/Hessian/WebService 服务动态发现 Zookeeper/Redis 集群软负载均衡 Random/RoundRobin 集群失败容错 Failover/Failback 服务治理平台 依赖关系与关键路键 服务路由与动态配置 服务降级与资源劣化 权重调节与容量评估 服务授权与黑白名单 服务SLA与流程管理 服务测试与Mock 服务文档与负责人 ……

分布式服务框架 长连接 Dubbo Registry 短连接 2.启动时订阅服务地址 1.启动时注册服务地址 3.变更时推送服务地址列表 4.随机调用一个服务地址,失败重试另一地址 Dubbo Invoker Dubbo Exporter Service Consumer Service Provider 5.后台定时采集服务调用次数和调用时间等信息 Dubbo Monitor

无侵入透明调用 暴露服务: 引用服务: <bean id="helloService” class="com.alibaba.hello.impl.HelloServiceImpl" /> <dubbo:service interface="com.alibaba.hello.HelloService” ref=" helloService “ /> <dubbo:reference id=“helloService“ interface=“com.alibaba.hello.HelloService” /> <bean id=“xxxAction“ class=“com.alibaba.xxx.XxxAction" > <property name=“helloService" ref=“helloService" /> </bean>

 高性能远程调用

高性能线上验证 只用8台虚拟机 单机1.3亿/天 PC2鉴权服务2012-03-11 12亿/天

服务治理 服务降级 动态配置 服务授权 权重调节 均衡策略 服务路由 服务分层 服务编排 服务注册与发现 服务文档、负责人、流程 注册中心 前端 服务授权 权重调节 均衡策略 服务路由 集成 服务分层 服务编排 服务注册与发现 服务文档、负责人、流程 注册中心 容错策略 资源劣化 服务质量协定 核心 服务容器 服务测试 服务容量评估 服务调用统计 依赖关系 调度中心 监控中心 关键路径分析

服务监控 业务 应用 系统 系统监控 应用监控 业务监控 实时监控 日志采集 海量存储 计算平台 报警网关

服务依赖关系

降级开关 功能开关 在某些功能引起过多资源消耗,或出现BUG时,在界面灰掉或隐藏部分功能。 服务开关 当非关键路径拖慢应用时,屏蔽向该应用发起的请求,直接Mock返回。 服务开关 先降低超时,尝试调用,当出错时,不重试,直接Mock返回。 加速开关 当流量过大时,让一部分用户可用,一部分用户提示稍候,或灰掉入口。 流量开关 当核心服务竞争过大时,降低非关键应用的质量,即有部分服务器只响应关键应用,非关键应用速度变慢。 质量开关 按“买家”>“卖家”>“小二”的优先级调配资源,当资源不免时,可调卖家的资源保障买家,调小二的资源保障卖家。 资源开关

服务分类统计

服务响应区间

服务生命周期管理 需求 设计 开发 测试 发布 运维 下线 治理

服务治理定位

可集成IT治理 Runtime Deployment Registry Repository 8.subscribe 9.notify 6.register 4. download 1. upload 7. route 10.invoke Consumer Provider Admin Service Governance Container IT Governance 5. start 13. view Deployer 11.count 3. deploy 2. schedule 12.report Monitor Scheduler Distributed Service Elastic Computing application platform init async sync

服务架构要解决的问题 架构问题 业务变化 流量增长 应用 膨胀 系统打通 ß

网站架构发展 application service ORM MVC RPC/SOA CLOUD All in One Framework Architecture All in One Vertical Application Distributed Service Elastic Computing Cluster 1 ~ 10 10 ~ 1000 1000 ~ 10000 10000 +

服务架构CAP取舍 保障 规避 Availability (可用性) Partition (分区性) 失败切换容错隔离 水平伸缩线性扩容 Consistency (一致性) 无状态计算服务 集中式数据状态

服务架构关联平台 OPEN APP MW OPS DATA DW Ocean/TOP Gateway Hummock DDOS TEngine Server LVS LoadBalance APP Webx MVC Nonda/Sofax Module Galaxy Widget Driud DataSource MW Dubbo/HSF Service Napoli/Notify Queue Belfry Task Harbor/PMC Event OPS Diamond Config Dragoon/CSP Monitor Mecca/T4 Scheduler Aone Process DATA Otter Sync Cobar/TDDL Partition Tair/Redis KV OceanBase Column DW Hadoop MapReduce CTU RiskControl DataX ETL IceBird Analysis

为什么要服务化? 提升开发部署效率 提升业务建模效率 提升线上集群效率 统一领域模型 规范依赖关系 划分问题边界 降低代码干扰 减少合并冲突 加速项目编译 强契约逻辑复用 方便替换实现 提升线上集群效率 缩小集群规模,小规模增加机器收益最高 分离串行因素,使多数集群并行因子增大 垂直拆分应用,减少瓶颈资源竞争 功能降级,故障隔离

Dubbo开源历程 2008年底 开始规划调研 2010-04 重写2.0版本 2009年初 开发1.0版本 2011-10-20 2.0.7版本开源

谁在用Dubbo? (内部) 1000+应用,2000+服务 10,000,000,000+调用/天

谁在用Dubbo? (外部) 2011年底开源

谁在用Dubbo? 为什么这么多人用?

优雅的设计 微核+插件体系 平等对待第三方 级联最小扩展点 统一的数据模型 增量组合式扩展 声明API&过程SPI 高度可配置 Kernel Plugin Dogfooding Autowiring Cascading Provider dubbo://10.20.153.10/xxxService?timeout=1000 Registry dubbo://10.20.153.10/xxxService?timeout=2000 Consumer dubbo://10.20.153.10/xxxService?timeout=3000

服务框架设计原则 模块分包原则 框架扩展原则 模型划分原则 接口分离原则 组件协作原则 功能演进原则 复用度 + 稳定度 + 抽象度 微核 + 插件 + 平等 + 一致 框架扩展原则 服务域 + 实体域 + 会话域 模型划分原则 声明式API + 过程式SPI + 分离 接口分离原则 拦截 + 事件 + 共享 + 防御 组件协作原则 开闭 + 增量 + 高阶 功能演进原则

服务框架分层 Config Proxy Monitor Registry RPC Cluster Depend Protocol Serialize Transport Exchange Remoting

Dubbo Framework Consumer Provider Start Interface Class Inherit Init Call Depend Service Business Interface Implement User API Config invoke refer get export export ReferenceConfig ServiceConfig invoke Proxy getProxy getInvoker Proxy ProxyFactory Invoker Registry notify getRegistry NotifyListener Registry RegistryFactory invoke notify subscribe register getRegistry new RegistryDirectory RegistryProtocol Cluster list getRouter merge Directory Cluster list merge route getRouter invoke RPC Invoker select Router RouterFactory LoadBalance Monitor invoke getMonitor count getMonitor MonitorFilter Monitor MonitorFactory Contributor SPI Protocol invoke refer export invoke Filter Invoker Protocol Exporter Filter invoke invoke refer export DubboInvoker DubboProtocol DubboExporter DubboHandler Exchange request connect bind reply connect bind ExchangeClient Exchanger ExchangeSerever ExchangeHandler Transport send connect bind received connect bind received Client Transporter Server ChannelHandler Remoting wrap encode decode wrap Codec Dispatcher write read Serialize getExecutor serialize deserialize ObjectOutput Serialization ObjectInput ThreadPool

方便的开源环境 Confluence JIRA FishEye Hudson Sonar Maven Github GoogleGroups

完善的用户文档

持续的问题跟踪

可靠的持续集成

积极的社区贡献

活跃的社区交流

Q. & A. 文档主页: http://code.alibabatech.com/wiki/display/dubbo 问题跟踪: http://code.alibabatech.com/jira/browse/DUBBO 持续集成: http://code.alibabatech.com/ci/view/dubbo-trunk-pipeline 代码审查: http://code.alibabatech.com/fisheye/changelog/dubbo 源码仓库: https://github.com/AlibabaTech/dubbo 发布仓库: http://central.maven.org/maven2/com/alibaba/dubbo 邮件列表: http://groups.google.com/group/dubbo 博客: http://code.alibabatech.com/blog/tag/dubbo 微博: http://weibo.com/dubbo