XXL-JOB在公司内容器化部署问题记录

XXL-JOB

xxl-job是外面一个web可视化管理的分布式任务管理平台,之前我们组的定时任务因为逻辑不复杂也不算太重要,所以最开始就是redis的setnx,后来任务key的过期时间不太好定值,后来换成zk的分布式锁,临时文件节点实现任务时效性更好一些,但是功能性还是差了一些也不太智能,所以调研了一番觉得xxl-job很轻量化功能性也丰富一些(执行策略,GLUE Web IDE、查看调度结果等等都很不错),所以就开始引入这个在组内落地使用。

项目结构

  • xxl-job-core: 核心逻辑的包
  • xxl-job-admin:调度中心,web控制台
  • xxl-job-executor:worker节点,执行任务,也是主要任务开发的地方
  • xxl-job-rpc:rpc的任务调度触发

官方内容我就不多介绍了,自己看官网wiki,下面介绍一下我在部署时候碰到的问题以及如何修改适配公司环境。

部署适配公司环境

整体来说部署起来特别容易,修改一下配置mysql地址加上部署的地址就搞定了,唯一存在的问题就是部署在公司容器化环境。

问题关键:容器内的端口和实际对外暴露的端口是映射关系的而且是动态变化的,比如内部端口是9999,实际暴露的可能这次是32100下次就是34512端口,正是因为如此,我们在部署xxl-job的时候要把core也引进来不要使用远程仓库的core,我们要修改一下core里面的配置信息。

xxl-job-executor主要配置项在XxlJobSpringExecutor,配置地址和端口进行注册mysql表,而XxlJobExecutor中initRpcProvider方法会构建一个rpc被调用地址以供触发任务,而我们需要做的就是把XxlJobSpringExecutor的配置的端口和initRpcProvider设置的端口设置成容器内外对应的端口,比如XxlJobSpringExecutor端口为9999,那么就把initRpcProvider设置端口为${PORT_TCP_9999}端口(代表9999的对应端口),这样注册的地址就可以正常提供服务了。

在部署容器的时候注意一下这个问题,做一些适配修改即可~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值