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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

注册中心—组件—Eureka

發(fā)布時(shí)間:2024/4/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 注册中心—组件—Eureka 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文作者:純潔的微笑

原文地址:springcloud(二):注冊(cè)中心Eureka

目錄

一、單點(diǎn)

1、pom中添加依賴(lài)

2、啟動(dòng)代碼中添加@EnableEurekaServer注解

3、配置文件

二、集群

1、雙節(jié)點(diǎn)注冊(cè)中心

2、eureka集群使用


Eureka是spring cloud中的一個(gè)負(fù)責(zé)服務(wù)注冊(cè)與發(fā)現(xiàn)的組件。遵循著CAP理論中的A(可用性)P(分區(qū)容錯(cuò)性)。一個(gè)Eureka中分為eureka server和eureka client。其中eureka server是作為服務(wù)的注冊(cè)與發(fā)現(xiàn)中心。eureka client既可以作為服務(wù)的生產(chǎn)者,又可以作為服務(wù)的消費(fèi)者。具體結(jié)構(gòu)如下圖:

上圖中我們首先會(huì)啟動(dòng)一個(gè)或多個(gè)Eureka server,這些eureka server同步保留著所有的服務(wù)信息。然后我們啟動(dòng)不同的eureka client,向服務(wù)端發(fā)起服務(wù)注冊(cè)和服務(wù)查詢(xún)。不論我們是向那個(gè)eureka server進(jìn)行的注冊(cè),最終都會(huì)同步給所有配置好的eureka server。我們獲取的服務(wù)信息,也同樣都是一致的。spring cloud已經(jīng)幫我實(shí)現(xiàn)了服務(wù)注冊(cè)中心,我們只需要很簡(jiǎn)單的幾個(gè)步驟就可以完成。

一、單點(diǎn)

1、pom中添加依賴(lài)

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> </dependencies>

2、啟動(dòng)代碼中添加@EnableEurekaServer注解

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

3、配置文件

在默認(rèn)設(shè)置下,該服務(wù)注冊(cè)中心也會(huì)將自己作為客戶(hù)端來(lái)嘗試注冊(cè)它自己,所以我們需要禁用它的客戶(hù)端注冊(cè)行為,在application.properties添加以下配置:

spring.application.name=spring-cloud-eurekaserver.port=8000 eureka.client.register-with-eureka=false eureka.client.fetch-registry=falseeureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
  • eureka.client.register-with-eureka?:表示是否將自己注冊(cè)到Eureka Server,默認(rèn)為true。
  • eureka.client.fetch-registry?:表示是否從Eureka Server獲取注冊(cè)信息,默認(rèn)為true。
  • eureka.client.serviceUrl.defaultZone?:設(shè)置與Eureka Server交互的地址,查詢(xún)服務(wù)和注冊(cè)服務(wù)都需要依賴(lài)這個(gè)地址。默認(rèn)是http://localhost:8761/eureka ;多個(gè)地址可使用 , 分隔。

啟動(dòng)工程后,訪問(wèn):http://localhost:8000/,可以看到下面的頁(yè)面,其中還沒(méi)有發(fā)現(xiàn)任何服務(wù)

?

二、集群

注冊(cè)中心這么關(guān)鍵的服務(wù),如果是單點(diǎn)話,遇到故障就是毀滅性的。在一個(gè)分布式系統(tǒng)中,服務(wù)注冊(cè)中心是最重要的基礎(chǔ)部分,理應(yīng)隨時(shí)處于可以提供服務(wù)的狀態(tài)。為了維持其可用性,使用集群是很好的解決方案。Eureka通過(guò)互相注冊(cè)的方式來(lái)實(shí)現(xiàn)高可用的部署,所以我們只需要將Eureke Server配置其他可用的serviceUrl就能實(shí)現(xiàn)高可用部署。

1、雙節(jié)點(diǎn)注冊(cè)中心

首次我們嘗試一下雙節(jié)點(diǎn)的注冊(cè)中心的搭建。

1)創(chuàng)建application-peer1.properties,作為peer1服務(wù)中心的配置,并將serviceUrl指向peer2

spring.application.name=spring-cloud-eureka server.port=8000 eureka.instance.hostname=peer1eureka.client.serviceUrl.defaultZone=http://peer2:8001/eureka/

2)創(chuàng)建application-peer2.properties,作為peer2服務(wù)中心的配置,并將serviceUrl指向peer1

spring.application.name=spring-cloud-eureka server.port=8001 eureka.instance.hostname=peer2eureka.client.serviceUrl.defaultZone=http://peer1:8000/eureka/

3)host轉(zhuǎn)換:在hosts文件中加入如下配置

127.0.0.1 peer1 127.0.0.1 peer2

4)打包啟動(dòng):依次執(zhí)行下面命令

#打包 mvn clean package # 分別以peer1和peeer2 配置信息啟動(dòng)eureka java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

依次啟動(dòng)完成后,瀏覽器輸入:http://localhost:8000/?效果圖如下:

?

根據(jù)圖可以看出peer1的注冊(cè)中心DS Replicas已經(jīng)有了peer2的相關(guān)配置信息,并且出現(xiàn)在available-replicas中。我們手動(dòng)停止peer2來(lái)觀察,發(fā)現(xiàn)peer2就會(huì)移動(dòng)到unavailable-replicas一欄中,表示peer2不可用。到此雙節(jié)點(diǎn)的配置已經(jīng)完成。

2、eureka集群使用

在生產(chǎn)中我們可能需要三臺(tái)或者大于三臺(tái)的注冊(cè)中心來(lái)保證服務(wù)的穩(wěn)定性,配置的原理其實(shí)都一樣,將注冊(cè)中心分別指向其它的注冊(cè)中心。這里只介紹三臺(tái)集群的配置情況,其實(shí)和雙節(jié)點(diǎn)的注冊(cè)中心類(lèi)似,每臺(tái)注冊(cè)中心分別又指向其它兩個(gè)節(jié)點(diǎn)即可,使用application.yml來(lái)配置。application.yml配置詳情如下:

--- spring:application:name: spring-cloud-eurekaprofiles: peer1 server:port: 8000 eureka:instance:hostname: peer1client:serviceUrl:defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/ --- spring:application:name: spring-cloud-eurekaprofiles: peer2 server:port: 8001 eureka:instance:hostname: peer2client:serviceUrl:defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/ --- spring:application:name: spring-cloud-eurekaprofiles: peer3 server:port: 8002 eureka:instance:hostname: peer3client:serviceUrl:defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/

分別以peer1、peer2、peer3的配置參數(shù)啟動(dòng)eureka注冊(cè)中心。

java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2 java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3

依次啟動(dòng)完成后,瀏覽器輸入:http://localhost:8000/?效果圖如下:

可以在peer1中看到了peer2、peer3的相關(guān)信息。至此eureka集群也已經(jīng)完成了

示例:示例代碼-github、示例代碼-碼云

參考:Peer Awareness

總結(jié)

以上是生活随笔為你收集整理的注册中心—组件—Eureka的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。