日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Consul入门05 - 健康检测

發(fā)布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Consul入门05 - 健康检测 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們已經(jīng)看到了運(yùn)行Consul,增加節(jié)點(diǎn)和服務(wù),以及查詢這些賤點(diǎn)和服務(wù)是多么地簡單。在這篇教程中,我們將繼續(xù)增加對節(jié)點(diǎn)和服務(wù)健康監(jiān)測的教程。健康監(jiān)測對服務(wù)發(fā)現(xiàn)是一個關(guān)鍵的組件,它避免使用不健康的服務(wù)。

本篇的步驟基于前一篇?Consul集群,這里你應(yīng)該運(yùn)行有兩個節(jié)點(diǎn)的集群。

定義檢測

類似于服務(wù),可以通過一個?檢測定義或者通過調(diào)用HTTP API來注冊一個檢測。

我們將使用檢測定義的方法,因?yàn)榫拖穹?wù)一樣,使用定義是一個最為常用的方法來設(shè)置檢測。

在第二個節(jié)點(diǎn)的Consul配置目錄中創(chuàng)建兩個定義文件:

vagrant@n2:~$ echo '{"check": {"name": "ping","script": "ping -c1 google.com >/dev/null", "interval": "30s"}}' \>/etc/consul.d/ping.jsonvagrant@n2:~$ echo '{"service": {"name": "web", "tags": ["rails"], "port": 80,"check": {"script": "curl localhost >/dev/null 2>&1", "interval": "10s"}}}' \>/etc/consul.d/web.json

第一個定義增加了一個主機(jī)級別的檢測,名為"ping"。該檢測每30秒間隔運(yùn)行一次,調(diào)用命令?ping -c1 google.com。在一個基于腳本的健康檢測中,該檢測使用啟動Consul進(jìn)程的用戶來啟動該檢測。如果檢測命令返回一個非0的返回碼,那么該節(jié)點(diǎn)將被標(biāo)記為不健康。這就是任何基于?腳本?的健康檢測的契約。

第二個命令修改名為?web?的服務(wù),增加了一個檢測,該檢測每10秒用curl發(fā)送一個請求來驗(yàn)證該web服務(wù)是否可用。就像基于主機(jī)的健康檢測,如果腳本返回一個非0的返回碼,那該服務(wù)將被標(biāo)記為不健康。

現(xiàn)在重啟第二個代理或者向它發(fā)送一個?SIGHUP?信號。你會看到下列日志信息:

==> Starting Consul agent... ...[INFO] agent: Synced service 'web'[INFO] agent: Synced check 'service:web'[INFO] agent: Synced check 'ping'[WARN] Check 'service:web' is now critical

前面的幾行指出該代理已經(jīng)同步了新的定義。后面的幾行指出了被檢測的?web?服務(wù)被標(biāo)記為危險。這是因?yàn)槲覀冞€沒有實(shí)際運(yùn)行一個web服務(wù)器,所以這個curl測試標(biāo)記為失敗了。

檢測健康狀態(tài)

現(xiàn)在我們已經(jīng)增加了一些檢測,我們可以使用HTTP API來審查它們。首先,我們可以使用命令尋找任何失敗的檢測(注意,這個命了可以在任何節(jié)點(diǎn)上運(yùn)行):

vagrant@n1:~$ curl http://localhost:8500/v1/health/state/critical [{"Node":"agent-two","CheckID":"service:web","Name":"Service 'web' check","Status":"critical","Notes":"","ServiceID":"web","ServiceName":"web"}]

我們可以看到現(xiàn)在只有一個檢測,那是我們的?web?服務(wù)的檢測,它被設(shè)置為危險狀態(tài)。

另外,我們可以嘗試使用DNS查詢web服務(wù)。Consul不會返回任何結(jié)果因?yàn)樵摲?wù)是不健康的:

dig @127.0.0.1 -p 8600 web.service.consul ...;; QUESTION SECTION: ;web.service.consul. IN A

下一步

在本篇教程中,你學(xué)會了增加健康檢測是非常容易。通過更新配置文件并且發(fā)送一個?SIGHUP?信號給代理來更新檢測定義。還可以選擇使用HTTP API來動態(tài)地增加,刪除,以及修改檢測。該API也可以用于一個"dead man's switch",一個TTL-based check。TTL檢測可以被用于一個應(yīng)用程序和Consul是緊密集成的,使得業(yè)務(wù)邏輯評估是基于健康檢測的一部分。

接下來,我們將瀏覽[Consul的鍵/值存儲]()。

總結(jié)

以上是生活随笔為你收集整理的Consul入门05 - 健康检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。