1、角色:
(1)eureka server:服務註冊中心(可以是乙個集群),對外暴露自己的位址給每個微服務使用
(2)服務提供者:啟動後向 eurekaserver註冊自己資訊(位址、服務名)
(3)服務消費者:向 eurekaserver訂閱服務,eureka會將對應服務的所有提供者位址列表傳送給消費者,並且定期更新
(4)心跳(續約):每個微服務定期通過 http方式向 eurekaserver重新整理自己的狀態
2、原理
(1)心跳機制:client和 server預設是 30s的週期心跳機制,server預設 90s沒收到則會進行移除
(2)自我保護:如果 15分鐘內超過 85%的節點失效則進入保護機制(ap模式),可通過修改 配置進行關閉:
# 服務端關閉自我保護
eureka.server.enable-self-preservation = false
1、服務端配置#修改心跳週期
eureka.instance.lease-renewal-interval-in-seconds = 30
#修改剔除時間
eureka.instance.lease-expiration-duration-in-seconds = 90
port: 8761 # 埠
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false # 是否註冊自己的資訊到eurekaserver,預設是true
fetch-registry: false # 是否拉取其它服務的資訊,預設是true
service-url: # eurekaserver的位址,現在是自己的位址,如果是集群,需要加上其它server的位址。
2、客戶端配置
name: eureka-test # 應用名稱,會在eureka中顯示
eureka:
client:
service-url: # eurekaserver位址
instance-id: lin-pc #主機名
prefer-ip-address: true # 主機名顯示ip,當呼叫gethostname獲取例項的hostname時,返回ip而不是host名稱
ip-address: 127.0.0.1 # 指定自己的ip資訊,不指定的話會自己尋找
3、集群配置# @loadbalanced 記得加,否則呼叫不到
@loadbalanced
@bean
public resttemplate resttemplate()
public object restful()
4、集群配置(三颱)# eureka1,eureka2 需要在 host檔案配置ip對映
# 服務端 eureka1配置
eureka:
instance:
# 集群下,在 host檔案中配置對映
hostname: eureka1
client:
register-with-eureka: false
fetch-registry: false
service-url:
# 集群下配置
# 服務端 eureka2配置
eureka:
instance:
# 集群下,在 host檔案中配置對映
hostname: eureka2
client:
register-with-eureka: false
fetch-registry: false
service-url:
# 集群下配置
# 客戶端配置,只修改 defaultzone即可:
5、增加監控# eureka1,eureka2,eureka3 需要在 host檔案配置ip對映
# 服務端 eureka配置
eureka:
instance:
# 集群下,在 host檔案中配置對映(***x 在三個服務分別是:eureka1、eureka2、eureka3)
hostname: ***x
client:
register-with-eureka: false
fetch-registry: false
service-url:
# 集群下配置
# 客戶端配置,只修改 defaultzone即可:
eureka:
client:
service-url:
6、檢視服務資訊#引入 actuator
org.springframework.boot
spring-boot-starter-actuator
# eureka 客戶端啟動類增加註解
@enablediscoveryclient
# eureka 客戶端注入介面,通過該介面即可檢視服務資訊
@autowired
private discoveryclient discoveryclient;
discoveryclient.getservices()
discoveryclient.getinstances("***")
微服務 Eureka註冊中心
我們來解決微服務的第一問題,服務的管理。服務中心對外提供服務,需要對外暴露自己的位址。而consumer 呼叫者 需要記錄服務提供者的位址。將來位址出現變更,還需要及時更新。這在服務較少的時候並不覺得有什麼,但是在現在日益複雜的網際網路環境,乙個專案肯定會拆分出十幾,甚至數十個微服務。此時如果還人為...
Eureka服務註冊中心
1.適用場景有侷限 如果服務提供者的網路位址 ip和埠 發生變化,將會影響服務消費者。2.無法動態伸縮 每個微服務一般都會部署多個例項,從而實現實現容災和負載均衡,微服務系統需要具備自動伸縮的能力。如何解決上述方案 1 需要乙個強大的服務發現機制,服務消費者使用這種機制獲取服務提供者的網路資訊,及時...
eureka 服務註冊中心
作為服務註冊中心,eureka比zookeeper區別 著名的cap理論指出,乙個分布式系統不可能同時滿足c 一致性 a 可用性 和p 分割槽容錯性 由於分割槽容錯性在是分布式系統中必須要保證的,因此我們只能在a和c之間進行權衡。在此zookeeper保證的是cp,而eureka則是ap 1.zoo...