【分布式系统】聊聊服务调度

什么是服务治理

对于程序员来说的话,把功能按照一定的设计进行开发上线之后,其实并不够,在未来的时间内,其实还需要做好功能的维护工作,而维护项目的成本远远高于开发出一个软件的成本。
在这里插入图片描述

  • 对于功能开发起来期来说,如果前期的设计、编码等比较规范,且易维护,那么后期系统在迭代的时候维护成本就可以减少一定的成本。
    对于互联网项目来说,一般提供的服务都是 7 * 24 不间断的服务。功能开发和功能维护变得更模糊。
    操作系统的本质是解决软件治理问题,也就是多个软件可以在同一个物理上进行资源的操作和共享。
    而服务治理的目标就是,除了软件治理外,如何保证这些如软件能够24小时不间断的提供服务。
    在这里插入图片描述
    主要的话就是如下几点
  • 服务的变更:发布、升级与版本管理
  • 服务的健康状况:日志、监控与报警
  • 服务的故障处理:故障域与故障域案、故障排查与根本分析、过载保护与容量规划。

而从服务端整体架构看的话其实就是
在这里插入图片描述
服务治理通常来说包含 服务调度和流量调度。

服务关键程度和服务的依赖关系

针对于服务关键程度和服务的依赖关系,这个需要对业务系统的整体有把控力,了解主要业务流程涉及哪些系统,然后可以通过将重要的服务进行梳理出来,比如订单、支付、库存等业务可以进行抽取出来。以及对应的依赖管理,上下游关系,只有这样才可以一目了然了解各个系统之间的数据流程。
尽可能降低服务之间的依赖,可以提高系统的稳定性,因为依赖越多,复杂度越高,如果一个下游系统,全部上游系统都依赖,出现问题的话,那么就会出现多米诺骨牌效应。
并且要避免出现服务依赖成环。微服务是服务依赖最优解的上限,而服务依赖的下限是千万不要有依赖环
依赖环可能出现递归事故或者在项目发布的时候,没有办法解决兼容问题。而解决服务依赖环的关键就是依赖倒置原则,一般通过引入一个三方服务,比如消息队列等。
所以通过获取到服务整体依赖关系,就可以清楚知道如果出现故障可能影响的范围。

服务状态和生命周期的管理

对于一个分布式系统来说,服务实例可能会下线或者新增。所以我们需要一个注册中心来进行管理服务的状态。

  • 整个系统有多少服务
  • 服务的版本是什么
  • 服务的实例数是多少
  • 服务的状态,运行中,故障中,启动中,停机中等

服务生命周期包含如下

  • Provision,供应一个新的服务
  • Ready,启动成功
  • Run,服务健康检查
  • Update,升级中
  • Rollback,回滚中
  • Scale,伸缩中。
  • Destory,销毁中
  • Failed,失败

整个架构的版本管理

对于大多数公司来说,其实只是维护的一个系统的版本,而并没有维护一个上下游之间 系统的版本,比如订单系统是1.0 对应支付系统的 2.0,而如果没有整个架构的版本管理,如果出现上线问题后,那么只能通过一起回滚。而这种是非常麻烦和浪费人力。

所以最好的方式就是在系统的版本之上维护一个上一层的版本管理,这样就可以通过管理一个大的版本来进行维护系统。当出现问题时,就不需要只回滚来一部分机器而到另一部分没有回滚出现兼容问题,从而引发BUG。

资源/服务调度

服务和资源调度类似,主要有如下

  • 服务状态的维持和拟合
  • 服务的弹性伸缩和故障迁移
  • 作业和应用调度
  • 作业工作流编排
  • 服务编排

小结

本篇主要介绍了服务治理和分布式系统服务调度相关的点,主要包括服务关键程度和服务依赖关系,服务的状态和服务生命周期管理以及整个架构版本的管理。

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

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

相关文章

2021-03-03 Multisim 14.0 电池充电防止反接保护

R2R3当作充电线电阻看,也可设置这2个电阻导线电阻,电阻取值依据充电电流范围确定,由于电池存在电压因此可以用光耦检测,发光二极管当作继电器看,可采用继电器自锁,当下次再次反接的话另一个继电器同样,2个继电器相互控制.本电路可验证极性变化时2路检测的变化,图中S1为模拟电池…

聊聊混合动力汽车和纯电骑车的优势和劣势

混合动力汽车和纯电动骑车是两种不同的交通工具,它们都有各自的优势和劣势。本文将分别探讨混合动力汽车和纯电动骑车的优势和劣势,并为文章提供三个备选的好听的标题。 混合动力汽车是一种结合了内燃机和电动机的汽车,它可以同时利用燃油和电…

【rust/入门】windows安装rust gnu环境(折腾)

说在前面 首先说明,我是rust入门选手,之前都是在wsl写rust,突然想在windows下装下rust。windows版本:windows11 22H2原文换源 心路历程 看到教程我陷入了沉默,(官方推荐) 打开Microsoft C Build Tools我开始不解&…

【RabbitMQ】golang客户端教程3——发布订阅(使用fanout交换器)

发布订阅 在上一个教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务只传递给一个工人。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者传递一个消息。这就是所谓的“订阅/发布模式”。 为了说明这种模式,我们…

06 Ubuntu22.04上的miniconda3安装、深度学习常用环境配置

下载脚本 我依然是在清华镜像当中寻找的脚本。这里找脚本真的十分方便,我十分推荐。 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh 下载十分快速,10秒解决问题 运行miniconda3安装脚本 赋予执…

项目一:基于stm32的阿里云智慧消防监控系统

若该文为原创文章,转载请注明原文出处。 Hi,大家好,我是忆枫,今天向大家介绍一个单片机项目。 一、简介 智慧消防监控系统,是用于检测火灾,温度,烟雾的监控系统。以 stm32单片机为核心外加 MQ…

掌握Memory Profiler技巧:识别内存问题

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、如何使用四、页面说明4.1 Java 和 Kotlin 分配…

LeetCode 热题 100 JavaScript--102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root [1…

il汇编整数相加

在这里尝试了IL汇编字符串连接; IL汇编字符串连接_bcbobo21cn的博客-CSDN博客 下面来看一下IL汇编整数相加; 大概的看一下一些资料,下面语句, ldc.i4 20 ldc.i4 30 add 看上去像是,装载整数20到一个类似于…

【C++学习手札】一文带你初识构造函数和拷贝构造函数、析构函数

食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识: C类 ♈️今日夜电波: アイネクライネ —米津玄師 1:11 ━━━━━━️💟──────── 4:50 …

vue el-input 使用 回车键会刷新页面的问题

场景: vue项目中 在输入框输入字符并按下回车键搜索时,不会进行搜索, 而是会刷新页面 原因: 当form表单中只有一个input时,按下回车建会自动触发页面的提交功能, 产生刷新页面的行为 解决: 在…

《Java-SE-第二十九章》之Synchronized原理与JUC常用类

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

【ChatGPT 指令大全】怎么利用ChatGPT写报告

目录 选定切入角度 报告开头 大纲生成 草稿撰写 研究报告 提出反对观点 报告总结 研究来源 总结 随着人工智能技术的快速发展,自然语言处理技术在各个领域的应用越来越广泛。其中,ChatGPT作为目前最先进的自然语言处理模型之一,其强…

助力618-Y的混沌实践之路 | 京东云技术团队

一、写在前面 1、混沌是什么? 混沌工程(Chaos Engineering)的概念由 Netflix 在 2010 年提出,通过主动向系统中引入异常状态,并根据系统在各种压力下的行为表现确定优化策略,是保障系统稳定性的新型手段。…

Go语言time库,时间和日期相关的操作方法

time库 用于处理时间、日期和时区的核心库。在实际开发中,常常需要与时间打交道,例如记录日志、处理时间差、计算时间间隔等等。因此,掌握time库的使用方法对于Go开发者来说非常重要。 在Go语言中,时间表示为time.Time类型&…

基于 yolov8 的人体姿态评估

写在前面 工作中遇到,简单整理博文内容为使用预训练模型的一个预测 Demo测试图片来源与网络,如有侵权请告知理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停…

嵌入式开发学习(STC51-15-红外遥控)

内容 使用外部中断功能,使按下红外遥控器,将对应键值编码数据解码后通过数码管显示 红外遥控介绍 红外线简介 人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫; 其中红光的波长范围为 0.62&…

Flink Windows(窗口)详解

Windows(窗口) Windows是流计算的核心。Windows将流分成有限大小的“buckets”,我们可以在其上应用聚合计算(ProcessWindowFunction,ReduceFunction,AggregateFunction或FoldFunction)等。在Fl…

一、ADAS技术概述

根据《国家车联网产业标准体系建设指南》对智能网联汽车定义:智能网联汽车是指搭载先进的车载传感器、控制器、执行器等装置,并融合现代通信与网络技术,实现车与X(人、车、路、云端等)智能信息交换、共享,具…