consul注銷微服務(wù)實(shí)例

當(dāng)我們的微服務(wù)優(yōu)雅停機(jī)時(shí),consul客戶端會(huì)自動(dòng)注銷當(dāng)前的微服務(wù)實(shí)例:

      at org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry.deregister(ConsulServiceRegistry.java:86)
      at org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry.deregister(ConsulServiceRegistry.java:41)
      at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.deregister(AbstractAutoServiceRegistration.java:228)
      at org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration.deregister(ConsulAutoServiceRegistration.java:100)
      at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.stop(AbstractAutoServiceRegistration.java:243)
      at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.destroy(AbstractAutoServiceRegistration.java:180)

Spring提供2種方式:實(shí)現(xiàn)DisposableBean接口或者使用@PreDestroy注解,用于應(yīng)用程序退出時(shí)執(zhí)行某些操作,比如釋放資源等.

然而實(shí)際使用過程中,往往不是優(yōu)雅停機(jī)的,這就導(dǎo)致了consul服務(wù)器上存在了一些不可用的微服務(wù)實(shí)例.

這里使用consul agent暴露的端點(diǎn)來手動(dòng)注銷這些不可用的微服務(wù)實(shí)例.

  1. List Checks端點(diǎn),返回當(dāng)前agent下注冊(cè)的所有微服務(wù)實(shí)例以及相關(guān)檢測信息
  2. Deregister Service端點(diǎn):注銷當(dāng)前agent下的指定微服務(wù)實(shí)例
    更多端點(diǎn)詳見Agent HTTP API

部分代碼:

@GetMapping("/deregister")
    public String deregister() {
        //由于自動(dòng)注入的ConsulClient為當(dāng)前微服務(wù)連接的consul agent,而注銷的時(shí)候只能在微服務(wù)實(shí)例注冊(cè)的agent下進(jìn)行注銷
        //所以這里加了一個(gè)自定義的配置項(xiàng)配置consul集群地址 ip1:port1,ip2,ip3:port3.... 端口不配置默認(rèn)8500
        //讀取并解析配置文件中配置的consul集群地址
        Map<String, String> consulAddMap = this.getConsulAddress();
        consulAddMap.forEach((host,port) -> {
            //循環(huán)創(chuàng)建ConsulClient實(shí)例
            ConsulClient client = new ConsulClient(host, Integer.valueOf(port));
            //getAgentChecks 獲取到當(dāng)前agent下的所有注冊(cè)的微服務(wù)實(shí)例
            client.getAgentChecks().getValue().values().forEach(check -> {
                //注銷狀態(tài)不為PASSING的微服務(wù)實(shí)例
                if (!check.getStatus().equals(Check.CheckStatus.PASSING)) {
                    client.agentServiceDeregister(check.getServiceId());
                }
            });
        });
        return "OK";
    }

代碼詳見github中的工程sc-learn-service-deregister

當(dāng)然也可以手動(dòng)注銷某個(gè)微服務(wù)實(shí)例,比如:
PUT http://consulAgentIp:8500/v1/agent/service/deregister/微服務(wù)實(shí)例ID


參考文檔
【程序猿DD】Consul注銷實(shí)例時(shí)候的問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末又碌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子璧尸,更是在濱河造成了極大的恐慌社搅,老刑警劉巖鸦难,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件标锄,死亡現(xiàn)場離奇詭異,居然都是意外死亡譬涡,警方通過查閱死者的電腦和手機(jī)闪幽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涡匀,“玉大人盯腌,你說我怎么就攤上這事≡纱瘢” “怎么了腕够?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舌劳。 經(jīng)常有香客問我帚湘,道長,這世上最難降的妖魔是什么甚淡? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任大诸,我火速辦了婚禮,結(jié)果婚禮上贯卦,老公的妹妹穿的比我還像新娘底挫。我一直安慰自己,他們只是感情好脸侥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盈厘,像睡著了一般睁枕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天外遇,我揣著相機(jī)與錄音注簿,去河邊找鬼。 笑死跳仿,一個(gè)胖子當(dāng)著我的面吹牛诡渴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菲语,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼妄辩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了山上?” 一聲冷哼從身側(cè)響起眼耀,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎佩憾,沒想到半個(gè)月后哮伟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妄帘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年楞黄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抡驼。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鬼廓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出婶恼,到底是詐尸還是另有隱情桑阶,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布勾邦,位于F島的核電站蚣录,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏眷篇。R本人自食惡果不足惜萎河,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕉饼。 院中可真熱鬧虐杯,春花似錦、人聲如沸昧港。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽创肥。三九已至达舒,卻和暖如春值朋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巩搏。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工昨登, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贯底。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓丰辣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親禽捆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子笙什,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容