SpringCloud(二)服務注冊中心與Eureka工作原理介紹


微服務的注冊中心

author:QYX

注冊中心可以說是微服務架構中的通訊錄,它記錄了服務和服務地址的映射關系,在分布式架構中,服務會注冊到這里,當服務需要調用其他服務時,

就會在這里找到服務的地址,進行調用

注冊中心的主要作用

 

服務注冊中心是微服務架構中非常重要的一個組件,在微服務架構里主要起到了協調者的一個作用,注冊中心一般包含如下幾個功能:

1、服務發現:

服務注冊/反注冊:保存服務提供者和服務調用者的信息

服務訂閱/取消訂閱:服務調用者訂閱服務提供者的信息,最好有實時推送的功能

服務路由(可選):具有篩選整合服務提供者的能力

2、服務配置

配置訂閱:服務提供者和服務調用者訂閱微服務相關的配置

配置下發:主動將配置推送給服務提供者和服務調用者

3、服務健康監測

檢測服務提供者的健康情況

常見的注冊中心

zookeeper

dubbo中推薦zookeeper作為注冊中心

Eureka

Spring Cloud體系中應用廣泛

Consul

Go語言開發,支持多數據中心分布式高可用的服務發布和注冊服務,采用我們熟知的ralt算法保證服務的一致性,且支持健康檢查

Nacos

作為一個Nacos雜只想說6666啊,Nacos是一個更易於構建雲原生應用的動態服務發現,配置管理平台和服務管理平台,Spring Cloud Alibaba,

采用服務中心加配置中心的組合

CAP理論中(C 一致性 A 可用性 P 分區容錯性)

選擇服務注冊中心請根據業務場景來進行實際的技術選型

 

 

Eureka

Eureka是Netfilx開發的服務發現框架,SpringCloud將它集成在自己的子項目spring-cloud-netfilx中,實現SpringCloud的服務發現功能

上圖簡要描述了Eureka的基本架構,由三個角色組成

1 Eureka Server

提供服務注冊和發現

2 Service Provider

服務提供方

將自身服務注冊到Eureka,從而使服務消費方能夠找到

3 Service Consumer

服務消費方

從Eureka獲取注冊服務列表,從而能夠消費服務

工作原理:

服務提供者開啟時向Eureka Server注冊實例,Eureka Server會將服務提供者的注冊信息放入到內存中,且默認每30秒對服務提供者進行心跳檢測,如果超過30秒則視為宕機,則刪除內存中的注冊信息

服務消費方從Eureka Server中獲取注冊信息,並保存到本地的內存中,並通過注冊信息與服務提供者進行通訊,這里可能會引起一致性問題,因為假如Eureka Server的檢測到服務提供者宕機則會刪除內存

而服務消費者卻還保存內存,這就引起了一致性問題,所有Eureka在CAP理論中(C 一致性 A 可用性 P 分區容錯性)中只滿足AP

Eureka總體介紹

我們的服務發現一般分為兩種模式一種為客戶端發現模式(我們主要講這個),一種為服務端發現模式

服務實例的網絡位置都是動態分配的,而且因為擴展,失效和升級等需求,服務實例會常常發生動態改變,因此客戶端一種更加復雜的服務發現機制

當使用客戶端發現模式時,客戶端負責決定相應服務實例之間的網絡位置,並且對請求實現負載均衡,客戶端從一個服務注冊服務中查詢,其中是所有可用服務實例的庫,客戶端使用負載均衡算法對從多個服務實例中選擇出一個,然后發出請求

本人的分布式框架也已經開源請大家多多支持啊!


免責聲明!

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



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