服務(wù)器consul與本地服務(wù)健康檢查不通問題解決
服務(wù)器consul與本地服務(wù)健康檢查不通問題解決
場景
將consul部署在云服務(wù)器上,本地服務(wù)注冊至consul,并調(diào)試。服務(wù)健康檢查不通過。
- 1
場景還原
-
consul組件安裝
官網(wǎng):https://www.consul.io/downloads
選擇系統(tǒng)版本下載安裝,示例:CentOs7環(huán)境sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consul- 1
- 2
- 3
驗(yàn)證安裝,正常情況下返回版本信息
consul -v- 1
啟動consul,示例(開發(fā)模式啟動)
consul agent -dev- 1
-
本地微服務(wù)啟動文件配置,并啟動服務(wù)
server: port: 8000 spring: application: name: business cloud: consul: host: 218.0.55.16 port: 8500 discovery: service-name: ${spring.application.name}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
-
啟動consul客戶端 觀察健康檢查結(jié)果
![在這里插入圖片描述]()
健康檢查失敗。
原因分析
相比使用eureka作為服務(wù)注冊中心時,服務(wù)注冊如下:

- 服務(wù)提供者啟動后,發(fā)送自己的信息到注冊中心進(jìn)行注冊
- 服務(wù)提供者每隔一段時間會想注冊中心發(fā)送心跳,證明自己還活著,沒有掛掉!(默認(rèn)90s)
- 服務(wù)調(diào)用者第一次調(diào)用服務(wù)提供者時,會向注冊中心拉取一份服務(wù)提供者的地址,并緩存在本地(下次用可以直接從本地?。?/li>
- 當(dāng)服務(wù)提供者不可用時,注冊中心會將這個服務(wù)提供者信息同步到訂閱過這個服務(wù)的服務(wù)消費(fèi)者。
而consul得注冊過程如下:

區(qū)別在于:eureka是服務(wù)提供者定時往注冊中心發(fā)送心跳,保證存活,而consul是注冊中心訪問服務(wù)提供者健康檢查url。
問題在于:服務(wù)器無法主動與內(nèi)網(wǎng)IP建立連接(連路由都做不到),也就是說除非你本地主機(jī)擁有公網(wǎng)IP, 否則無法直接ping通。
解決
如何使服務(wù)器能夠訪問本地得服務(wù)接口,就是問題的關(guān)鍵。這就需要進(jìn)行內(nèi)網(wǎng)穿透。
網(wǎng)上有很多工具,這里使用frp,具體介紹不再贅述,官網(wǎng)很詳盡,中文的
frp 官網(wǎng)地址如下:
https://gofrp.org/
- 1
下載地址:
https://github.com/fatedier/frp/releases
- 1
frp包含服務(wù)端和客戶端。在下載的文件中都有包含,此處因涉及兩個系統(tǒng)環(huán)境(本地window系統(tǒng),服務(wù)器centos7),所以分別下載window和linux版本。
linux版本下載完成后,上傳至服務(wù)器,并解壓。也可以直接在linux下使用:
wget 【包下載路徑】下載,示例:
linux下:
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_386.tar.gz
- 1
解壓:
tar -zxvf frp_0.38.0_linux_386.tar.gz
- 1
修改啟動服務(wù)端配置文件frps.ini, 默認(rèn)內(nèi)容如下:
[common]
bind_port = 7000
- 1
- 2
啟動frp服務(wù)端:
./frps -c ./frps.ini
- 1
下載window版本,并解壓至本地。修改客戶端啟動配置文件frpc.ini, 如何配置?完整配置說明在frpc_full.ini中都有說明。這里更改配置如下:
[common]
server_addr = 218.0.55.16 #ftp服務(wù)端主機(jī)IP
server_port = 7000 #ftp服務(wù)端主機(jī)端口
[range:tcp_port]
type = tcp
local_ip = 127.0.0.1 #客戶端主機(jī)IP
local_port = 7000-9000 #批量端口映射, 本地
remote_port = 7000-9000 #映射遠(yuǎn)程端口
use_encryption = false
use_compression = false
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
window下啟動frp程序,需要進(jìn)入window的cmd下才能執(zhí)行。cmd下,進(jìn)入解壓包路徑。執(zhí)行
frpc.exe -c ./frpc.ini
- 1
再次查看服務(wù)注冊情況,進(jìn)入consul客戶端管理頁面:

服務(wù)健康檢查正常。
1849
8179
8246
1130
201
620
1萬+
1334
2522
887
4746
948
716
521
819
900
332
4526
“相關(guān)推薦”對你有幫助么?
-
非常沒幫助 -
沒幫助 -
一般 -
有幫助 -
非常有幫助
熱門文章
分類專欄
最新評論
您愿意向朋友推薦“博客詳情頁”嗎?
-
強(qiáng)烈不推薦 -
不推薦 -
一般般 -
推薦 -
強(qiáng)烈推薦
打賞作者
向往鳥
你的鼓勵將是我創(chuàng)作的最大動力
余額支付 (余額:-- )
掃碼支付
點(diǎn)擊重新獲取

掃碼支付
抵扣說明:
1.余額是錢包充值的虛擬貨幣,按照1:1的比例進(jìn)行支付金額的抵扣。
2.余額無法直接購買下載,可以購買VIP、C幣套餐、付費(fèi)專欄及課程。
余額充值
舉報
- 內(nèi)容涉黃
- 政治相關(guān)
- 內(nèi)容抄襲
- 涉嫌廣告
- 內(nèi)容侵權(quán)
- 侮辱謾罵
- 樣式問題
- 其他
本文來自博客園,作者:{春光牛牛,yak},轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/yakniu/p/16953169.html
歡迎各位大佬們評論指正
QQ討論群:610129902






暫無認(rèn)證
器consul與本地服務(wù)健康檢查不通問題解決&spm=1001.2101.3001.5001&articleId=122634804&d=1&t=3&u=906e3ef20f1c4139bec7c24291de51b7)
器consul與本地服務(wù)健康檢查不通問題解決&spm=1001.2101.3001.4647&articleId=122634804&d=1&t=3&u=a2eabe188e2d48b088a2c648333a768d)
器consul與本地服務(wù)健康檢查不通問題解決&spm=1001.2101.3001.4834&articleId=122634804&d=1&t=3&u=f152f6f789be45cbba4114073d08870f)




浙公網(wǎng)安備 33010602011771號
s_f_t_n: “Operating system not found.”這種現(xiàn)象最多,看了你的帖子,完美解決:就是從高級那里選了一下就行了
別鬧,寫B(tài)UG呢: 確實(shí)有道理
釵鳳無落枝呀: 你說的好有道理。。。。。。。。。。
m0_51334022: 博主你好 可以分享一下鏡像嗎
小號來也: 但是一般你鏡像系統(tǒng)是有問題的,比如你檢測不到。
這個問題你算問到家了,我剛解決了,且是個普遍情況。
截圖就不截圖了,就是你下載的系統(tǒng)無論下載幾十個什么版本,虛擬機(jī)都檢測不到,也安裝不了,且還會提示什么虛擬機(jī)找不到操作系統(tǒng)。英文是:虛擬機(jī)Operating system not found.
好了直接說方法:打開網(wǎng)頁http://heigou.ysepan.com/login.aspx?d=heigou,
http://heigou.ysepan.com/
進(jìn)入里面-環(huán)境架設(shè)-虛擬機(jī)+注冊+XPios系統(tǒng)
這里面你打開,里面有虛擬機(jī)使用說明,且詳細(xì)告訴你為什么檢測不到IOS系統(tǒng)。
因?yàn)槟阆螺d的IOS系統(tǒng)都不是帶引導(dǎo)的。所以肯定檢測不到撒。
感謝我吧。
99%新手都是這個問題.