伺服器consul與本地服務健康檢查不通問題解決
--
--粉絲 --關注 --獲贊 會員中心 足跡 動態 投票 訊息 評論和@ 新增粉絲 贊和收藏 私信 系統通知 訊息設定 創作中心 釋出伺服器consul與本地服務健康檢查不通問題解決
嚮往鳥 於 2022-01-22 14:00:20 釋出 1282 收藏 文章標籤: 伺服器 consul spring cloud 版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。 本文連結:https://blog.csdn.net/qq_45129887/article/details/122634804 版權場景
將consul部署在雲伺服器上,本地服務註冊至consul,並除錯。服務健康檢查不通過。
- 1
場景還原
-
consul元件安裝
官網:https://www.consul.io/downloads
選擇系統版本下載安裝,示例:CentOs7環境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
驗證安裝,正常情況下返回版本資訊
consul -v
- 1
啟動consul,示例(開發模式啟動)
consul agent -dev
- 1
-
本地微服務啟動檔案配置,並啟動服務
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客戶端 觀察健康檢查結果
健康檢查失敗。
原因分析
相比使用eureka作為服務註冊中心時,服務註冊如下:
- 服務提供者啟動後,傳送自己的資訊到註冊中心進行註冊
- 服務提供者每隔一段時間會想註冊中心傳送心跳,證明自己還活著,沒有掛掉!(預設90s)
- 服務呼叫者第一次呼叫服務提供者時,會向註冊中心拉取一份服務提供者的地址,並快取在本地(下次用可以直接從本地取)
- 當服務提供者不可用時,註冊中心會將這個服務提供者資訊同步到訂閱過這個服務的服務消費者。
而consul得註冊過程如下:
區別在於:eureka是服務提供者定時往註冊中心傳送心跳,保證存活,而consul是註冊中心訪問服務提供者健康檢查url。
問題在於:伺服器無法主動與內網IP建立連線(連路由都做不到),也就是說除非你本地主機擁有公網IP, 否則無法直接ping通。
解決
如何使伺服器能夠訪問本地得服務介面,就是問題的關鍵。這就需要進行內網穿透。
網上有很多工具,這裡使用frp,具體介紹不再贅述,官網很詳盡,中文的
frp 官網地址如下:
https://gofrp.org/
- 1
下載地址:
https://github.com/fatedier/frp/releases
- 1
frp包含服務端和客戶端。在下載的檔案中都有包含,此處因涉及兩個系統環境(本地window系統,伺服器centos7),所以分別下載window和linux版本。
linux版本下載完成後,上傳至伺服器,並解壓。也可以直接在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
修改啟動服務端配置檔案frps.ini, 預設內容如下:
[common]
bind_port = 7000
- 1
- 2
啟動frp服務端:
./frps -c ./frps.ini
- 1
下載window版本,並解壓至本地。修改客戶端啟動配置檔案frpc.ini, 如何配置?完整配置說明在frpc_full.ini中都有說明。這裡更改配置如下:
[common]
server_addr = 218.0.55.16 #ftp服務端主機IP
server_port = 7000 #ftp服務端主機埠
[range:tcp_port]
type = tcp
local_ip = 127.0.0.1 #客戶端主機IP
local_port = 7000-9000 #批量埠對映, 本地
remote_port = 7000-9000 #對映遠端埠
use_encryption = false
use_compression = false
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
window下啟動frp程式,需要進入window的cmd下才能執行。cmd下,進入解壓包路徑。執行
frpc.exe -c ./frpc.ini
- 1
再次檢視服務註冊情況,進入consul客戶端管理頁面:
服務健康檢查正常。
“相關推薦”對你有幫助麼?
- 非常沒幫助
- 沒幫助
- 一般
- 有幫助
- 非常有幫助
- 2萬+
- 訪問
- 186
- 積分
- 8
- 粉絲
- 29
- 獲贊
- 11
- 評論
- 57
- 收藏
熱門文章
- VMWARE15虛擬機器安裝window7系統出現系統找不到問題 10953
- 伺服器consul與本地服務健康檢查不通問題解決 1282
- Docker desktop 與VMware 衝突問題的解決 1189
分類專欄
- 個人學習筆記 1篇
最新評論
您願意向朋友推薦“部落格詳情頁”嗎?
- 強烈不推薦
- 不推薦
- 一般般
- 推薦
- 強烈推薦
最新文章
2022年2篇 2019年1篇分類專欄
- 個人學習筆記 1篇
打賞作者
嚮往鳥
你的鼓勵將是我創作的最大動力
¥2 ¥4 ¥6 ¥10 ¥20 輸入1-500的整數 餘額支付 (餘額:-- ) 掃碼支付 掃碼支付:¥2 獲取中 掃碼支付您的餘額不足,請更換掃碼支付或充值
實付元 使用餘額支付 點選重新獲取 掃碼支付 錢包餘額 0抵扣說明:
1.餘額是錢包充值的虛擬貨幣,按照1:1的比例進行支付金額的抵扣。
2.餘額無法直接購買下載,可以購買VIP、C幣套餐、付費專欄及課程。
舉報
選擇你想要舉報的內容(必選)- 內容涉黃
- 政治相關
- 內容抄襲
- 涉嫌廣告
- 內容侵權
- 侮辱謾罵
- 樣式問題
- 其他
- 包含不實資訊
- 涉及個人隱私
- 侮辱謾罵
- 誹謗
- 搬家樣式
- 博文樣式
取消
確定
隱藏側欄 新手
引導 客服 舉報 返回
頂部 評論 筆記
s_f_t_n: “Operating system not found.”這種現象最多,看了你的帖子,完美解決:就是從高階那裡選了一下就行了
別鬧,寫BUG呢: 確實有道理
釵鳳無落枝呀: 你說的好有道理。。。。。。。。。。
m0_51334022: 博主你好 可以分享一下映象嗎
小號來也: 但是一般你映象系統是有問題的,比如你檢測不到。 這個問題你算問到家了,我剛解決了,且是個普遍情況。 截圖就不截圖了,就是你下載的系統無論下載幾十個什麼版本,虛擬機器都檢測不到,也安裝不了,且還會提示什麼虛擬機器找不到作業系統。英文是:虛擬機器Operating system not found. 好了直接說方法:開啟網頁http://heigou.ysepan.com/login.aspx?d=heigou, http://heigou.ysepan.com/ 進入裡面-環境架設-虛擬機器+註冊+XPios系統 這裡面你開啟,裡面有虛擬機器使用說明,且詳細告訴你為什麼檢測不到IOS系統。 因為你下載的IOS系統都不是帶引導的。所以肯定檢測不到撒。 感謝我吧。 99%新手都是這個問題.