日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心

發布時間:2024/9/27 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sping boot

Eureka是服務中心,管理各種服務功能包括服務的注冊、發現、熔斷、負載、降級等。Spring Cloud Eureka 是對Netflix公司的Eureka的二次封裝。

????在dubbo的使用中我們通常使用zookeeper作為注冊中心。在這里spring cloud使用Eureka, 用一個標準的spring boot項目就可以快捷的搭建服務注冊中心。

Eureka是一個C/S服務,我們需要區分兩個,eureka Server和eureka Client

eureka Server是服務注冊中心(服務端)。而系統中的其他微服務作為client連接到 Eureka Server,并維持心跳連接。

一、pom

服務端pom

<dependency> <groupId>org.springframework.cloudgroupId> artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>dependency>

客戶端pom

???<dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId> <version>2.2.3.RELEASEversion>dependency>

使用Eureka同時需要spring-web的依賴。

二、服務端

yml配置

spring: application: name: spring-cloud-eureka-serverserver: port: 7001eureka: client: #eureka默認情況下,把自己當做客戶端來注冊自己,所以我們要禁用它 這里是服務端 fetch-registry: false #表示是否從Eureka Server上獲取注冊信息,默認為true register-with-eureka: false #表示是否從Eureka Server上獲取注冊信息,默認為true serviceUrl: # 設置與Eureka Server交互的地址,查詢服務和注冊服務都需要依賴這個地址。默認是http://localhost:8761/eureka ;多個地址可使用 , 分隔 defaultZone: http://localhost:${server.port}/eureka/

@EnableEurekaServer

@EnableEurekaServer@SpringBootApplicationpublic class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); }}

運行

此時還沒有客戶端服務注冊進來。

三、客戶端

yml配置

spring: application: name: spring-cloud-providerserver: port: 8010eureka: client: service-url: defaultZone: http://localhost:7001/eureka/

@EnableEurekaClient

@SpringBootApplication@EnableEurekaClient@EnableDiscoveryClientpublic class EurekaProviderApplication { public static void main(String[] args) { SpringApplication.run(EurekaProviderApplication.class, args); }}

也可以使用@EnableDiscoveryClient

@EnableEurekaClient 只支持Eureka注冊中心,@EnableDiscoveryClient 支持Eureka、Zookeeper、Consul 這三個注冊中心。

四、Eureka集群

理論上來講,因為服務消費者本地緩存了服務提供者的地址,即使Eureka Server宕機,也不會影響服務之間的調用,但是一旦新服務上線,已經在緩存在本地的服務提供者不可用了,服務消費者也無法知道,所以保證Eureka Server的高可用還是很有必要的。

實際上Eureka集群就是互相注冊。我搭建了兩臺:

不同節點的Eureka Server通過Replicate(復制)進行數據同步 參數eureka.client.serviceUrl.defaultZone,分別配置對方的地址作為Eureka Client進行相互注冊。

.

Eureka 集群單例多啟動

本地修改host:

127.0.0.1 Eureka7001.com 127.0.0.1 Eureka7002.com 127.0.0.1 Eureka7003.com

yml配置:

spring: application: name: spring-cloud-eureka-serverserver: port: 7002eureka: instance: hostname: Eureka7001.com client: #eureka默認情況下,把自己當做客戶端來注冊自己,所以我們要禁用它 這里是服務端 fetch-registry: false register-with-eureka: false #不去檢索eureka服務 serviceUrl: # 設置與Eureka Server交互的地址,查詢服務和注冊服務都需要依賴這個地址。默認是http://localhost:8761/eureka ; #多個地址可使用 , 分隔 #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #集群:7001 注冊到 7002 #defaultZone: http://Eureka7002.com:7002/eureka/ #集群:7002 注冊到 7001 defaultZone: http://Eureka7001.com:7001/eureka/

把同一個Eureka 改配置啟動兩次,即可實現。

注意服務注冊時,兩臺Eureka 都要寫

五、Eureka自我保護

默認情況下,當eureka server在一定時間內沒有收到實例的心跳,便會把該實例從注冊表中刪除(默認是90秒),但是,如果短時間內丟失大量的實例心跳,便會觸發eureka server的自我保護機制。

Eureka在運行期間會統計心跳失敗的比例,在15分鐘內是否低于85%,如果出現了低于的情況,Eureka Server會將當前的實例注冊信息保護起來,同時提示一個警告,一旦進入保護模式,Eureka Server將會嘗試保護其服務注冊表中的信息,不再刪除服務注冊表中的數據。也就是不會注銷任何微服務。

該保護機制的目的是避免網絡連接故障,在發生網絡故障時,微服務和注冊中心之間無法正常通信,但服務本身是健康的,不應該注銷該服務。

禁止自我保護

eureka: instance: hostname: localhost server: enable-self-preservation: false #關閉自我保護機制

修改心跳時間

eureka: server: #開啟自我保護模式 enable-self-preservation: false #清理無效節點,默認60*1000毫秒,即60秒 eviction-interval-timer-in-ms: 5000

總結

以上是生活随笔為你收集整理的eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。