分布式定时任务
总结: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.****.net/qq924862077/article/details/82595948
-----------
xxl-job是可以集群部署的,用nginx进行负载均衡就可以了。数据库是分布式锁。
---
rpc的实现:
interface拿到interface的代理对象,数据形态参封装,丢给对面。socket的方式。
服务端接受数据,知道哪个接口,反射调用返回来。
------------------05---------------------------
启动的流程:
1.加载配置文件,启动任务扫描器
2.扫描执行器的注册地址,是否三次心跳失败,否则删除执行器的列表
3.初始化rpc服务
4.扫描任务线程,构建5s内需要触发的任务,根据路由地址进行rpc调用
5.客户端。