在微服務架構中,注冊中心是最核心的基礎服務之一,本文將詳細介紹下注冊中心的組成部分和它們之前的關系。
本文目錄
一、注冊中心原理
注冊中心主要涉及到三大角色:
- 服務提供者
- 服務消費者
- 注冊中心
它們之間的關系大致如下:
-
各個微服務在啟動時,將自己的網絡地址等信息注冊到注冊中心,注冊中心存儲這些數據。
-
服務消費者從注冊中心查詢服務提供者的地址,並通過該地址調用服務提供者的接口。
-
各個微服務與注冊中心使用一定機制(例如心跳)通信。如果注冊中心與某微服務長時間無法通信,就會注銷該實例。
-
微服務網絡地址發送變化(例如實例增加或IP變動等)時,會重新注冊到注冊中心。這樣,服務消費者就無需人工修改提供者的網絡地址了。
注冊中心的架構圖如下:

二:注冊中心功能
注冊中心應具備以下功能:
-
服務注冊表
服務注冊表是注冊中心的核心,它用來記錄各個微服務的信息,例如微服務的名稱、IP、端口等。服務注冊表提供查詢API和管理API,查詢API用於查詢可用的微服務實例,管理API用於服務的注冊與注銷。 -
服務注冊與發現
服務注冊是指微服務在啟動時,將自己的信息注冊到注冊中心的過程。服務發現是指查詢可用的微服務列表及網絡地址的機制。 -
服務檢查
注冊中心使用一定的機制定時檢測已注冊的服務,如發現某實例長時間無法訪問,就會從服務注冊表移除該實例。
Spring Cloud提供了多種注冊中心的支持,例如Eureka、Consul和ZooKeeper等,下一篇文章將介紹下利用Eureka搭建注冊中心,敬請期待哦。
推薦閱讀
1.SpringBoot整合ActiveMQ,看這篇就夠了!
2.別在 Java 代碼里亂打日志了,這才是正確的打日志姿勢!
3.編碼神器Lombok,學會后開發效率至少提高一倍!
4.利用Spring Boot+zxing,生成二維碼還能這么簡單
5.Spring Boot之Profile--快速搞定多環境使用與切換
參考文章:《Spring Cloud與Docker 微服務架構實戰》,周立
限時領取免費Java相關資料,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高並發分布式、大數據、機器學習等技術。
關注下方公眾號即可免費領取:
