我對注冊中心的理解


在單體應用中,所有功能都在一個應用中,但是隨着業務增長,系統功能逐漸變得龐大,單體應用在開發、部署等方面效率逐漸低下,開發協同越來越困難,等等問題。因此,對系統進行拆分變的必要。

但是在微服務架構中,越來越多的服務被拆分出來,整個系統之間的調用關系也會越來越復雜,各個服務管理也會變的越來越困難。那么對這種數量極多、依賴關系復雜的系統如何進行管理成為了一個問題。

這時需要一個注冊中心進行服務治理。


注冊中心是什么

首先,在微服務架構中,注冊中心是什么?

一張圖進行概括,它就是一張通訊錄:

它將各個服務的信息進行存儲,然后提供給需要者,同時維護各種過期失效的內容。


注冊中心原理

在微服務中,有三個非常重要的角色:注冊中心、服務提供者、服務消費者。對應關系如下:

對應的過程如下:

  • 各個服務啟動信息注冊到注冊中心,注冊中心保存注冊數據。
  • 各個服務注冊成功后,上傳服務健康信息到注冊中心進行保活。
  • 各個服務消費者啟動時向注冊中心訂閱服務信息,獲取服務地址列表,注冊中心在服務列表發生變化時同步給服務訂閱者。
  • 各個服務消費者調用服務提供者。

注冊中心功能

根據上圖中的信息,大致可以列出注冊中心要提供的功能如下:

  • 服務注冊表:注冊中心的核心功能,記錄各個服務提供者的信息,比如服務名、IP、端口等。維護服務訂閱者信息。
  • 服務注冊、注銷接口:供服務提供方進行服務注冊和服務注銷。
  • 健康檢查和服務摘除:提供健康信息上報接口,供注冊服務上傳健康信息進行服務保活。同時對於失效節點能夠及時摘除並同步給服務訂閱者。
  • 服務訂閱和變更通知:供服務消費者使用。

注冊中心實現機制

服務注冊模式主要分為兩種:自注冊模式、第三方注冊模式。

自注冊模式

每個服務自己向注冊中心進行注冊和注銷,同時上傳健康信息到注冊中心來保持注冊有效。

  • 優點:實現方式簡單,不需要部署其它額外的組件。

  • 缺點:耦合度較高,服務端需要和注冊中心進行適配。

第三方注冊模式

每個服務實例不需要自己直接向注冊中心進行注冊和注銷,同時也不需要關注自己的健康信息,這些事情直接由第三方組件來做。

  • 優點:服務和注冊中心解耦,不需要服務按照注冊中心來進行適配。

  • 缺點:第三方組件需要保證高可用,引入第三方服務也增加了系統的復雜度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM