xxl-job 简单理解

框架理解:
admin定期的调用微服务接口,各种调用重试都是在admin方
锁是通过数据库实现的

服务通信通过netty,自己开发了一套通信框架,进行服务的调度。
通过核心包进行服务注册到数据库中,然后添加心跳检测对服务组件进行新增移除。

通信的好处:admin知道哪个服务器繁忙,哪个服务器宕机,哪个服务器是正在执行任务的,可以实时的进行策略切换。当然最重要的是服务的注册和调用。

服务暴露注册流程 XxlJobExecutor
springboot流程操作,添加配置文件,新增通信端口,添加依赖core jar包

配置文件
server.port=8081
logging.config=classpath:logback.xml
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
xxl.job.executor.appname=xxl-job-executor-sample
xxl.job.executor.ip=
xxl.job.executor.port=9999
xxl.job.accessToken=
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
xxl.job.executor.logretentiondays=30

注解扫描注调用 core AdminBizClient.registry 接口,注册到数据库中

有个执行的队列,串行执行,如何丢弃,这个东西逻辑上应该在admin层,但是admin控制的是执行重试策略,然后服务端维护的是执行队列,执行不过来。----这个地方需要研究哦。

admin端 XxlJobScheduler
前期通过quartz框架进行服务定时调用,后期通过JobScheduleHelper,JobTriggerPoolHelper线程池,定期的检测下一个任务是谁。schedule 发出任务放入tigger中,trigger 执行任务----这个地方需要研究哦。
调用看core依赖的jar包即可,封装了一套netty的通信服务。

你可能感兴趣的:(xxl-job 简单理解)