李成笔记网

专注域名、站长SEO知识分享与实战技巧

运行 xxl-job 报错 xxl-rpc provider port is used 解决

在使用 XXL-Job 时,有时我们会遇到启动时的端口冲突问题,例如报错 xxl-rpc provider port is used。本文将为大家介绍该错误的原因及相应的解决方案。
下面是问题描述和问题解决记录。

问题描述

xxl-job 的执行器和任务配置都是正确的,但是一启动 java 项目就报端口 18437 已经被使用。

xxl-rpc provider port is used

这个问题,通常情况下是 XXL-Job 执行器在启动时尝试绑定的 RPC 端口(默认是 18437)已被占用,导致启动失败。此问题可能是由于其他应用或实例占用了相同的端口,也可能是因为同一个执行器被多次启动。具体原因可能是 idea 的原来一个窗口同一个项目(不同的分支)启动过,虽热项目停止了,也把 idea 窗口关掉了,但是端口还是被占用了。

XXL-Job 执行器使用 RPC 通信来接受调度中心的任务调度请求,默认情况下会在 18437 端口启动一个 RPC 服务。如果该端口被其他进程占用,执行器就无法正常启动,抛出上述错误。

常见的导致端口冲突的原因包括:
1、端口被其他应用占用:系统中可能已经有其他程序使用了 18437 端口。
2、重复启动 XXL-Job 执行器:如果同一个项目启动了多个 XXL-Job 执行器实例,它们可能会尝试绑定相同的端口。

问题解决

方案一:干掉端口占用的进程

如果只需要一个执行器启动,那么既然端口被占用了那就直接找到端口被占用的程序,然后干掉即可。

C:\Users\wankun>netstat -ano|findstr "18437"
  TCP    0.0.0.0:18437          0.0.0.0:0              LISTENING       45736
  TCP    [::]:18437             [::]:0                 LISTENING       45736

C:\Users\wankun>tasklist|findstr "45736"
java.exe                     45736 Console                    2    709,904 K
C:\Users\wankun>

把 java.exe 干掉,然后再启动项目就好了。

如果需要同时启动多个执行器,可以为每个执行器配置不同的 RPC 端口。

方案二:修改端口

如果不希望关闭占用端口的进程,可以修改 XXL-Job 执行器的配置,将其 RPC 端口改为其他未占用的端口,或者让系统自动分配端口。

程序配置文件添加或修改配置,可以设置端口为 0 表示由系统自动分配可用端口,这可以避免手动指定端口的麻烦。
如 application.properties 为
xxl.job.executor.port=0
application.yml 为:

xxl:
  job:
    executor:
      port: 0

总结

XXL-Job 执行器启动时的 xxl-rpc provider port is used 错误通常是由于端口 18437 被占用引起的。通过检查端口占用情况,或者修改配置文件中的 RPC 端口,或确保没有重复启动执行器实例,可以快速解决此问题。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言