1. 程式人生 > 其它 >伺服器consul與本地服務健康檢查不通問題解決

伺服器consul與本地服務健康檢查不通問題解決

(125條訊息) 伺服器consul與本地服務健康檢查不通問題解決_嚮往鳥的部落格-CSDN部落格_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

場景還原

  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
  2. 本地微服務啟動檔案配置,並啟動服務

    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
  3. 啟動consul客戶端 觀察健康檢查結果

    健康檢查失敗。

原因分析

相比使用eureka作為服務註冊中心時,服務註冊如下:

  1. 服務提供者啟動後,傳送自己的資訊到註冊中心進行註冊
  2. 服務提供者每隔一段時間會想註冊中心傳送心跳,證明自己還活著,沒有掛掉!(預設90s)
  3. 服務呼叫者第一次呼叫服務提供者時,會向註冊中心拉取一份服務提供者的地址,並快取在本地(下次用可以直接從本地取)
  4. 當服務提供者不可用時,註冊中心會將這個服務提供者資訊同步到訂閱過這個服務的服務消費者。

而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客戶端管理頁面:

服務健康檢查正常。

  文章知識點與官方知識檔案匹配,可進一步學習相關知識 雲原生入門技能樹首頁概覽7944 人正在系統學習中 嚮往鳥 關注
  • 2 點贊
  • 0 收藏
  • 打賞
  • 0 評論
  •   伺服器consul與本地服務健康檢查不通問題解決 伺服器consul與本地服務健康檢查不通問題解決 複製連結 掃一掃

    熱門

    VIP

  SpringCloud整合Consul服務註冊後顯示健康檢查失敗問題解決 禿變的部落格 09-29 1849 consul版本1.10.2算是比較新的版本,安裝完成啟動後,把自己的服務註冊到consul上顯示健康檢查失敗health check failing 問題如圖 翻閱網上的解決方案,版本都比較老,有說是版本問題,嘗試切換到舊版的consul發現依舊無法解決問題,也有說沒有新增actuator監控依賴導致無法健康檢查,看了一下自己的pom檔案也沒問題。有方案是自己寫一個controller呼叫health介面,寫的不太清楚,也沒弄明白。 嘗試了幾次解決,發現在consul的web頁面例項詳情頁ou. Spring Cloud 爬坑記錄 - Consul註冊,檢查狀態失敗 貓!? 07-18 8179 按網上的例子新增一個SpringBoot工程到Consul,使用Consul版本1.2.1 工程pom檔案: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/... 評論0寫評論   評論 寫評論   SpringCloud整合Consul服務註冊後顯示健康檢查失敗問題解決 11-14 consul版本1.10.2算是比較新的版本,安裝完成啟動後,把自己的服務註冊到consul上顯示健康檢查失敗health check failing 問題如圖 翻閱網上的解決方案,版本都比較老,有說是版本問題,嘗試切換到舊版的consul發現依舊無法解決問題,也有說沒有添... Consul入門05 - 健康檢測_zl1zl2zl3的部落格_consul... 11-21 >/etc/consul.d/web.json 第一個定義增加了一個主機級別的檢測,名為"ping"。該檢測每30秒間隔執行一次,呼叫命令ping -c1 google.com。在一個基於指令碼的健康檢測中,該檢測使用啟動Consul程序的使用者來啟動該檢測。如果檢測命令返回一個... consul-pager:Consul 檢查失敗監控代理 07-09 Consul-pager 是一個 consul check 監控代理。 它目前僅支援通過 Slack 渠道進行通知。 用法 你必須執行一個 consul 代理監聽 localhost:8500。 要啟動監控代理型別: consul-pager < global> start -config config.yaml GLOBAL OPTIONS: --address ' 127.0.0.1:8500 ' consul address --dc consul datacenter --token consul token 配置檔案應如下所示: channels : MySlackChannel : channeli : subdomain : bbbbb token : bbbbbbb c 【Consul】關於健康檢查的一點思考 渡江客塗鴉板 09-25 8246 DNS查詢系統利用健康檢查以防止不良節點路由資訊。當服務查詢時,如果服務健康檢查失敗或者系統檢查失敗服務資訊將會從查詢結果中刪除。為了實現簡單的負載平衡,返回的節點集合每次都是隨機的。這種機制使得利用DNS介面基於應用級重試實現面向auto-healing服務體現架構變得更加容易。... actuator對Consul的影響 consul健康檢查通不過的原因之一 weixin_42230013的部落格 08-10 1130 actuator對Consul的影響 consul健康檢查通不過的原因之一起因錯誤堆疊consul 業務分析 起因 總體來說就是不聽老師講的。。。自己去搭建環境的時候把maven包進行了簡化,把spring-boot-starter-actuator這個包刪掉了 錯誤堆疊 com.netflix.client.ClientException: Load balancer does not have available server for client: XXX at com.netflix.loadba SpirngCloud Consul 註冊到主機健康檢查失敗 weixin_45110161的部落格 06-27 201 SpirngCloud Consul 註冊到主機健康檢查失敗Spring.properties加上此配置 在Spring.properties加上此配置 #(SpringCloud consul服務(註冊到主機名的問題)) #1、定開啟IP地址註冊 spring.cloud.consul.discovery.prefer-ip-address=true #2、當前服務的請求IP spring.cloud.consul.discovery.ip-address=${spring.cloud.client spring-cloud-consul:設定servlet context-path 導致的 Consul 健康檢查失敗 WillingWay619的部落格 08-17 620 配置檔案 server: port: 9021 servlet: context-path: /config 去掉 server.servlet.context-path=/config 後 server: port: 9021 # servlet: # context-path: /config 原因及解決辦法 原因:consul對微服務健康檢查路徑是固定的。預設為 /actuator/health,沒有自動加上 servlet.context-path中設定的 /c consul服務註冊後健康檢查一直失敗如何解決 熱門推薦 weixin_33766168的部落格 03-27 1萬+ 2019獨角獸企業重金招聘Python工程師標準>>> ... consul健康檢查介面404 毅香雪海的部落格 12-15 1334 在測試專案時發現consul服務端顯示測試客戶端的健康檢查的介面呼叫失敗,返回404: 在客戶端也顯示: [org.springframework.web.servlet.PageNotFound:1176] - No mapping found for HTTP request with URI [/consul-test/health] in DispatcherServlet with name 'dispatcherServlet' 配置是正確的: spring.profil... 前端新手請求介面失敗問題 weixin_44126565的部落格 09-16 2522 前端新手請求介面失敗問題問題描述: 原因分析: 後端的伺服器沒有開 解決方案: 開啟對應介面的伺服器 centos7啟動consul,本地客戶端無法連線問題 小小不當家的部落格 03-24 887 問題描述 提示:本地啟動consul客戶端,無法連線centos7的服務端 原因分析: 1.服務端未啟動 2.服務端防火牆導致無法訪問 1.檢查服務端是否啟動 consul members 服務端啟動正常。 2.檢查防火牆是否關閉systemctl status firewalld 確認已關閉,沒頭腦了。。。。 解決方案: 1.重啟服務consul 2.開啟防火牆,重新關閉。 1.重啟服務consul,重試啟動consul客戶端,仍無... consul 服務健康檢查 愛死亡機器人 08-22 4746 簡介 服務註冊 - 服務程序在註冊中心註冊自己的位置。它通常註冊自己的主機和埠號,有時還有身份驗證資訊,協議,版本號,以及執行環境的詳細資料。 服務發現 - 客戶端應用程序向註冊中心發起查詢,來獲取服務的位置。服務發現的一個重要作用就是提供一個可用的服務列表。 服務定義的格式類似如下: / # cat /consul/config/prometheus.json { "service":{ "id": "promtheus", "name": "prometheus", consul服務註冊中心-本地啟動 weixin_43404791的部落格 03-06 948 consul agent dev,線上寫到那裡,使用的docker容器 consul服務註冊及與spingboot的整合 weixin_44105468的部落格 12-24 716 1.本地安裝consul 安裝包可在官網下載 2.本地啟動consul 進入本地的consul目錄下,新建cfg目錄作為config目錄,data目錄作為資料目錄,然後輸入 //這裡根據自己的實際路徑來寫,我這裡寫的是我的路徑 nohup /Users/cherunyu/IdeaProjects/consul/consul agent -config-dir=/Users/cherunyu/IdeaProjects/consul/cfg -data-dir=/Users/cherunyu/I consul使用watches機制,healthcheck不通過時傳送預警 u014043168的部落格 04-08 521 參考文件:https://www.consul.io/docs/dynamic-app-config/watches#checks watches是一個被動觸發的動作,預定義有多個型別: Key – 監視指定K/V鍵值對 Keyprefix – Watch a prefix in the KV store Services – 監視服務列表 nodes – 監控節點列表 service – 監視服務例項 checks- 監視健康檢查的值 event – 監視使用者事件 我這裡有個.. Consul提示Service Check心跳健康監測有問題解決方案 weixin_41224335的部落格 10-13 819 這裡寫自定義目錄標題歡迎使用Markdown編輯器新的改變功能快捷鍵合理的建立標題,有助於目錄的生成如何改變文字的樣式插入連結與圖片如何插入一段漂亮的程式碼片生成一個適合你的列表建立一個表格設定內容居中、居左、居右SmartyPants建立一個自定義列表如何建立一個註腳註釋也是必不可少的KaTeX數學公式新的甘特圖功能,豐富你的文章UML 圖表FLowchart流程圖匯出與匯入匯出匯入 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Mar Consul註冊中心註冊的服務總是紅叉 (All service checks failing) 最新發布 xiaowen555555 06-12 900 Consul註冊中心註冊的服務總是紅叉 (All service checks failing) 微服務專題:服務註冊與發現之三Consul健康檢測 weixin_34391854的部落格 12-22 332 簡介 在微服務架構中,微服務會存在多個例項,部署在多臺主機中。因為網路、主機狀態等諸多因素,單臺主機上的服務出現問題的機率大大增加。這就要求我們能夠監控每臺主機、每個微服務例項的健康狀態。Consul作為註冊中心,提供了強大、靈活的健康監測。 快速上手 定義check的位置為/etc/consul.d/,格式跟定義服務一樣,也是JSON。下邊我們定義兩個check,分別為pingBaidu.jso... docker裡安裝consul,以及遇到的坑 bailaoshi666的部落格 06-30 4526 docker pull consul:1.6.4 版本隨意 啟動命令 docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul agent -server -bootstrap-expect 1 -ui -bind=0.0.0.0 -client=0 .0.0.0 這裡有個坑,注意這個數字1,代表的是單機的意思。2是叢集 一開始寫成2,導致web介面.

“相關推薦”對你有幫助麼?

  • 非常沒幫助
  • 沒幫助
  • 一般
  • 有幫助
  • 非常有幫助
提交 ©️2022 CSDN 面板主題:數字20 設計師:CSDN官方部落格 返回首頁 嚮往鳥 CSDN認證部落格專家 CSDN認證企業部落格 碼齡4年 暫無認證 3原創 98萬+周排名 185萬+總排名
2萬+
訪問
等級
 
186
積分
8
粉絲
29
獲贊
11
評論
57
收藏
私信 關注

熱門文章

分類專欄

最新評論

您願意向朋友推薦“部落格詳情頁”嗎?

  • 強烈不推薦
  • 不推薦
  • 一般般
  • 推薦
  • 強烈推薦
提交

最新文章

  2022年2篇 2019年1篇  

分類專欄

      評論
還能輸入1000個字元   插入表情   程式碼片
  0 條評論被摺疊 檢視 被摺疊的 0 條評論 為什麼被摺疊? 到【灌水樂園】發言   檢視更多評論

打賞作者

嚮往鳥

你的鼓勵將是我創作的最大動力

  ¥2 ¥4 ¥6 ¥10 ¥20 輸入1-500的整數 餘額支付 (餘額:-- ) 掃碼支付 掃碼支付:¥2 獲取中 掃碼支付

您的餘額不足,請更換掃碼支付或充值

打賞作者

實付 使用餘額支付 點選重新獲取 掃碼支付   錢包餘額 0

抵扣說明:

1.餘額是錢包充值的虛擬貨幣,按照1:1的比例進行支付金額的抵扣。
2.餘額無法直接購買下載,可以購買VIP、C幣套餐、付費專欄及課程。

餘額充值       確定取消      

舉報

選擇你想要舉報的內容(必選)
  • 內容涉黃
  • 政治相關
  • 內容抄襲
  • 涉嫌廣告
  • 內容侵權
  • 侮辱謾罵
  • 樣式問題
  • 其他
    原文連結(必填)   請選擇具體原因(必選)
  • 包含不實資訊
  • 涉及個人隱私
請選擇具體原因(必選)
  • 侮辱謾罵
  • 誹謗
請選擇具體原因(必選)
  • 搬家樣式
  • 博文樣式
  補充說明(選填)

取消

確定

隱藏
側欄
新手
引導
客服 舉報 返回
頂部
  評論 筆記