Docker部署的xxl-job执行本地任务时无法连接执行器的解决方案

一、问题简述

我是用docker部署的xxl-job,然后用在了宿主机的本地项目上。

执行器我选的是自动注册,所以执行器的地址也就和本地项目上的yaml配置文件有关:

xxl-job:
  access-token: Yilena
  admin:
    addresses: http://192.168.xx.xx:9001/xxl-job-admin
  executor:
    application-name: test-executor
    log-retention-days: 30
    port: 19999

但是手动执行任务时一直失败:

一番查阅后找到了具体原因:

Docker部署xxl-job时会给其创建一个虚拟网卡,该IP属于内部网段,是无法被外部服务所访问的。而执行器自动注册的话默认是到这个网段里面去寻找端口的,因跨网段不可达,所以返回连接超时报错。

二、解决方案

(一)手动更改IP

既然无法访问虚拟网卡,那我们直接手动配置为宿主机的IP就好了,宿主机的网段是公网可路由地址,可以被外部服务所访问到,可以在yaml文件配置宿主机IP或者直接在xxl-job的后台网页上手动配置执行器的IP。

xxl-job:
  access-token: Yilena
  admin:
    addresses: http://192.168.xx.xx:9001/xxl-job-admin
  executor:
    ip: 192.168.xx.xx(宿主机IP)
    application-name: test-executor
    log-retention-days: 30
    port: 19999

(二)更改Docker网段

在启动Dokcer容器时指定网络命名空间:--network=host

让该容器共享宿主机的网段即可。

注意宿主机的ip如果设置了自动获取的话,那隔一段时间就会发生变化,请定期更改执行器的ip!


如果还有其他问题,请在评论区告诉我!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值