当前位置: 首页 > article >正文

分布式调度框架学习笔记

一、分布式调度框架的基本设计

在这里插入图片描述

二、线程池线程数量设置的基本逻辑

cpu是分时复用的方法,线程是cpu调度的最小单元
在这里插入图片描述
如果当前cpu核数是n,计算密集型线程数一般设为n,io密集型(包括磁盘io和网络io)线程数一般设置为2n.

计算密集型线程数一般设为n的逻辑解释:
在这里插入图片描述
io密集型(包括磁盘io和网络io)线程数一般设置为2n的逻辑解释:
在这里插入图片描述

三、xxljob为什设置的线程是100,200?

在这里插入图片描述

四、power-job的无锁化设计

1. 任务分片

设计理念:在分布式环境中,任务通常被分成多个子任务(分片)并行执行。无锁化设计通过减少对共享资源的竞争来提高并发性能
实现方式:PowerJob 通过将任务分片分配给不同的执行节点,避免了多个节点对同一资源的竞争,从而减少了锁的使用。

2. 去中心化调度

设计理念:去中心化调度意味着调度决策不依赖于单一的中心节点,从而避免了中心节点的性能瓶颈和单点故障。
实现方式:PowerJob 采用去中心化的调度策略,允许各个节点独立地进行任务调度和执行,减少了对中心节点的依赖。

3. 无状态设计

设计理念:无状态设计意味着每个节点不依赖于其他节点的状态信息,从而减少了锁的使用。
实现方式:PowerJob 的节点设计为无状态,任务的状态信息存储在外部持久化存储中(如数据库),节点通过查询持久化存储来获取任务状态。
在这里插入图片描述
在这里插入图片描述

五、分布式调度框架对比

在这里插入图片描述
在这里插入图片描述
ElasticJob相对xxl-job和power-job的对比:
在这里插入图片描述
备注:
推荐课程:
【分布式调度中心power-job中固定延迟任务调度问题】https://www.bilibili.com/video/BV1Qb421B7n8?vd_source=3c00905b4271effeeee3f3184045c49b


http://www.kler.cn/a/452788.html

相关文章:

  • C++ —— 模板类与函数
  • 《战神:诸神黄昏》游戏运行时提示mss32.dll丢失怎么办?
  • 【C语言】深入探讨 C 语言 `int` 类型大小及其跨平台影响
  • Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)
  • 【C++】模板与泛型编程(一):定义模板,控制实例化、效率与灵活性
  • 发际线不断后移,生发液排行榜第一名,让绒毛碎发爆出来
  • 大模型推理引擎国产化思考和实践
  • 学习solid works第七课------装配体
  • ip归属地是什么意思?ip归属地是实时定位吗
  • Oracle数据库高效优化与实战案例解析
  • 走进 Web3:探索分布式网络的未来
  • Android 开发中自定义吐司(二)
  • Redis基础(1)--基本全局指令与架构
  • Charles安装证书过程(手机)
  • CSS系列(35)-- Subgrid详解
  • uni-app开发订单详情页面
  • Vue3知识弥补漏洞——性能优化篇
  • SSH无法启动问题:OpenSSL version mismatch. Built against 30000070, you have 30200020
  • np.triu:NumPy中提取上三角矩阵的利器
  • APP投放的归因框架设计
  • 枚举与lambda表达式,枚举实现单例模式为什么是安全的,lambda表达式与函数式接口的小九九~
  • python闭包详解
  • 2024年第十一期 | CCF ODC《开源战略动态月报》
  • 使用Python开发高级游戏:实现一个3D射击游戏
  • UE5仿漫威争锋灵蝶冲刺技能
  • ElasticSearch 的工作原理