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

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

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

1. 前言

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

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

2. 問題解決

2.1. 下載源碼

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

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

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

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

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

修改訪問密鑰,這個(gè)我們?cè)诒徽{(diào)度方會(huì)使用到

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


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

2.3. 項(xiàng)目引入core組件

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

接下來我們重新打包c(diǎn)ore項(xiàng)目,并install到我們本地倉庫

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

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

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

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

3. 總結(jié)

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

以上就是XXL-Job端口額外占用問題的解決方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于XXL-Job端口額外占用的資料請(qǐng)關(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ì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • Mybatis-Spring源碼分析圖解

    Mybatis-Spring源碼分析圖解

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

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

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

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

    IDEA旗艦版可以直接創(chuàng)建Spring MVC項(xiàng)目,但創(chuàng)建后的項(xiàng)目并不是直接就可以運(yùn)行,還需要進(jìn)行一些配置。這篇文章主要介紹了Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項(xiàng)目踩坑記 ,需要的朋友可以參考下
    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ì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • MyBatis多表連接查詢的實(shí)例教程

    MyBatis多表連接查詢的實(shí)例教程

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

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

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

    解決SpringBoot掃描不到公共類的實(shí)體問題

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

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

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

最新評(píng)論