Nacos服務註冊與發現原理

Syunnrai發表於2024-10-11

Nacos是什麼?
Nacos是阿里巴巴開源的一種微服務元件,它主要用於解決分散式系統中多服務例項的動態變化問題,並提供了一種集中、統一的方式來管理配置檔案。此外,Nacos還提供了視覺化的介面,使得服務例項的管理和配置檔案的監控變得更加直觀和方便。

Nacos的原理
在微服務遠端呼叫的過程中,包括兩個角色:服務提供者與服務消費者。
服務提供者是提供介面供其它微服務訪問。
服務消費者是呼叫其它微服務提供的介面。

流程

  • 服務啟動時就會註冊自己的服務資訊(服務名、IP、埠)到註冊中心
  • 呼叫者可以從註冊中心訂閱想要的服務,獲取服務對應的例項列表(1個服務可能多例項部署)(註冊中心底層是雙重map的資料結構)
  • 呼叫者自己對例項列表負載均衡,挑選一個例項
  • 呼叫者向該例項發起遠端呼叫

當服務提供者的例項當機或者啟動新例項時,呼叫者如何得知呢?

  • 服務提供者會定期向註冊中心傳送請求,報告自己的健康狀態(心跳請求)
  • 當註冊中心長時間收不到提供者的心跳時,會認為該例項當機,將其從服務的例項列表中剔除
  • 當服務有新例項啟動時,會傳送註冊服務請求,其資訊會被記錄在註冊中心的服務例項列表
  • 當註冊中心服務列表變更時,會主動通知微服務,更新本地服務列表

Nacos如何使用
https://nacos.io/zh-cn/docs/quick-start.html 可以參考官方文件。

相關文章