什么是分布式调度引擎?
大家在公司做项目的时候都应该有过这种task类型的工程吧?
下面我们通过一个简单的场景来了解下分布式调度引擎的!我们来看课件图一。
简单介绍下这个场景啊。场景的需求是这样的。每天晚上凌晨12点到凌晨3点备份a表的数据都b表去!
解决当前场景的方案有很多啊!我们先来看一个最简单,最原始的方案。叫
单线程模式,就是写一个while true。不停的去比配两张表的数据,没有数据就让线程sleep一会,一select到数据就开始insert备份,这种模式只有一个线程在运行整个任务!并且只有一台主机!处理的比较慢。效率很低!
为了更高效的处理task任务。于是推出了第二种方案,
就是下面的多线程简单模式!
这种模式下有三个线程同时在跑这个任务。thread1线程不停的在数据库里查找要更新的数据。找到了就将数据放入队列queueA中。这个queueA是一个队列。thread2和thread3不停的在队列中取数据。将数据insert要备份的表中去!这是典型的队列的生产消费模式!3个线程同时运转这样就大大的加快了我们任务处理的效率了。这种模式下是多线程。单主机去处理。也是有缺陷的!比如说服务器A挂了!整个任务处理就停止了。存在着单点风险!还有一点就是。比如说A服务器创建线程的最高上限是3个!打个比方啊。如果我们需要6个线程来同时处理当前任务!那这个多线程简单模式就解决不了我们的问题了,于是就有了第三种方案。看下面的图