刘俊凯 发表于 2024-12-26 08:17:12

分布式调度框架学习条记

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

https://i-blog.csdnimg.cn/direct/f893cda11f194c6cbc839dd380f02f2b.png
二、线程池线程数量设置的根本逻辑

cpu是分时复用的方法,线程是cpu调度的最小单元
https://i-blog.csdnimg.cn/direct/4b4e220c5f344731a3fb51a4c0ec4cb3.png
如果当前cpu核数是n,计算密集型线程数一般设为n,io密集型(包括磁盘io和网络io)线程数一般设置为2n.
计算密集型线程数一般设为n的逻辑解释:
https://i-blog.csdnimg.cn/direct/b5e7c5725f744d70a68a1d7cb0097caf.png
io密集型(包括磁盘io和网络io)线程数一般设置为2n的逻辑解释:
https://i-blog.csdnimg.cn/direct/aebf34f4989349ceb9a0e6b784529d6f.png
三、xxljob为什设置的线程是100,200?

https://i-blog.csdnimg.cn/direct/b042aaac5669410e9e1abb8cc9b585bd.png
四、power-job的无锁化设计

1. 任务分片

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

设计理念:去中心化调度意味着调度决策不依赖于单一的中心节点,从而避免了中心节点的性能瓶颈和单点故障。
实现方式:PowerJob 接纳去中心化的调度计谋,答应各个节点独立地举行任务调度和实行,减少了对中心节点的依赖。
3. 无状态设计

设计理念:无状态设计意味着每个节点不依赖于其他节点的状态信息,从而减少了锁的使用。
实现方式:PowerJob 的节点设计为无状态,任务的状态信息存储在外部持久化存储中(如数据库),节点通过查询持久化存储来获取任务状态。
https://i-blog.csdnimg.cn/direct/163839a1359941c0b011f4ac2db388a6.png
https://i-blog.csdnimg.cn/direct/d86a385044094cd3a4d4afe7b3a3cfaa.png
五、分布式调度框架对比

https://i-blog.csdnimg.cn/direct/ff26bed0d4414a998aff732d3f6c07f2.png
https://i-blog.csdnimg.cn/direct/e8aa6ccfad444c3188d74c633f29fe2e.png
ElasticJob相对xxl-job和power-job的对比:
https://i-blog.csdnimg.cn/direct/b71ee34fdc7a4dbb998b2a9e5ea156e0.png
备注:
推荐课程:
【分布式调度中心power-job中固定延迟任务调度问题】https://www.bilibili.com/video/BV1Qb421B7n8?vd_source=3c00905b4271effeeee3f3184045c49b

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 分布式调度框架学习条记