天天看点

分布式定时任务

总结:https://www.cnblogs.com/rainswinds/p/10930495.html

视频网址:https://www.bilibili.com/video/BV1WE411f7St?p=3

博客:https://www.cnblogs.com/ysocean/p/10541151.html#_label0

启动配置文件报错:https://www.cnblogs.com/hehaoedu/p/10893557.html

分片广播:https://www.cnblogs.com/toov5/p/9975833.html

代码:

分布式定时任务

面试题目:

分布式定时任务
分布式定时任务

启动admin:

启动客户端:

启动的时候将执行器注册到调度中心:

分布式定时任务
分布式定时任务

每30s则1调用2,重新注册,没有再次调用就认为挂掉,就删除了。

解决的问题:

分布式定时任务

我们测试下,起两个实例。

每个实例是一个执行器:

分布式定时任务

健康检查是30s。

------

这个软件是怎么使用的呢?

第一步:执行器,就是有很多任务的集合。

分布式定时任务

第二步:任务,根据这个去执行任任务的。

分布式定时任务

这个名字是什么呢?根据这个名字去找任务的。

分布式定时任务

分片广播:

我们可以这样用:

分布式定时任务

执行一次。

---------------------------------04----------------------------------------

集群如何任务分发只分发一次,用数据库控制的。

配置admin集群的话客户端直接连nginx就可以了。

----

源码探索:

rpc的底层是netty实现的。

第一步:

分布式定时任务

第二步:初始化rpc服务

分布式定时任务

第三步:启动任务管理器

分布式定时任务
分布式定时任务

客户端:

分布式定时任务
分布式定时任务
分布式定时任务

绿色的是线程。

----------

为什么用数据库不用redis?后台对性能的追求不是特别高的。

xxl-job原理:https://blog.csdn.net/qq924862077/article/details/82595948

-----------

xxl-job是可以集群部署的,用nginx进行负载均衡就可以了。数据库是分布式锁。

---

rpc的实现:

interface拿到interface的代理对象,数据形态参封装,丢给对面。socket的方式。

服务端接受数据,知道哪个接口,反射调用返回来。

------------------05---------------------------

启动的流程:

1.加载配置文件,启动任务扫描器

2.扫描执行器的注册地址,是否三次心跳失败,否则删除执行器的列表

3.初始化rpc服务

4.扫描任务线程,构建5s内需要触发的任务,根据路由地址进行rpc调用

5.客户端。

继续阅读