首页 > 其他分享 >分布式系统关键技术:服务调度

分布式系统关键技术:服务调度

时间:2023-05-19 10:33:10浏览次数:28  
标签:状态 依赖 服务 实例 调度 需要 版本 分布式系统 关键技术

1、服务关键程度

服务关键程度,主要是梳理和定义服务的重要程度。这不是使用技术可以完成的,而是需要细致地管理对业务的理解,才能定义出架构中各个服务的重要程度。

 

2、服务依赖关系

  • 梳理出服务间的依赖关系,这点也非常重要。我们常说,“没有依赖,就没有伤害”。这句话的意思就是说,服务间的依赖是一件很易碎的事。依赖越多,依赖越复杂,我们的系统就越易碎。
  • 微服务是服务依赖最优解的上限,而服务依赖的下限是千万不要有依赖环。
  • 服务的依赖关系是可以通过技术的手段来发现的。其中 Zipkin 这个工具可以帮你梳理服务的依赖关系,以及了解各个服务的性能。

在梳理完服务的重要程度和服务的依赖关系之后,我们相当于知道来整个架构的全局。就好像扽到了一张城市地图,再加上相关的监控,我们就可以看到城市各条道路上的工作和拥堵情况。

 

3、服务发现

由于整个系统是非常动态的,有的服务会新加进来,有的会离开,有的会增加更多的实例,有的会减少,所以在这个系统中我们需要一套可以自动服务发现的机制,也叫服务注册中心。在服务注册中心上面可以清楚的知道每个服务的状态。 

有了这些服务的状态和生命周期的管理,以及服务的重要程度和服务的依赖关系,在加上一个服务运行状态。管理分布式服务就可以变的方便很多。

 

4、整个架构的版本管理

在分布式架构中,我们也需要一个架构的版本,用来控制其中各个服务的版本兼容。 比如,A 服务的 1.2 版本只能和 B 服务的 2.2 版本一起工作,A 服务的上个版本 1.1 只能 和 B 服务的 2.0 一起工作。这就是版本兼容性。

需要一个架构的 manifest,一个服务清单,这个服务清单定义了所有服 务的版本运行环境,其中包括但不限于:

  • 服务的软件版本;
  • 服务的运行环境——环境变量、CPU、内存、可以运行的结点、文件系统等;
  • 服务运行的最大最小实例数。

每一次对这个清单的变更都需要被记录下来,算是一个架构的版本管理。

 

5、服务应用生命周期全管理

1)服务和资源调度过程的关键技术:

1>.服务状态的维持和拟合
所谓服务状态,是服务运行时生命周期中的状态
服务运行过程中,状态也是会有变化的,这样的变化有两种。
一种是不预期的变化:服务运行因为故障导致一些服务挂掉,集群管理控制器应该能够强行维护服务的状态。在健康的实例数变少时,控制器会把不健康的服务给摘除,而又启动几个新的,强行维护健康的服务实例数。
另外一种是预期的变化:当需要发布新版本,需要伸缩,需要回滚。这时,集群管理控制器就应该把集群从现有状态迁移到另一个新的状态。这个过程并不是一蹴而就的,集群控制器需要一步一步地向集群发送若干控制命令。这个过程叫“拟合”——从一个状态拟合到另一个状态,而且要穷尽所有的可能,玩命地不断地拟合,直到达到目的。

服务的弹性伸缩和故障迁移。

弹性伸缩的步骤:
先扩展出几个结点;
再往上部署服务;
然后启动服务;
再检查服务的健康情况;
最后把新扩展出来的服务实例加入服务发现中提供服务。

在此过程中涉及到如下要素:
底层资源的伸缩;
服务的自动化部署;
服务的健康检查;
服务发现的注册;
服务流量的调度。

故障迁移:当服务的某个实例出现问题时,需要自动地恢复它。有两种模式,一种是宠物模式,一种是奶牛模式。
所谓宠物模式,就是一定要救活,主要是对于 stateful 的服务。
而奶牛模式,就是不救活了,重新生成一个实例。

这个过程涉及:
服务的健康监控(这可能需要一个 APM 的监控)。
如果是宠物模式,需要:服务的重新启动和服务的监控报警(如果重试恢复不成功,需要人工介入)。
如果是奶牛模式,需要:服务的资源申请,服务的自动化部署,服务发现的注册,以及服务的流量调度。

服务编排。

编排:通过一定的机制把一堆独立工作的进程给协同起来。在分布式的服务调度中,这个工作叫做 Orchestration。
传统的 SOA 是通过 ESB(Enterprise Service Bus)——企业服务总线来完成编排的。ESB的主要功能是服务通信路由、协议转换、服务编制和业务规则应用。

ESB 的服务编制叫 Choreography,与我们说的 Orchestration 是不一样的。
Orchestration 的意思是,一个服务像大脑一样来告诉大家应该怎么交互,就跟乐队的指挥一样。
Choreography 的意思是,在各自完成专属自己的工作的基础上,怎样互相协作,就跟芭蕾舞团的舞者一样。

在微服务中,我们希望使用更为轻量的中间件来取代 ESB 的服务编排功能。 简单来说,这需要一个 API Gateway 或一个简单的消息队列来做相应的编排工作。在 Spring Cloud 中,所有的请求都统一通过 API Gateway(Zuul)来访问内部的服务。

标签:状态,依赖,服务,实例,调度,需要,版本,分布式系统,关键技术
From: https://www.cnblogs.com/hlc-123/p/17411650.html

相关文章

  • 考虑柔性负荷的综合能源低碳经济调度 调度模型参考第
    考虑柔性负荷的综合能源低碳经济调度调度模型参考第一篇文献碳交易模型参考第二篇考虑三种场景并用cplex求解场景一调度结果如图所示本代码可改写能力强ID:49150696224502280......
  • 分布式系统的技术栈
    构建分布式系统的目的是增加系统容量,提高系统的可用性。说白了就是干两件事。一是提高整体架构的吞吐量,服务更多的并发和流量,二是为了提高系统的稳定性,让系统的可用性更高。1、如何提高整体架构的吞吐量,服务更多的并发和流量?1)提高系统性能的常用技术缓存系统:在分布式系统......
  • 分布式系统架构的问题和解决思路
    1、亚马逊做分布式服务架构,遇到了哪些问题,如何解决的?1)采用分布式系统架构后出现的问题:一个线上故障的工单会在不同的服务和不同的团队中转过来转过去;每个团队都可能成为一个潜在的DDoS攻击者,除非每个服务都要做好配额和限流;监控和查错变得更为复杂。除非有非常强大的监......
  • go语言调度gmp原理(3)
    go语言调度gmp原理(3)调度循环调度器启动之后,go语言运行时会调用runtime.mstart和runtime.mstart1,前者会初始化g0的stackguard0和stackguard1字段,后者会初始化线程并调用runtime.schedule进入调度循环funcschedule(){ mp:=getg().m ifmp.locks!=0{ throw("schedul......
  • go语言调度gmp原理(2)
    go语言调度gmp原理(2)创建goroutine通过runtime.newproc函数调用,runtime.newproc的入参是参数大小和表示函数的指针funcval,它会获取goroutine以及调用方的程序计数器,然后调用runtime.newproc1函数获取新的goroutine、结构体、将其加入处理器的运行队列,并在满足条件时调用runtime......
  • 火山引擎DataLeap数据调度实例的 DAG 优化方案 (二):功能设计
    针对上面存在的问题以及对需求的分析,我们可以进行如下的功能实现与设计:首先是渲染方案的替换,将svg的渲染方案替换成canvas渲染,通过减少页面中DOM的数量,提高前端渲染性能。其次是不同场景的功能设计,通过上面的需求分析,火山引擎DataLeap研发人员设计了不同的功能模式以满足......
  • Matlab,风光火储网综合能源系统优化调度。 包括热电厂热
    Matlab,风光火储网综合能源系统优化调度。包括热电厂热电机组(11台,电出力上下限受热出力的影响)、热电厂纯凝机组(4台),储能,储热,电转热设备(考虑与风电、热电厂出力配合的启停策略)风电光伏等机组。考虑经济性指标,cplex求解ID:5199677508760810......
  • MATLAB代码:基于两阶段鲁棒优化算法的微网经济调度 关键词:经济
    MATLAB代码:基于两阶段鲁棒优化算法的微网经济调度关键词:经济调度微网两阶段鲁棒规划仿真平台:MATLABYALMIP+CPLEX主要内容:代码主要做的是一个微网中电源容量优化配置的问题,即风电、光伏、储能以及燃气轮机的容量规划问题,程序考虑了不确定性,采用两阶段鲁棒优化方法进行优化,一阶......
  • matlab复现,考虑综合需求响应和阶梯型碳交易机制的综合能源系统优化调度策略。
    matlab复现,考虑综合需求响应和阶梯型碳交易机制的综合能源系统优化调度策略。关键词,综合能源系统,碳交易机制,综合需求响应。matlab复现,考虑综合需求响应和阶梯型碳交易机制的综合能源系统优化调度策略。关键词,综合能源系统,碳交易机制,综合需求响应。YID:4280669326294816......
  • MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度
    MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度关键词:碳捕集虚拟电厂需求响应优化调度电转气协同调度参考文档:《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》复现程序仿真平台:MATLAB+CPLEX使用的是yalmip+cplex求解器完成求解,购买前可以看运行结......