欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

XXL-Job端口額外占用問題的解決方法小結(jié)

 更新時間:2024年05月14日 09:41:15   作者:牽著貓散步的鼠鼠  
最近博主在Spring整合XXL-JOB到項目時發(fā)現(xiàn)了個問題,注冊執(zhí)行器需要額外占用端口,也就是我們每啟動一個程序,除了程序本身的API端口外,還需要額外開放一個執(zhí)行器端口,所以本文給大家分享了XXL-Job端口額外占用問題的解決方法小結(jié),需要的朋友可以參考下

1. 前言

最近博主在Spring整合XXL-JOB到項目時發(fā)現(xiàn)了個問題,注冊執(zhí)行器需要額外占用端口,也就是我們每啟動一個程序,除了程序本身的API端口外,還需要額外開放一個執(zhí)行器端口。

這樣看起來沒啥,但是如果放到Docker容器中,用戶不顯示指定執(zhí)行器端口的話,默認(rèn)占用9999端口,假如我想啟動兩個實例,那么必定會發(fā)生端口沖突,也就是我必須為每個實例指定執(zhí)行器端口,假如我有10個實例,那也太麻煩了的吧,然后去xxl-job github查看,發(fā)現(xiàn)issue都已經(jīng)1.2k個了,這個問題也老早就有人提了Issue,可是作者不太理人不管事哈哈(可能生活太忙維護(hù)不過來啦)

2. 問題解決

2.1. 下載源碼

我這里找到一位老哥修改的克隆版本,移除了netty組件,使執(zhí)行器端口與Springboot的web端口一致

首先下載修改后的源碼:kdyzm/xxl-job: 本項目是xxl-job 項目的克隆項目,目的在于優(yōu)化和修復(fù)原項目中的問題 (github.com)

和官方源碼一樣,分為三部分代碼,只是修改了部分源碼

2.2. 啟動admin服務(wù)器

我們接下來修改xxl-job-admin的配置文件application.properties,修改admin服務(wù)端端口

修改訪問密鑰,這個我們在被調(diào)度方會使用到

 修改數(shù)據(jù)源(數(shù)據(jù)庫還是沒變哈,可參考我以前部署xxl-job的文章)


配置完以上信息就可以啟動admin服務(wù)端啦

2.3. 項目引入core組件

 修改core項目的pom文件 groupId配置,方便我們后續(xù)在項目中引用

接下來我們重新打包core項目,并install到我們本地倉庫

等待core項目install完成后,我們就可以在自己的項目中使用修改后的xxl-job core組件了 

在自己項目application.yml中添加如下配置,端口設(shè)置為springboot服務(wù)端口

 
xxl:
  job:
    # 驗證信息 官網(wǎng)Bug https://github.com/xuxueli/xxl-job/issues/1951
    accessToken: 123123123
    # 注冊地址
    admin:
      addresses: http://127.0.0.1:9090/xxl-job-admin
    # 注冊執(zhí)行器
    executor:
      #  執(zhí)行器注冊 [選填]:優(yōu)先使用該配置作為注冊地址,為空時使用內(nèi)嵌服務(wù) ”IP:PORT“ 作為注冊地址。從而更靈活的支持容器類型執(zhí)行器動態(tài)IP和動態(tài)映射端口問題。
      address:
      appname: lucky-draw-handler
      # 執(zhí)行器IP 配置為本機IP [選填]:默認(rèn)為空表示自動獲取IP,多網(wǎng)卡時可手動設(shè)置指定IP,該IP不會綁定Host僅作為通訊實用;地址信息用于 "執(zhí)行器注冊" 和 "調(diào)度中心請求并觸發(fā)任務(wù)";
      ip:
      # 執(zhí)行器端口號 [選填]:小于等于0則自動獲取;默認(rèn)端口為9999,單機部署多個執(zhí)行器時,注意要配置不同執(zhí)行器端口;
      port: ${server.port}
      # 執(zhí)行器運行日志文件存儲磁盤路徑 [選填] :需要對該路徑擁有讀寫權(quán)限;為空則使用默認(rèn)路徑;
      logpath: ./logs
      # 執(zhí)行器日志文件保存天數(shù) [選填] : 過期日志自動清理, 限制值大于等于3時生效; 否則, 如-1, 關(guān)閉自動清理功能;
      logretentiondays: 30

新增配置類

@Configuration
public class XxlJobConfig {
 
    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;
 
    @Value("${xxl.job.accessToken}")
    private String accessToken;
 
    @Value("${xxl.job.executor.appname}")
    private String appname;
 
    @Value("${xxl.job.executor.address}")
    private String address;
 
    @Value("${xxl.job.executor.ip}")
    private String ip;
 
    @Value("${xxl.job.executor.port}")
    private int port;
 
    @Value("${xxl.job.executor.logpath}")
    private String logPath;
 
    @Value("${xxl.job.executor.logretentiondays}")
    private int logRetentionDays;
 
    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
 
        return xxlJobSpringExecutor;
    }
 
}

啟動項目即可發(fā)現(xiàn)自己執(zhí)行器成功注冊到了admin服務(wù)端

3. 總結(jié)

到此就實現(xiàn)了xxl-job走spring的接口,不額外占用端口,好處顯而易見,但也有一點壞處:導(dǎo)致定時任務(wù)調(diào)度共用了處理web請求的線程池。不過個人認(rèn)為還是利大于弊的,具體還是得看自己的選擇吧!

以上就是XXL-Job端口額外占用問題的解決方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于XXL-Job端口額外占用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 2024.1.2 安裝JDK和Eclipse并配置java編譯環(huán)境的過程

    2024.1.2 安裝JDK和Eclipse并配置java編譯環(huán)境的過程

    這篇文章主要介紹了2024.1.2 安裝JDK和Eclipse并配置java編譯環(huán)境,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Mybatis-Spring源碼分析圖解

    Mybatis-Spring源碼分析圖解

    這篇文章主要介紹了Mybatis-Spring源碼分析,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Java發(fā)送post方法詳解

    Java發(fā)送post方法詳解

    這篇文章主要介紹了Java發(fā)送post方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項目踩過的坑

    Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項目踩過的坑

    IDEA旗艦版可以直接創(chuàng)建Spring MVC項目,但創(chuàng)建后的項目并不是直接就可以運行,還需要進(jìn)行一些配置。這篇文章主要介紹了Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項目踩坑記 ,需要的朋友可以參考下
    2020-03-03
  • Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù)

    Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù)

    這篇文章主要介紹了Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù),幫助大家更好的理解和學(xué)習(xí)使用spring框架,感興趣的朋友可以了解下
    2021-03-03
  • Spring boot配置文件加解密詳解

    Spring boot配置文件加解密詳解

    這篇文章主要給大家介紹了關(guān)于Spring boot配置文件加解密的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • MyBatis多表連接查詢的實例教程

    MyBatis多表連接查詢的實例教程

    這篇文章主要給大家介紹了關(guān)于MyBatis多表連接查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • springboot中shiro使用自定義注解屏蔽接口鑒權(quán)實現(xiàn)

    springboot中shiro使用自定義注解屏蔽接口鑒權(quán)實現(xiàn)

    本文主要介紹了springboot中shiro使用自定義注解屏蔽接口鑒權(quán)實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 解決SpringBoot掃描不到公共類的實體問題

    解決SpringBoot掃描不到公共類的實體問題

    這篇文章主要介紹了解決SpringBoot掃描不到公共類的實體問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JVM:早期(編譯期)優(yōu)化的深入理解

    JVM:早期(編譯期)優(yōu)化的深入理解

    今天小編就為大家分享一篇關(guān)于JVM:早期(編譯期)優(yōu)化的深入理解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論