通过上面ExecutorRegistryThread # start方法核心代码,可以看到,注册是通过adminBiz.registry代码实现的,调用链路总结如下:最终还是通过 HTTP 协议的 POST 请求,注册数据格式如下:看到这里,我们回到文章开头问题部分。
针对业务的不断发展,传统的调度任务管理,比如:Timer、Quartz将会出现一定的瓶颈,比如现在的工程,通过微服务来搭建,一个主服务管理调度任务,所有的服务在一台服务器里管理,执行任务通过不同微服务来调用,这样造成调度中心非常重,慢慢的服务管理及服务调用急需拆分出去。
水平拆分,是同一个后端多环境部署,他们都处理相同的内容,使用反向代理来均衡负载,这种也叫集群;注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行,每30秒清理一次注册表中的无效机器。