一、什么是注冊中心
服務注冊中心是服務實作服務化管理的核心組件,類似于目錄服務的作用,主要用來存盤服務資訊,譬如提供者 url 串、路由資訊等,服務注冊中心是微服務架構中最基礎的設施之一,
注冊中心可以說是微服務架構中的“通訊錄”,它記錄了服務和服務地址的映射關系,在分布式架構中,服務會注冊到這里,當服務需要呼叫其它服務時,就到這里找到服務的地址,進行呼叫,
簡單理解就是:在沒有注冊中心時候,服務間呼叫需要知道被當服務調方的具體地址(寫死的 ip:port),更換部署地址,就不得不修改呼叫當中指定的地址,而有了注冊中心之后,每個服務在呼叫別人的時候只需要知道服務名稱(軟編碼)就好,地址都會通過注冊中心根據服務名稱獲取到具體的服務地址進行呼叫,
舉個現實生活中的例子,比如說,我們手機中的通訊錄的兩個使用場景:
當我想給張三打電話時,那我需要在通訊錄中按照名字找到張三,然后就可以找到他的手機號撥打電話,—— 服務發現
李四辦了手機號并把手機號告訴了我,我把李四的號碼存進通訊錄,后續,我就可以從通訊錄找到他,—— 服務注冊
通訊錄 ——?什么角色(服務注冊中心)
總結:服務注冊中心的作用就是「服務的注冊」和「服務的發現」,
二、為什么需要注冊中心
了解了什么是注冊中心,那么我們繼續談談,為什么需要注冊中心,在分布式系統中,我們不僅僅是需要在注冊中心找到服務和服務地址的映射關系這么簡單,我們還需要考慮更多更復雜的問題:
- 服務注冊后,如何被及時發現
- 服務宕機后,如何及時下線
- 服務如何有效的水平擴展
- 服務發現時,如何進行路由
- 服務例外時,如何進行降級
- 注冊中心如何實作自身的高可用
這些問題的解決都依賴于注冊中心,簡單看,注冊中心的功能有點類似于 DNS 服務器或者負載均衡器,而實際上,注冊中心作為微服務的基礎組件,可能要更加復雜,也需要更多的靈活性和時效性,所以我們還需要學習更多 Spring Cloud 微服務組件協同完成應用開發,
注冊中心解決了以下問題:
- 服務管理
- 服務之間的自動發現
- 服務的依賴關系管理
三、常見的注冊中心
- Netflix Eureka
- Alibaba Nacos
- HashiCorp Consul
- Apache ZooKeeper
- CoreOS Etcd
- CNCF CoreDNS

作者:哈嘍沃德先生,謝謝關注哈嘍沃德先生 Gongzong號,點 獲取spring全家桶微服務架構視頻教程資料,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93423.html
標籤:Java
上一篇:Java自學-圖形界面 容器
