分布式服务治理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

35
6
总线服务
Service Service
Service
连接,负载,心跳
网关接入 系统保障 服务适配
安全,流控,降级 路由,转换,映射
Service
Service
Service
分布式服务
长连接 短连接 Dubbo Registry
2.启动时订阅服务地址 3.变更时推送服务地址列表
Dubbo Invoker
• 应用监控
– – – – 流量统计(PV,UV,TPS,ART…) 请求跟踪(WEB,SERVICE,QUEUE,CACHE,DB…) 架构基线(DEPEND,REQUIRED,TOPOLOGY…) 应用状态(LOG,PAGE,CONFIG…)
• 业务监控
– 业务数量(USER,OFFER,FEEDBACK…)
容灾演练
• 线上机房断电
– 报警系统是否正常 – 降级开关是否可用 – 流量切换是否正常 – 容错逻辑是否正常 – 依赖应用能否启动
23
服务监控
业务 应用 系统
系统监控
应用监控
业务监控
实时监控
日志采集
海量存储
计算平台
报警网关
基本监控
• 系统监控
– OS资源(CPU,LOAD,MEMORY,DISKIO,NETIO…) – JVM资源(THREAD,MEMORY…)

提升线上集群效率
– – – –
4
服务架构发展路线
application
service
Framework Architecture
ORM All in One
MVC Vertical Application
RPC/SOA Distributed Service
CLOUD Elastic Computing
存储与分析
• 采用Hbase或File或DB顺序读写,按天分区。 • 采用小型Hadoop或其它MapReduce框架进 行后台分析计算。 • 采用内部搜索引擎的索引策略加速查找。
展示报表
• • • • • • • • 趋势图 对比图 比率图 排名图 关系图 大盘图 区间图 分类图
服务分类统计
《分布式服务治理》
梁飞/虚极 (2012-11)
1
大纲
为什么要分布式
分布式带来的问题
如何解决这些问题
服务架构要解决的问题
流量 增长
业务 变化
架构问题
应用
膨胀
系统 打通
为什么要服务化
• 提升业务建模效率
– 统一领域模型 – 规范依赖关系 – 划分问题边界

提升开发部署效率
– – – – – 降低代码干扰 减少合并冲突 加速项目编译 强契约逻辑复用 方便替换实现 缩小集群规模,小规模增加机器收益最高 分离串行因素,使多数集群并行因子增大 垂直拆分应用,减少瓶颈资源竞争 功能降级,故障隔离
报警策略
• 状态报警
– 当出现某种错误状态时报警
• 容量报警
– 当达到最大容量阀值时报警
• 趋势报警
– 长时间处于上升趋势时报警
• 表达式条件报警
– 通过表达式可灵活设置报警策略
监控接入
• 通用KV数据汇报,自动按规则生成报表, 业务数据也可接入。 • 通用LOG格式,应用只需报规则打印日志, 即可完成监控。 • 通用降级开关拦载,用户只需在应用上声 明开关和拦截,降级页面自动展示开关按 扭。 • 自动拦截请求,Spring服务,DB驱动,中间 件等公共资源。
业务监控
实时监控
日志采集
ห้องสมุดไป่ตู้
海量存储
计算平台
报警网关
15
服务路由
16
服务测试
17
依赖关系
强弱依赖
• 逐个应用停机 • 自动回归测试
– 出错则为强依赖 – 不出错则为弱依赖
强 强 弱
19
容量评估
• 容量=
– 线上直接测试 – 增加单机权重 – 直到出现瓶颈 – 记录单机上限 – 乘以总机器数
增加权重 响应阀值:5s 负载阀值:8
服务响应区间
调用跟踪
34
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
Repository 4. download 1. upload 7. route Admin 5. start 13. view IT Governance
10.invoke
Provider Container Deployer
11.count Monitor
3. deploy 2. schedule 12.report Scheduler
实时监控
• • • • • • 秒级统计汇报 实时分析计算 实时状态展示 同比环比趋势 聚合分类比率 定向活动报表
采集策略
• • • • • HTTP状态页面定时抓取 JMX状态数据定时抓取 主动向监控服务发送数据 业务直接打印日志,独立Agent进程汇报 执行本地代理脚本,获取脚本echo信息
670%
100% 随机/轮循
100%
20
容量评估
21
降级开关
功能开关 •在某些功能引起过多资源消耗,或出现BUG时,在界面灰掉或隐藏部分功能。 服务开关 •当非关键路径拖慢应用时,屏蔽向该应用发起的请求,直接Mock返回。 加速开关 •先降低超时,尝试调用,当出错时,不重试,直接Mock返回。 流量开关 •当流量过大时,让一部分用户可用,一部分用户提示稍候,或灰掉入口。 质量开关 •当核心服务竞争过大时,降低非关键应用的质量,即有部分服务器只响应关键应用,非关键应用速度变慢。 资源开关 •按“买家”>“卖家”>“小二”的优先级调配资源,当资源不免时,可调卖家的资源保障买家,调小二的资源保 障卖家。
Cluster
1 ~ 10
10 ~ 1000
1000 ~ 10000
10000 +
5
服务架构CAP取舍
保障
• Availability (可用性) • Partition (分区性) • 失败切换容错隔离 • 水平伸缩线性扩容
规避
• Consistency (一致性) • 无状态计算服务 • 集中式数据状态
1.启动时注册服务地址
4.随机调用一个服务地址,失败重试另一地址
Dubbo Exporter
Service Consumer
Service Provider
5.后台定时采集服务调用次数和调用时间等信息 Dubbo Monitor
8
服务运维
Runtime Deployment
Registry 8.subscribe Service Governance Consumer 9.notify 6.register
Distributed Service application platform
Elastic Computing init async sync
9
服务治理定位
10
服务生命周期
需求
下线
运维
设计
治理
发布 测试
11
开发
服务治理要解决的问题
搞不清服务依赖关系 不知道什么时候要加机器 临时撑不住了怎么办 找不到服务文档和负责人 服务开发测试不方便 服务部署升级麻烦 服务运维监管困难
12
服务治理
服务降级
前端
动态配置 服务文档、负责人、流程
服务授权 权重调节 服务分层
集成
均衡策略
服务路由
服务注册与发现
服务编排 容错策略 资源劣化 服务质量协定
核心
服务容器
服务容量评估 服务调用统计
服务测试
依赖关系 关键路径分析
调度中心
监控中心
13
注册中心
服务监控
业务 应用 系统
系统监控
应用监控
相关文档
最新文档