问题描述

FAT环境机器无法自动注册到 任务调度中心。

猜想

xxl-Job 配置信息是保存在apollo[携程]。
首先猜想是xxl-Job配置问题,比如 xxl.job.executor.appname 或者 xxl.job.admin.addresses
经过多次比对后发现appnameaddresses配置正确。
猜想失败。。

蛛丝马迹

项目启动时,启动日志异常,如下:

Exception in thread "Thread-14" java.net.BindException: Address already in use: bind
  at sun.nio.ch.Net.bind0(Native Method)
  at sun.nio.ch.Net.bind(Net.java:438)
  at sun.nio.ch.Net.bind(Net.java:430)
  at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:225)
  at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
  at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562)
  at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
  at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
  at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
  at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
  at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260)
  at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
  at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
  at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
  at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
  at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
  at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
  at java.lang.Thread.run(Thread.java:748)

并且发现xxl-Job任务调度中心,其他执行器已经存在相同的 ip+port。

确认问题

根据以上蛛丝马迹确定:不同的服务共用了相同的 xxl-Job 执行器ip(xxl.job.executor.ip)与port(xxl.job.executor.port),导致的 Address already in use

解决

修改 xxl.job.executor.port

思考

很简单的一个问题,但由于初期猜想没考虑端口冲突,无视JVM启动Exception。导致我一直在apollo上面找问题,浪费一些时间。

浅记,下次注意。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐