分布式服务框架中的服务优先级调度

学个名词吧,SLA(Service Level Agreement)服务级别协议 ^^

系统资源有限时,为了保证高优先级的服务可以正常运行,保障服务SLA,需要降低一些非核心服务的调度频次,释放部分资源占用,保障系统的整体平稳运行

优先级调度的策略很多,对分布式框架而言,要能够支持发布时设置优先级策略,并在资源成为瓶颈时按照用户配置的优先级策略调度执行服务


常用的服务优先级策略:

1)基于线程调度器的优先级调度策略

  线程优先级被线程调度器用来判断何时运行在哪个线程上,由于线程获得的CPU调度时间是包括线程优先级在内的多个因素决定的,优先级高的线程就自然会获得更多的CPU调度时间,算法简单,开发量小

  有多个线程可以调用时,由线程调度器决定哪个线程将被执行,以及执行多少时间


2)基于优先级队列的优先级调度策略

Java优先级队列调度由JDK负责,由PriorityQueue的优先级调度算法本身觉得,与平台无关,具备跨平台和可移植性,但是 若一直有高优先级的消磁需要处理,会导致低优先级的消息一直堆积,得不到处理,就算后来得到机会也由于超时被废弃掉,所以并不太适合分布式框架


3)基于加权配置的优先级调度策略

分布式服务框架并不是只处理优先级较高的消息,而是按照一定比例优先调度优先级较高的服务,加权优先级队列由普通优先级队列组成,每个队列与服务优先级1:1对应,服务端接收到请求时根据消息对应的服务优先级投递到指定的优先级队列,非法和没有设置优先级属性的消息,会投递到默认的优先级队列,


4)基于服务迁入迁出的调度策略

  基于分布式框架的服务动态发现机制,通过服务治理Protal的服务迁入迁出界面,将低优先级较低的部分运行实例从服务注册中心迁出,也就是动态去注册,消费者动态去发现服务,将迁出的服务实例的地址信息从路由表中删除,后续消息不会路由到已迁出的服务实例上,这样被迁出的服务仍然能够正常的处理,只不过由于部署的实例较少,得到调度的机会降低了很多,释放的资源将被较高优先级的服务使用,通过资源的动态调配,实现服务的优先级调度,业务高峰期度过,从新将迁出的服务迁入,恢复正常,优先级调度结束


它对性能的影响最小,灵活度最高,但是需要人工迁入迁出来实现资源动态调配,对运维人员的经验积累和操作水平有很高的要求,自动化程度较低


注意一点:服务的优先级调度和流控不同,流控最终会拒绝消息,导致部分请求失败,优先级调度是在资源紧张时优先执行优先级较高的服务,在保障高优先级服务能够合理被调度的同时,也兼顾处理部分低优先级的消息,他们之间存在一定的比例关系,优先级调度本身并不拒绝消息,若在优先级调度的同时发生了流控,则由流控负责拒绝消息,但是,对于高优先级的管理类消息,eg 心跳消息,指令消息等不能被流控掉


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Golang分布式任务框架是使用Golang编程语言开发的一种工具,用于简化分布式环境下的任务调度和处理。 首先,Golang分布式任务框架提供了一个简单而强大的任务调度器,可以将任务分配给不同的节点进行并行处理。这个调度器可以根据任务的类型和优先级来动态地分配任务,并且可以实时监控任务的执行情况和进度。 其次,该框架提供了一套灵活的任务管理机制,可以方便地定义和管理任务。我们可以通过编写简单的代码来定义任务的逻辑,并且可以为任务设置各种参数,例如执行时间间隔、重试次数等。此外,该框架还支持任务的持久化存储,确保任务在节点故障或系统重启后能够正确地恢复和继续执行。 此外,Golang分布式任务框架还提供了一套高效的通信机制,用于节点之间的消息传递和数据交换。通过这种通信机制,不同节点之间可以共享任务和数据,实现更加高效和协同的任务处理。此外,该框架还支持集群的动态扩展和节点的负载均衡,以应对不同规模和负载的分布式环境。 总结来说,Golang分布式任务框架通过提供强大的任务调度、任务管理和通信机制,简化了分布式环境下的任务处理。它具有灵活、高效和可靠的特点,适用于各种规模和负载的分布式系统应用。通过使用该框架,我们可以更加轻松地开发和管理分布式任务,提高系统的性能和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值