學習下Eureka元件的結構和作用以及實現步驟

2022-09-10 10:21:17 字數 2908 閱讀 1928

1.eureka做什麼的?論述一下

eureka是cs架構,而服務消費者和服務提供者都屬於eureka-client(客戶端),使用元件eureka元件都需要匯入eureka啟動器和依賴,導完後才可以跟服務埠進行互動,服務提供者和服務消費者將url位址資訊提交給eureka,消費者通過註冊名稱獲取每乙個提供者的位址資訊,消費者通過負載均衡(隨機或者輪循的方式),獲取位址後遠端呼叫。

eureka可以感知服務提供者的心跳來判斷服務提供者的存活狀態(心跳:服務提供者每隔30秒向eureka傳送一次請求),如果90秒內eureka沒有接收到服務提供者的請求,eureka就會服務剔除(每隔60秒剔除一次,剔除到一定程度便不在剔除),同樣服務消費者每隔30秒拉取一次提供者的資訊。存在一種現象(微服務拉取位址資訊很長時間,因有可能有些服務提供者死掉了,等待重新拉取後就好了)。

2.eureka的作用

a.消費者該如何獲取服務提供者具體資訊?

*服務提供者啟動時向eureka註冊自己的資訊

*eureka儲存這些資訊

* 消費者根據服務名稱向eureka拉取提供者資訊

b.如果有多個服務提供者,消費者該如何選擇?

*服務消費者利用負載均衡演算法,從服務列表中挑選乙個

c.消費者如何感知服務提供者健康狀態?

*服務提供者會每隔30秒向eurekaserver傳送心跳請求,報告健康狀態

*eureka會更新記錄服務列表資訊,心跳不正常會被剔除

消費者就可以拉取到最新的資訊

#eureka服務端jar包中包含了客戶端的jar包   為什麼?---------為了實現eureka服務端集群下服務端內容同步

3.eureka實現步驟? 技術的使用方式?(一)搭建註冊中心

在專案中建立模組eureka-server

1.在pom中匯入依賴 引入spring-cloud-starter-netflix-eureka-server的依賴

org.springframework.cloud

spring-cloud-starter-netflix-eureka-server

2.編寫啟動類,新增@enableeurekaserver註解

server:

port: 10086

spring:

# 給當前服務起名稱(不能有下劃線,否則駝峰對映會造成名稱錯誤)

name: eureka-server

eureka:

# 配置eureka客戶端要連線的服務端資訊

client:

service-url:

defaultzone:

# 客戶端不用註冊自己到服務端

register-with-eureka: false # 不註冊自己

# 客戶端不需要從服務端拉取任何資訊

fetch-registry: false #不拉取服務本eureka服務中的服務資訊

元件eureka搭建後訪問,http://localhost:10086/

(二)服務註冊

1.引入eureka-client依賴

把服務端的資訊傳給eureka元件中去,在其依賴中匯入eureka客戶端jar包

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

2.

spring:

name: userservice

eureka:

client:

service-url:

defaultzone:

instance: # 在eureka中顯示服務的ip位址

ip-address: 127.0.0.1 # 配置伺服器ip位址

prefer-ip-address: true # 更傾向於使用ip,而不是host名

instance-id: $:$ # 自定義例項的id

(不加或者加後面四行**的區別顯示):

(三)服務發現

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

spring:

name: orderservice

eureka:

client:

service-url:

defaultzone:

給resttemplate新增@loadbalanced註解

修改order-service服務中的cn.itcast.order.service包下的orderservice類中的queryorderbyid方法。修改訪問的url路徑,用服務名代替ip、埠:

spring會自動幫助我們從eureka-server端,根據userservice這個服務名稱,獲取例項列表,而後完成負載均衡。

vue元件學習(下)

上次我們說了什麼是元件,和它的基本應用,下面我們來看一下我自認為的高階內容。首先寫好基本結構,建立乙個子元件 當然我們要注意一種特殊情況,如果我們的自定義標籤沒有內容,我們可以在slot中加入內容為預設內容,但是如果我們設定了預設內容,而我們的自定義標籤也不是空的,那麼自定義標籤裡的內容會替代我們的...

Zookeeper和Eureka的區別!

著名的cap理論指出,乙個分布式系統不可能同時滿足c 一致性 a 可用性 和p 分割槽容錯性 由於分割槽容錯性p在分布式系統中必須要保證的,因此我們只能在a和c之間進行權衡。因此 zookeeper保證的是cp,eureka則是ap。zoopkeeper保證cp 當向註冊中心查詢服務列表時,我們可以...

ZooKeeper和Eureka的區別

1 cap理論 乙個分布式系統不可能同時滿足c 一致性 a 可用性 和p 分割槽容錯性 zookeeper保證的是cp,而eureka則是ap。2 zookeeper保證cp 當註冊中心查詢服務列表時,我們可以容忍註冊中心返回的是幾分鐘以前的註冊資訊,但是不能接受服務直接down掉不可用。也就是說,...