Spring Cloud之注冊中心之Nacos健康監測和環境隔離

目錄

Nacos健康檢查

兩種健康檢查機制

Nacos服務類型實例

Nacos環境隔離

創建namespace

配置namespace


Nacos健康檢查

兩種健康檢查機制

Nacos作為注冊中?, 需要感知服務的健康狀態, 才能為服務調??提供良好的服務.

Nacos 中提供了兩種健康檢查機制:

客?端主動上報機制:
? 客?端通過?跳上報?式告知服務端(nacos注冊中?)健康狀態, 默認?跳間隔5秒;
? nacos會在超過15秒未收到?跳后將實例設置為不健康狀態, 超過30秒將實例刪除
服務器端反向探測機制:
? nacos主動探知客?端健康狀態, 默認間隔為20秒.
? 健康檢查失敗后實例會被標記為不健康, 不會被?即刪除.

Nacos 中的健康檢查機制不能主動設置,健康檢查機制是和 Nacos 的服務實例類型強相關的.?

Nacos服務類型實例
Nacos的服務實例(注冊的節點)分為臨時實例和?臨時實例。
? 臨時實例: 如果實例宕機超過?定時間, 會從服務列表剔除, 默認類型.
? ?臨時實例: 如果實例宕機, 不會從服務列表剔除, 也可以叫永久實例 .

Nacos對臨時實例, 采取的是 客?端主動上報機制, 對?臨時實例, 采取服務器端反向探測機制.

開啟服務:

關閉其中的服務:

?由此我們發現,并沒有

設置實例為非臨時實例

spring:cloud:nacos:discovery:ephemeral: false # 設置為?臨時實例

啟動服務:

此時我們發現,修改臨時實例為非臨時實例,重啟服務都會失敗。

原因:

Nacos會記錄每個服務實例的IP和端?號, 當發現IP和端?都沒有發?變化時, Nacos不允許?個服務實例類型發?變化, ?如從臨時實例,變為?臨時實例, 或者從?臨時實例, 變成臨時實例。

解決辦法:

1. 停掉nacos
2. 刪除nacos ?錄下 /data/protocol/raft 信息, ??會保存應?實例的元數據信息。

啟動服務

為什么我們啟動服務而且沒有停止服務,卻顯示健康狀態為fasle呢?

解決方法:將非臨時實例(持久化實例)修改為臨時實例。

啟動服務

Nacos環境隔離

企業開發中, ?個服務會分為開發環境, 測試環境和?產環境.

1. 開發環境:開發?員?于開發的服務器, 是最基礎的環境. ?般?志級別設置較低, 可能會開啟?些調試信息.
2. 測試環境:測試?員?來進?測試的服務器, 是開發環境到?產環境的過渡環境.
3. ?產環境:正式提供對外服務的環境, 通常關掉調試信息.

通常情況下, 這?個環境是不能互相通信的. Nacos提供了namespace(命名空間)來實現環境的隔離. 不同的namaspace的服務不可?。

創建namespace

默認情況下,所有服務都在同?個namespace,名為public.

點擊左側命名空間, 可以對namespace進?操作,新增命名空間
配置namespace

namespace創建完成后, 對服務進?配置

配置項Key默認值說明
命名空間spring.cloud.nacos.discovery.namespace常用場景之一是不同環境的注冊的區分是隔離的,例如開發測試環境和生產環境的資源(如配置,服務)隔離等。

修改order-service的命名空間

spring:cloud:nacos:discovery:namespace: 29e05465-894c-48dc-8ed9-37e6a6a0eed9

此時訪問會失敗,因為order-service和product-service不在同一個命名空間中。

修改product-service的命名空間

spring:cloud:nacos:discovery:namespace: 29e05465-894c-48dc-8ed9-37e6a6a0eed9

此時就能夠訪問成功了,因為order-service和product-service在同一個命名空間中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73021.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73021.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73021.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue3實戰學習(Element-Plus常用組件的使用(輸入框、下拉框、單選框多選框、el-image圖片))(上)(5)

目錄 一、Vue3工程環境配置、項目基礎腳手架搭建、Vue3基礎語法、Vue3集成Element-Plus的詳細教程。(博客鏈接如下) 二、Element-Plus常用組件使用。 &#xff08;1&#xff09;el-input。(input輸入框) <1>正常狀態的el-input。 <2>el-input的disable狀態。 <3…

微服務——網關、網關登錄校驗、OpenFeign傳遞共享信息、Nacos共享配置以及熱更新、動態路由

之前學習了Nacos&#xff0c;用于發現并注冊、管理項目里所有的微服務&#xff0c;而OpenFeign簡化微服務之間的通信&#xff0c;而為了使得前端可以使用微服務項目里的每一個微服務的接口&#xff0c;就應該將所有微服務的接口管理起來方便前端調用&#xff0c;所以有了網關。…

2025年3月11日(有限元牛頓迭代法:通俗講解與示例)

牛頓迭代法的正確流程解釋 是的&#xff0c;你的理解基本正確&#xff01;但需要更準確地描述內外力的關系和迭代邏輯。以下是更清晰的步驟說明&#xff1a; 核心流程&#xff08;修正版&#xff09; 假設已知 外力 ( F_{\text{ext}} )&#xff08;如2000 N&#xff09;&…

爬蟲的精準識別:基于 User-Agent 的正則實現

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

【AI大模型】LLM訓練deepseek如何識別視頻

要讓像DeepSeek這樣的大語言模型&#xff08;LLM&#xff09;具備視頻識別能力&#xff0c;需要結合多模態學習技術&#xff0c;將視覺信息與文本語義進行融合。以下是實現這一目標的關鍵步驟和技術要點&#xff1a; --- 一、視頻識別的核心挑戰 1. 多模態數據&#xff1a;視頻…

【物聯網-以太網-W5500】

物聯網-以太網-W5500 ■ W5500-簡介■■■■ ■ W5500-簡介 ■ ■ ■ ■

centos linux安裝mysql8 重置密碼 遠程連接

1. 下載并安裝 MySQL Yum 倉庫 從 MySQL 官方網站下載并安裝 Yum 倉庫配置文件。 # 下載MySQL 8.0的Yum倉庫包 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安裝Yum倉庫包 sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm2. 啟…

C++【類和對象】(超詳細!!!)

C【類和對象】 1.運算符重載2.賦值運算符重載3.日期類的實現 1.運算符重載 (1).C規定類類型運算符使用時&#xff0c;必須轉換成調用運算符重載。 (2).運算符重載是具有特殊名字的函數&#xff0c;名字等于operator加需要使用的運算符&#xff0c;具有返回類型和參數列表及函數…

【面試】Java 多線程

多線程 1、什么是線程和進程2、創建線程有幾種方式3、線程有幾種狀態4、什么是上下文切換5、什么是守護線程&#xff0c;和普通線程有什么區別6、什么是線程池&#xff0c;如何實現的7、Executor和Executors的區別8、線程池處理任務的流程9、線程數設定成多少更合適10、執行exe…

宿主機運行pyspark任務讀取docker hadoop容器上的數據

熬了四個大夜才搞明白&#xff0c;最晚一天熬到早上十點/(ㄒoㄒ)/~~&#xff0c;最后發現只要加個參數就解決了。。。抱頭痛哭 問題描述&#xff1a; Hadoop集群部署在docker容器中&#xff0c;宿主機執行pyspark程序讀取hive表 問題一&#xff1a;當master(local[*])時&…

《平凡的世界》:在泥土中尋找星辰的勇氣

“平凡不是平庸的代名詞&#xff0c;而是千萬人用脊梁扛起時代的勛章。”——路遙的《平凡的世界》用百萬字書寫了黃土地上孫少安、孫少平兩兄弟的掙扎與覺醒&#xff0c;撕開了“奮斗逆襲”的浪漫濾鏡&#xff0c;告訴你&#xff1a;真正的英雄主義&#xff0c;是在認清了生活…

【SpringMVC】深入解析使用 Postman 和瀏覽器模擬將單個與多個參數傳遞到后端和后端接收過程

SpringMVC—請求(Request) 訪問不同的路徑&#xff0c;就是發送不同的請求&#xff1b;在發送請求時&#xff0c;可能會帶一些參數&#xff0c;所以學習Spring的請求&#xff0c;主要是學習如何傳遞參數到后端以及后端如何接收&#xff1b; 我們主要是使用 瀏覽器 和 Postman …

04 | 初始化 fastgo 項目倉庫

提示&#xff1a; 所有體系課見專欄&#xff1a;Go 項目開發極速入門實戰課&#xff1b;歡迎加入我的訓練營&#xff1a;云原生AI實戰營&#xff0c;一個助力 Go 開發者在 AI 時代建立技術競爭力的實戰營&#xff1b;本節課最終源碼位于 fastgo 項目的 feature/s01 分支&#x…

Docker 安裝成功后,安裝 Dify 中文版本的步驟

Docker 安裝成功后&#xff0c;安裝 Dify 中文版本的步驟如下1&#xff1a; 克隆 Dify 代碼倉庫&#xff1a;在終端中執行以下命令&#xff0c;將 Dify 源代碼克隆至本地環境。 bash git clone https://github.com/langgenius/dify.git進入 Dify 的 docker 目錄&#xff1a; b…

RPC服務調用深度解析:從原理到Java實踐

一、RPC的核心原理與架構設計 1.1 RPC的本質 RPC&#xff08;Remote Procedure Call&#xff09;是一種分布式系統間通信協議&#xff0c;允許程序像調用本地方法一樣調用遠程服務。其核心目標是通過位置透明性和協議標準化隱藏網絡通信細節。RPC的調用流程可抽象為以下步驟&…

電腦的寫字板如何使用?

打開寫字板&#xff1a; 直接按一下鍵盤上的win R 鍵&#xff0c;然后輸入&#xff1a;write &#xff0c; 再按一下回車 , 即可打開寫字板 可以在里面寫文字 和 插入圖片等… &#xff0c; 如下所示&#xff1a; 保存寫字板內容&#xff1a; 當我們寫好了之后&#xff0c;…

醫療AI測試實戰:如何確保人工智能安全賦能醫療行業?

一、醫療AI測試的重要性 人工智能&#xff08;AI&#xff09;正廣泛應用于醫療行業&#xff0c;如疾病診斷、醫學影像分析、藥物研發、手術機器人和智能健康管理等領域。醫療AI技術的應用不僅提高了診斷效率&#xff0c;還能降低誤診率&#xff0c;改善患者治療效果。然而&…

AI日報 - 2025年3月12日

AI日報 - 2025年3月12日 &#x1f31f; 今日概覽&#xff08;60秒速覽&#xff09; ▎&#x1f916; AGI突破 | Anthropic CEO預測AI將主導代碼編寫 &#x1f52c; 自訓練技術顯著提升LLM思維清晰度 ▎&#x1f4bc; 商業動向 | OpenAI與CoreWeave達成119億美元基建協議 &…

跳表數據結構

跳表&#xff08;Skip List&#xff09;是一種支持高效插入、刪除和查找的鏈表結構&#xff0c;用于加速查找操作&#xff0c;特別適用于有序數據集合。它在Redis、LevelDB等系統中被用于**有序集合&#xff08;Sorted Set&#xff09;**的實現。 1. 跳表的結構 跳表的核心思…

系統會把原先的對話狀態堆棧從 [“assistant“] 更新為 [“assistant“, “update_flight“]這個更新的處理過程

這個更新主要是在 State 定義中通過 Annotated 來自動處理的。在 State 類型中&#xff0c;我們對 dialog_state 字段綁定了 update_dialog_stack 函數&#xff0c;如下所示&#xff1a; class State(TypedDict):messages: Annotated[list[AnyMessage], add_messages]user_inf…