微服务架构-微服务治理基础

目录

一、服务治理由来

1.1 概述

1.2 微服务治理的几个维度

1.2.1 服务定义和SLA

1.2.2 服务注册中心

1.2.3 服务生命周期管理

1.2.4 服务通信和链路治理

1.2.5 服务授权和通信安全

二、服务治理的目标与愿景

2.1 服务治理的愿景

2.2 服务治理的目标

2.2.1 标准化

2.2.2 平台化

2.2.3 智能化

2.2.4 一站式

2.2.5 总结

2.3 服务治理的基础和底线

三、服务治理的工作范畴

3.1 服务治理的实际工作

3.2 服务治理的工作范围

3.2.1 系统可见

3.2.2 系统可控

3.2.3 系统可追溯

3.2.4 系统可量化、可预测

3.2.5 立足全局、业务优先

四、服务治理闭环体系


一、服务治理由来

1.1 概述

在单体服务时代并没有服务治理的概念,随着单个服务慢慢演变和拆分为众多微服务组成的系统,服务提供者与服务使用者之间如果没有明确的契约和规范,开发、测试和运维过程中会带来很大的沟通成本。之前线上服务遇到过的一个真实的例子,服务代码中调用地理围栏服务,这块代码平常没什么变更,大家关注也不多,线上服务调用地理围栏突然发生故障,服务使用方联系之前负责对接的人,发现早已离职,并且这个服务多年没有修改,当前处于无人维护状态,导致出问题时无法及时响应的悲剧。

1.2 微服务治理的几个维度

服务治理就是解决服务提供者和服务使用者之间的链路通信与治理,主要包括如下几个维度的目标。

1.2.1 服务定义和SLA

服务定义是向外界说明当前服务提供者具体提供了哪些功能和能力,具体通过什么方式来使用服务,以及服务对外承诺的服务SLA。

提示:服务等级协议(Service-LevelAgreement),是服务提供方和服务使用方之间的协议,定义了服务品质的承诺 以及达不到承诺的具体惩罚措施,服务品质主要包括QPS、各分位耗时等。

1.2.2 服务注册中心

服务使用者使用服务之前需要先知道服务提供方具体在什么地方,服务注册中心负责管理各个服务的地址信息,用于服务使用者查询。

1.2.3 服务生命周期管理

服务生命周期管理用于对服务部署的整个生命周期进行管理,包含服务的上线和下线,服务的扩容和缩容等。

1.2.4 服务通信和链路治理

服务通信和链路治理是服务提供方和使用方约定,为了达成SLA而采用的一些治理手段,比如超时重试、限流降级等。

1.2.5 服务授权和通信安全

通信安全严格来说也是属于链路通信和治理的范畴,只不过由于安全特别重要,可以将这块单独提出来进行讲述。

二、服务治理的目标与愿景

2.1 服务治理的愿景

服务治理整体愿景是打造可见、可控、可追溯、可预测的全系统视图,立足全局,业务优先。可见即所得,可见皆可控。虽然服务治理的立场是系统全局,但是服务治理必须做到深入业务需求,解决业务实际问题。服务治理的开展和推广是讲究策略的,需要和业务方明确服务治理的长期收益。除此以外,服务治理要能溯源系统问题,提升定位效率。服务治理还要有能力提前发现全系统中的异常,如场景单点故障、全系统容量瓶颈和不合理的容量冗余等。

2.2 服务治理的目标

服务治理的目标是提供标准化、平台化、智能化的一站式服务治理设施,支持业务的稳定运行和高效迭代。服务治理的范围贯穿服务的全生命周期。

2.2.1 标准化

标准化是服务治理一切工作的基石,服务治理在规范、工具、框架和平台各个层次上都要有统一的标准。

2.2.2 平台化

平台化是擎天柱,标准如果完全依靠人来执行,不仅效率非常低,也很难保证不会出现各种遗漏以及落地和标准不一致的现象,将标准进行平台化落地,可以保证服务治理标准可以高效、稳定执行。

2.2.3 智能化

智能化是服务治理的理想状态,属于远景目标和仰望的星空,期望所有的服务治理工作能逐步通过自动化和智能化方式推进。

2.2.4 一站式

一站式,强调服务治理的闭环体系,所有通用的可感、可控、可追溯治理均能通过闭环高效完成。

2.2.5 总结

服务治理基础设施的呈现形式多样,具体包括规范、工具、框架和平台等。

从方法论的角度看,服务治理是把复杂的、重复的事情简单化,把简单的事情标准化,标准的事情流程化,流程的事情自动化。

2.3 服务治理的基础和底线

稳定是服务治理的基础和底线,易用才能提高用户效率,服务治理一般只关注稳定性和效率,对性能关注比较少,具体来说稳定运行,提高业务的稳定性,是服务治理的第一目标;高效迭代,提高业务的迭代效率,是服务治理的另一目标。

三、服务治理的工作范畴

3.1 服务治理的实际工作

基于上述服务治理目标,服务治理的实际工作包括两部分:一站式的服务治理平台、普适性的服务开发框架。其中一站式的服务治理平台作为服务治理输出的根据地,最重要的作用是服务治理规范的固化。

服务治理规范从经验到wiki、从wiki到平台的发展趋势也表明了服务治理规范是业务方和服务治理团队之间一个非常重要的桥梁。普适性的服务开发框架,是服务治理团队非常重要的一个抓手,平台能做的事情是有限的,而广泛使用的开发框架则可以完成更多的事情。普适性笔者认为是服务开发框架最重要的优点,如何和业务方结合、提升服务开发框架的普适性非常重要。

3.2 服务治理的工作范围

从内容上看,服务治理具体工作范围可以概括如下。

3.2.1 系统可见

主要是服务治理平台的工作,具体包含服务静态描述,比如服务基本信息、服务等级、全局依赖拓扑、路由关系、IDL(SDK)、权限、SLA、流量控制策略等,服务治理平台需要有能力帮助我们梳理依赖层级、判定服务等级。

服务实时拓扑,具体包括全局流量拓扑、报表审计等,服务治理平台需要有能力展示实时流量状态,基于场景定位线上问题。

3.2.2 系统可控

打通服务治理平台和服务开发框架,为其他平台输出能力,具体包括路由切换、降级预案等。

3.2.3 系统可追溯

将问题现场进行录制,如流量录制、日志录制等方式,然后使用相应的跟踪和追溯系统,对典型场景下的常见问题进行回放和溯源,做到“一次录制,多次回放”。基于追溯和回放机制,可以解决根因定位、场景分析等问题。

3.2.4 系统可量化、可预测

系统可预测,是指预测业务接下来一段时间的行为,比如流量、容量、安全等,同时通过各种工具和平台检测系统的潜在风险。以容量规划为例,需要能够预见和判断业务接下来一段时间的增加趋势和运营活动,判断可能的流量峰值以及对系统容量的影响;接下来通过全链路压测、单系统压测等方式探测系统可能的容量风险。

3.2.5 立足全局、业务优先

服务治理的目的是解决业务的稳定性和效率问题,必须完全聚焦业务,从业务出发,重点解决业务当前的痛点问题。

四、服务治理闭环体系

服务治理本质上来说是解决微服务化后产生的一系列挑战,比如效率治理、稳定性治理、效果治理、性能成本治理等。这些治理举措一般作用于设计开发阶段,我们可以称之为“正向治理”,在服务上线后,可以基于运行时的各种数据,进行综合治理和反馈,从而构成一个治理闭环,如下图所示:

在上述服务治理闭环中,通过多维度的度量数据收集,结合静态的服务元数据信息,构成一个完整的服务治理数据集,然后基于这些数据进行综合度量和分析。根据分析结果会产生相应的控制和管控措施,分别从线上和线下两个维度进行综合治理,同时将治理结果负向反馈回来,作为进一步治理的输入。

后续内容会围绕这个治理闭环展开,对服务治理进行深入剖析。

好了,本次内容就分享到这,欢迎大家关注《微服务架构》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/664174.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3使用vue3-print-nb打印

打印效果 1.下载插件 Vue2.0版本安装方法 npm install vue-print-nb --saveVue3.0版本安装方法: npm install vue3-print-nb --save2.main.js引入 vue2引入 import Print from vue-print-nb Vue.use(Print)vue3引入 import print from vue3-print-nb // 打印…

css :hover的使用

参考未整理 即鼠标移入类名为btn的元素时,她的子元素i样式发生改变 自身的样式也发生改变 ,如果他有更多的子元素也可以这样写

LeetCode2542最大子序列的分数

题目描述 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都是 n ,再给你一个正整数 k 。你必须从 nums1 中选一个长度为 k 的 子序列 对应的下标。 对于选择的下标 i0 ,i1 ,…, ik - 1 ,你的 …

7个卖出信号出现,昂首资本立即盈利收场

在上篇文章中,我们和各位投资者讨论了如果使用匕首交易策略进行交易,但是如果只买进不卖出,是不是还是盈利不了?Anzo Capital昂首资本认为只有低买高卖才能盈利赚钱,只要发现盈利信号就要立即卖出盈利收场!…

K8s中配置使用ingress

Ingress是什么 在Kubernetes中,Ingress是一种用于将外部流量路由到集群内部服务的API对象。它通常与Ingress控制器一起使用,Ingress控制器负责根据Ingress规则路由外部流量到不同的服务上。   Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由…

【算法】模拟算法——提莫攻击(easy)

题解&#xff1a;提莫攻击(模拟算法) 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 举例&#xff1a; 3.参考代码 class Solution { public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int n timeSeri…

mysql 分区

目标 给一个表&#xff08;半年有800万&#xff09;增加分区以增加查询速度 约束 分区不能有外键否则会报错 https://blog.csdn.net/yabingshi_tech/article/details/52241034 主键 按照时间列进行分区 https://blog.csdn.net/winerpro/article/details/135736454 参看以…

CSPM.pdf

PDF转图片 归档&#xff1a;

161.二叉树:在每个树中找最大值(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

FANUC机器人保养服务包,高效又可靠!

发那科机器人作为工业生产中的重要设备&#xff0c;其保养工作至关重要。定期FANUC机械手保养不仅可以延长机器人的使用寿命&#xff0c;还能提高生产效率和质量。 法那科机器人保养步骤&#xff1a; 基本的法兰克机器人保养是维护机器人的第一步&#xff0c;正确的保养步骤还…

Nature Communications|一种超快响应的电子皮肤(柔性压力传感/界面调控/电子皮肤/柔性电子)

南方科技大学郭传飞(Chuan Fei Guo)和中国科学技术大学王柳(Liu Wang)课题组,在《Nature Communications》上发布了一篇题为“Ultrafast piezocapacitive soft pressure sensors with over 10 kHz bandwidth via bonded microstructured interfaces”的论文。论文内容如下…

万字解析线控底盘技术

文章出处&#xff1a;汽车学堂Automooc 引言 在当今这个由科技驱动的时代&#xff0c;汽车电动化、智能化已成为汽车行业的热门话题。特斯拉的自动驾驶功能、蔚来的换电模式、以及比亚迪的刀片电池技术&#xff0c;这些创新不仅引领着市场趋势&#xff0c;也推动着消费者对智…

JVM学习-字节码指令集(四)

异常处理指令 抛出异常指令 athrow指令&#xff1a;在Java程序中显示抛出异常的操作(throw语句)都是由athrow指令来实现除了throw语句显示抛出异常情况之外&#xff0c;JVM规范还规定了许多运行时异常会在其他Java虚拟机指令检测到异常状况时自动抛出&#xff0c;在之前介绍的…

你真的会用收藏夹吗?可道云teamOS收藏夹,竟能缩短多层级文件夹的路径,实现快速访问

在日常工作中&#xff0c;我们时常会面临一个让人头疼的问题&#xff1a;如何在海量的文件和资料中快速找到我们需要的那一份&#xff1f; 尤其是在团队协作中&#xff0c;每个人都在不断地上传、更新文件……导致文件目录层级复杂&#xff0c;搜索也变得繁琐。 这时候&#x…

剖析【C++】——类和对象(下篇)——超详解——小白篇

目录 1.再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit 关键字 2. Static成员 2.1 概念 2.2 特性 3. 友元 3.1 友元函数 3.2 友元类 3.3总结&#xff1a; 4. 内部类 1.概念 2.特性 示例代码&#xff1a; 代码分析 3.总结 5.再次理解类和对象 …

vue-esign实现电子签名

导入依赖 pnpm install vue-esign --savesign.vue代码实现 <template><div id"app"><div class"signMask" v-if"autographStatus"><div class"sigh-btns"><button class"btn" type"info&…

mysql中子查询的语法和执行过程

大家好。我们在日常开发过程中&#xff0c;肯定都经常用到了子查询。今天我们就来聊一下mysql中子查询的一些语法以及子查询的执行过程。 一、子查询的语法 首先在开讲之前&#xff0c;我们先创建t1、t2两张表&#xff0c;并分别在表中插入三条数据&#xff0c;方便我们下面内…

269 基于matlab的四连杆机构动力学参数计算

基于matlab的四连杆机构动力学参数计算。将抽油机简化为4连杆机构&#xff0c;仿真出悬点的位移、速度、加速度、扭矩因数、游梁转角等参数&#xff0c;并绘出图形。程序已调通&#xff0c;可直接运行。 269机构动力学参数计算 位移、速度、加速度 - 小红书 (xiaohongshu.com)

校园志愿者|基于SprinBoot+vue的校园志愿者管理系统(源码+数据库+文档)

校园志愿者管理系统 目录 基于SprinBootvue的校园志愿者管理系统 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2管理员功能 3志愿者功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&a…

多维时序 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测

多维时序 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测 目录 多维时序 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现SA-BP模拟退火算法优化BP神经网络多变量时间序列预…