Presentation is loading. Please wait.

Presentation is loading. Please wait.

DUBBO开源 梁飞.

Similar presentations


Presentation on theme: "DUBBO开源 梁飞."— Presentation transcript:

1 DUBBO开源 梁飞

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

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

4 无侵入透明调用 暴露服务: 引用服务: <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>

5  高性能远程调用

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

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

8

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

10 服务依赖关系

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

12 服务分类统计

13 服务响应区间

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

15 服务治理定位

16 可集成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

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

18 网站架构发展 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

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

20 服务架构关联平台 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

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

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

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

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

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

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

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

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

29 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

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

31 完善的用户文档

32 持续的问题跟踪

33 可靠的持续集成

34 积极的社区贡献

35 活跃的社区交流

36 Q. & A. 文档主页: http://code.alibabatech.com/wiki/display/dubbo
问题跟踪: 持续集成: 代码审查: 源码仓库: 发布仓库: 邮件列表: 博客: 微博:


Download ppt "DUBBO开源 梁飞."

Similar presentations


Ads by Google