服务治理的历史变迁:

第一代:以IBM为首的SOA解决方案提供商退出的针对企业IT系统的服务治理框架,主要聚焦在对企业IT系统中异构服务的质量管理、服务发布审批流程和服务建模、开发测试以及运行生命全周期的管理

第二代:以阿里为首的基于同一分布式框架的全新服务治理理念诞生,聚焦于对内部同构服务的线上治理,保障线上服务的运行质量

微服务架构+云端服务治理2013年至今,随着云计算和微服务架构的发展,以AWS为首的基于微服务架构+云服务化的云端服务治理体系诞生

传统的SOA主要包括:

1)服务建模:验证功能需求和业务需求,发现和评估当前服务,服务建模和性能需求,开发治理规划

2)服务组装:创建服务更新计划,创建和修改服务以满足业务需求,按照一定策略评估服务,批准组装完成

3)服务部署:确保服务的质量,措施包括性能测试,功能测试和满足度测试,批准服务部署

4)服务治理:早整个生命周期内管理和监控服务,跟踪服务注册表中的服务,根据服务治理等级协议(SLA)上报服务的性能KPI数据进行服务质量管理

缺点:

1)分布式服务框架的发展,内部服务框架需要统一,服务治理也需要适应新的架构,能够由表及里对服务进行细粒度的控制

2)微服务架构的发展和业务规模的扩大,导致服务规模量变引起质变,服务治理的特点和难度也随之发生变化

3)缺少服务运行时动态治理的能力,面对突发的流量高峰和业务冲击,传统的服务治理在响应速度,恢复故障等方面存在不足,无法敏捷的应对业务需求

分布式服务框架的服务治理:

是面对互联网业务的服务治理,聚焦在对内部采用统一服务框架进行服务化的业务运行太、细粒度的敏捷治理体系

治理对象:基于分布式服务框架开发的业务服务,与协议本身无关,治理的可以是SOA服务,也可以是基于内部服务框架私有协议开发的各种服务

治理策略:针对互联网业务的特点,eg 突发的流量高峰、网络延时、机房故障等,重点针对大规模跨机房的海量服务进行运行态治理,保障线上服务的高SLA,满足用户的体验,常用的策略包括限流降级、服务嵌入迁出、服务动态路由和灰度发布等

AWS云端微服务治理:AWS作为全球最大的云计算解决方案提供商,在微服务云化开发和治理方面提供了非常多的经验,eg:

1)全公司统一服务开发环境,统一简化服务框架(Coral Service),统一运行平台,快速高效开发

2)服务后端应用服务化,系统由多想服务化组件构成

3)服务共享、原子化、重用

4)服务由小研发团队负责服务开发测试部署和治理,运维整个生命周期支撑

5)高度自动化和Dev&Ops支持,一键部署和回退

6)超大规模支持:后台几十万个服务,成千上万个开发者同时使用,平均每秒有1~2个服务治理

7)尝试基于Docker的容器部署微服务

8)服务治理的核心是:服务性能KPI统计、告警、服务健康管理、灵活的弹性伸缩策略、故障自动迁移、服务限流和服务降级等多种治理手段,保障服务高质量运行

应用服务化之后面临的挑战:

1)跨团队协作问题:服务变多之后一般会分小组开发,涉及跨团队联调,如何快速找到开发者 ? 当前系统提供了那些服务,服务接口定义和参数是什么?服务使用示例,注意事项和约束是什么?开发完成之后调试,消费者A和服务提供者S进行联调会存在2个问题:a. 提供者S分布式部署,存在多个服务实例,路由动态分发,没办法确定会路由到哪一台服务器  b.若打断点,其它的消费者可能也正在使用,调试会被干扰,需要通知所有的开发者不要调用服务S,有点儿不太现实

2)服务的上下线管控:由于服务的发布很简单,上线会越来越随意,导致有时候架构师都不知道上线了什么服务,甚至出现重复服务,而服务下线比上线还要困难,因为业务调整,需要 结束某些服务的生命周期,服务提供者有时会直接将服务下线,导致依赖该服务的应用不能正常工作,应该是先将该服务标识为过时,然后通知调用方尽快修改调用,通过性能KPI接口和调用链分析,确认没有消费者再停用服务

服务安全:针对内部应用,服务框架常采用长连接管理客户端连接,针对非信任的第三方应用,或者而已消费者,需要具备黑白名单访问机制,防止客户端非法链路过多,占用大量的句柄,线程和缓存资源,影响服务提供者的质量

服务高SLA保障:业务高峰期,系统资源会成为瓶颈,需要对非核心服务 eg 用户评论、粉丝管理、积分管理等服务做限制,保障核心服务的正常运行,服务框架需要考虑如何关停非核心服务又不影响其它的合设服务

快速定位故障:服务化之后一个业务流程底层可能涉及成千上百的服务调用,任何一个服务发生故障都可能导致业务不可用,由于分布式部署,部署在成千上百台机器上,若仍使用原来的故障定位手段效率会非常低,服务化带来的价值也会大打折扣

服务治理非目标:

1)防止业务架构腐化:通过服务注册中心对服务强弱依赖进行分析,结合运行时服务调用链条分析,梳理不合理的依赖和调用路径,优化服务架构,防止代码腐化

2)快速故障定界:通过Flume等分布式日志采集框架,实时收集调用链日志,服务性能KPI数据,服务接口日志,运行日志等,实时汇总和在线分析,集中存储和展示,实现故障的自动发现,自动分析和在线条件检索,方便运维和开发人员进行快速问题定位

3)服务微管控:较细粒度的进行运行期服务治理,包括限流降级,服务迁入迁出、服务超时控制、智能路由,  统一配置、优先级调度和流量迁移等,提供方法级治理和动态生效功能,通过一系列的细粒度的治理策略,在故障发生时可以多管齐下,在线调整,快速回复业务

4)服务生命周期管理:包括服务的上线审批、下线通知,服务的在线升级以及上下线的服务文档库的建设

常见的服务治理:

服务降级、服务流控、服务动态扩展、超时控制、优先级调度、负载均衡策略调整、分组调整、等

分布式服务框架的服务治理相关推荐

  1. 服务框架及服务治理组件——业界调研

    声明:主要内容来自公司内部 对业界的调研,不一定恰当.准确.实时. 表格文字较多,APP阅读体验较差 团队 服务相关组件\方案 通信框架 监控 负载均衡\路由 是否开源 腾讯 完全自研:BG内部自治, ...

  2. Dubbo(一) 开始认识Dubbo,分布式服务框架

    引言: 以前的车马很慢,一生只够爱一个人 以前的网站人很少,一个单应用服务着一个人 -------------------- 现在,动不动就谈什么高并发,千万级访问.单应用?BOOM!分分钟爆炸.于是 ...

  3. 使用“即时消息服务框架”(iMSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)...

    1,示例解决方案介绍 在上一篇 <消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现>中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看如何使用消息服务框架(MSF ...

  4. 微服务架构 — 微服务框架

    目录 文章目录 目录 微服务框架 第一代微服务框架 Spring Cloud Dubbo 下一代微服务框架 - Service Mesh Istio Envoy Kubernetes + Servic ...

  5. 中间件技术及双十一实践·服务框架篇

    分布式服务框架--分布式服务的组织者 综述 06/07年以后,随着淘宝用户数量和网站流量的增长,应用系统的数量和复杂程度也急剧增加.诸多前台系统都需要使用一些公共的业务逻辑,这些业务逻辑通常具有共性的 ...

  6. 详解4种微服务框架接入Istio方案

    本文分享自华为云社区<传统微服务框架接入Istio方案详解>,作者:香菜聊游戏 . 微服务的概念和原理 微服务带来的问题 微服务带来的好处: 解耦了业务,解耦了代码和架构,业务更紧凑,逻辑 ...

  7. 滴滴大型微服务框架设计实践

    导读:在不久前的 Gopher China 大会中,滴滴高级专家工程师杜欢以<大型微服务框架设计实践>为主题的深度分享. ---- 大家好,我是杜欢,很荣幸能代表滴滴来做分享.我来滴滴的第 ...

  8. 滴滴杜欢:大型微服务框架设计实践

    杜欢:滴滴出行 / R lab 高级专家工程师 先后在微软和百度任职.曾自主创业作为创始⼈和 CTO ,专注于游戏领域创新项⽬研发落地.2015 年⾄今:历任滴滴出⾏平台产品中⼼技术负责⼈.出⾏创新业 ...

  9. 基于 Netty + Zoookeeper 实现零配置分布式RPC框架

    文章目录 1前言 2.简介 2.1 特征 2.1 技术点 3 快速上手 3.1 服务注册 3.2 服务调用 3.2 测试效果 3.2.1 测试服务远程调用 3.2.2 测试负载均衡策略 3.2.3 测 ...

最新文章

  1. MATLAB寻址访问按什么优先,matlab笔记
  2. mac设置linux环境,如何在mac或者linux配置oh-my-zsh
  3. PyTorch 保存模型结构参数及加载模型
  4. 编程之美-控制CPU占用率曲线方法整理
  5. 第四范式入围Gartner新兴技术与趋势影响力雷达全球代表厂商
  6. 南瑞变压器保护装置说明书_电力试验:变压器感应耐压试验(二)
  7. 重温JSP学习笔记--El表达式
  8. Oracle全文索引之二 创建
  9. 圆弧裁剪算法c++_程序媛转TA之理论篇十二:反走样的几种算法原理
  10. 【语音识别】基于matlab动态时间规整(DTW)孤立字语音识别【含Matlab源码 573期】
  11. 好用的android高清播放器,高清播放器哪个好用(推荐4款4K高清画质播放器)
  12. oppo鸿蒙系统刷机包下载,oppo A11N原版系统rom固件刷机包下载20200716版卡刷包
  13. java实现开根号:牛顿迭代法
  14. PS2022安装教程(附个人详细安装教程)
  15. HttpClient4模拟表单提交
  16. 新版标准日本语中级_第三十二课
  17. Hbuilder和HbuilderX连接夜神模拟器(nox),调试程序
  18. 华为正式发布方舟编译器,相关源码已开放下载;微软开源量子开发工具包 QDK;GitHub回应突然断供:也很无可奈何的样子……...
  19. 首屏加载从11s到1s,详解前端性能优化
  20. Android 学习之那些年我们遇到的BUG1:This view is not constrained, it only has designtime positions

热门文章

  1. css超出文字用省略号表示
  2. Java基础之Map集合
  3. postman 导出excel
  4. 联想android4.4.2版本,联想a788t可以把安卓4.3的系统升级到安卓4.42的系统吗
  5. 工业互联网的发展阶段划分
  6. excel 空格 拆分 单元格
  7. Springboot:报错 log cannot be resolved
  8. 反重力引擎项目-第二期-电子船工程
  9. React Native之react-navigation动态修改标题、页面导航等
  10. 超级实用的vue小技巧,用了之后直呼好棒~