亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)

 更新時(shí)間:2025年01月26日 09:08:39   作者:Roc.Chang  
這篇文章主要介紹了K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

K8S(Docker)優(yōu)雅的關(guān)閉SpringBoot微服務(wù)

最近在折騰 K8S,當(dāng)刪掉一個(gè) Pod 之后(一個(gè) Pod 上部署了一個(gè)微服務(wù)實(shí)例),Eureka Server 竟然沒有將該服務(wù)實(shí)例標(biāo)記成 DOWN,正常來說,當(dāng)一個(gè) Eureka Client 關(guān)閉的時(shí)候會(huì)發(fā)送一個(gè)請(qǐng)求給 Eureka Server,Eureka Server 會(huì)馬上的將服務(wù)標(biāo)記為 DOWN 狀態(tài),具體可以看本地開發(fā)日志。

o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
com.netflix.discovery.DiscoveryClient    : Shutting down DiscoveryClient ...
com.netflix.discovery.DiscoveryClient    : Unregistering ...
com.netflix.discovery.DiscoveryClient    : DiscoveryClient_ZUUL-SERVICE/192.168.8.14:zuul-service:5555 - deregister  status: 200
com.netflix.discovery.DiscoveryClient    : Completed shut down of DiscoveryClient

其實(shí)解決起來并沒有很高大上,關(guān)鍵問題是就是 Docker 語法的區(qū)別,因?yàn)?Docker 容器在 stop 的時(shí)候,只有 pid 為 1 的進(jìn)程才能接收到終止信號(hào),而 DockerCMD 命令與 ENTRYPOINT 命令都有兩種類型的執(zhí)行方式:

  • 一種是 exec 也就是帶中括號(hào)的
  • 另一種是 shell 方式,也就是不帶中括號(hào),在使用的過程中只要使用 exec 的就能保證 Java 命令是在 pid1 的進(jìn)程上執(zhí)行。

具體解決

  • CMD 方式:
CMD ["/bin/bash", "-c", "java -jar /webapp/zuul-admin.jar"]

# 如果需要添加參數(shù),可以這樣做
ENV COMMON="-Xms128m -Xmx128m"
CMD ["/bin/bash", "-c", "java $COMMOND -jar /webapp/zuul-admin.jar"]

# 反例,錯(cuò)誤使用,如果是這樣的的話,那么需要在 docker run 的時(shí)候通過 -e "COMMON=xxx" 進(jìn)行傳參
CMD ["/bin/bash", "-c", "java", "$COMMOND", "-jar /webapp/zuul-admin.jar"]

# shell 模式,這種模式啟動(dòng)的 pid 不為 1
CMD java -jar /webapp/zuul-admin.jar

# shell 模式帶參數(shù),這種模式啟動(dòng)的 pid 不為 1
ENV COMMON="-Xms128m -Xmx128m"
CMD java -jar $COMMON /webapp/zuul-admin.jar
  • 除了使用 CMD 命令外,還可以使用 ENTRYPOINT 命令,使用方法一樣:
ENTRYPOINT ["/bin/bash", "-c", "java -jar /webapp/zuul-admin.jar"]

# 如果需要添加參數(shù),可以這樣做
ENV COMMON="-Xms128m -Xmx128m"
ENTRYPOINT ["/bin/bash", "-c", "java $COMMOND -jar /webapp/zuul-admin.jar"]

# 反例,錯(cuò)誤使用,如果是這樣的的話,那么需要在 docker run 的時(shí)候通過 -e "COMMON=xxx" 進(jìn)行傳參
ENTRYPOINT ["/bin/bash", "-c", "java", "$COMMOND", "-jar /webapp/zuul-admin.jar"]

# shell 模式,這種模式啟動(dòng)的 pid 不為 1
ENTRYPOINT java -jar /webapp/zuul-admin.jar

# shell 模式帶參數(shù),這種模式啟動(dòng)的 pid 不為 1
ENV COMMON="-Xms128m -Xmx128m"
ENTRYPOINT java -jar $COMMON /webapp/zuul-admin.jar

后續(xù)有問題,還是需要多看文檔:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用代碼模擬高并發(fā)操作的示例

    Java使用代碼模擬高并發(fā)操作的示例

    本篇文章主要介紹了Java使用代碼模擬高并發(fā)操作的示例,Java通過代碼模擬高并發(fā)可以以最快的方式發(fā)現(xiàn)我們系統(tǒng)中潛在的線程安全性問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 基于SpringBoot實(shí)現(xiàn)IP黑白名單的詳細(xì)步驟

    基于SpringBoot實(shí)現(xiàn)IP黑白名單的詳細(xì)步驟

    IP黑白名單是網(wǎng)絡(luò)安全管理中常見的策略工具,用于控制網(wǎng)絡(luò)訪問權(quán)限,根據(jù)業(yè)務(wù)場(chǎng)景的不同,其應(yīng)用范圍廣泛,比如比較容易被盜刷的短信接口、文件接口,都需要添加IP黑白名單加以限制,所以本文給大家介紹了基于SpringBoot實(shí)現(xiàn)IP黑白名單的詳細(xì)步驟,需要的朋友可以參考下
    2024-01-01
  • Java多線程中線程池常見7個(gè)參數(shù)的詳解以及執(zhí)行流程

    Java多線程中線程池常見7個(gè)參數(shù)的詳解以及執(zhí)行流程

    本文主要介紹了Java多線程中線程池常見7個(gè)參數(shù)的詳解以及執(zhí)行流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • RestTemplate get請(qǐng)求攜帶headers自動(dòng)拼接參數(shù)方式

    RestTemplate get請(qǐng)求攜帶headers自動(dòng)拼接參數(shù)方式

    這篇文章主要介紹了RestTemplate get請(qǐng)求攜帶headers自動(dòng)拼接參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺談Java編程中的單例設(shè)計(jì)模式

    淺談Java編程中的單例設(shè)計(jì)模式

    這篇文章主要介紹了Java編程中的單例設(shè)計(jì)模式,在許多語言的編程過程當(dāng)中單例模式都被開發(fā)者們廣泛采用,需要的朋友可以參考下
    2015-07-07
  • java 導(dǎo)入Excel思路及代碼示例

    java 導(dǎo)入Excel思路及代碼示例

    這篇文章主要介紹了java 導(dǎo)入Excel思路及代碼示例,簡要分析了設(shè)計(jì)思路,然后分享了實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實(shí)現(xiàn)定時(shí)任務(wù)

    spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實(shí)現(xiàn)定時(shí)任務(wù)

    這篇文章主要介紹了spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實(shí)現(xiàn)定時(shí)任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Spring Cloud Admin健康檢查 郵件、釘釘群通知的實(shí)現(xiàn)

    Spring Cloud Admin健康檢查 郵件、釘釘群通知的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Cloud Admin健康檢查 郵件、釘釘群通知的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 關(guān)于JavaEE匿名內(nèi)部類和Lambda表達(dá)式的注意事項(xiàng)

    關(guān)于JavaEE匿名內(nèi)部類和Lambda表達(dá)式的注意事項(xiàng)

    這篇文章主要介紹了關(guān)于JavaEE匿名內(nèi)部類和Lambda表達(dá)式的注意事項(xiàng),匿名內(nèi)部類顧名思義是沒有修飾符甚至沒有名稱的內(nèi)部類,使用匿名內(nèi)部類需要注意哪些地方,我們一起來看看吧
    2023-03-03
  • 淺談Strut2如何對(duì)請(qǐng)求參數(shù)的封裝

    淺談Strut2如何對(duì)請(qǐng)求參數(shù)的封裝

    這篇文章主要介紹了淺談Strut2如何對(duì)請(qǐng)求參數(shù)的封裝,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12

最新評(píng)論