激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springcloud實現注冊中心Eureka

springcloud實現注冊中心Eureka

2021-03-30 11:42純潔的蟲紙 Java教程

這篇文章主要介紹了springcloud實現注冊中心Eureka,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

eureka是netflix開源的一款提供服務注冊和發現的產品,它提供了完整的service registry和service discovery實現。也是springcloud體系中最重要最核心的組件之一。

背景介紹

服務中心

服務中心又稱注冊中心,管理各種服務功能包括服務的注冊、發現、熔斷、負載、降級等,比如dubbo admin后臺的各種功能。

有了服務中心調用關系會有什么變化,畫幾個簡圖來幫忙理解

項目a調用項目b

正常調用項目a請求項目b

springcloud實現注冊中心Eureka

有了服務中心之后,任何一個服務都不能直接去掉用,都需要通過服務中心來調用

springcloud實現注冊中心Eureka

項目a調用項目b,項目b在調用項目c

springcloud實現注冊中心Eureka

這時候調用的步驟就會為兩步:第一步,項目a首先從服務中心請求項目b服務器,然后項目b在從服務中心請求項目c服務。

springcloud實現注冊中心Eureka

上面的項目只是兩三個相互之間的簡單調用,但是如果項目超過20個30個呢,在15年底的時候我司分布式的項目就達到了二十幾個,畫一張圖來描述幾十個項目之間的相互調用關系全是線條,任何其中的一個項目改動,就會牽連好幾個項目跟著重啟,巨麻煩而且容易出錯。通過服務中心來獲取服務你不需要關注你調用的項目ip地址,由幾臺服務器組成,每次直接去服務中心獲取可以使用的服務去調用既可。

由于各種服務都注冊到了服務中心,就有了去做很多高級功能條件。比如幾臺服務提供相同服務來做均衡負載;監控服務器調用成功率來做熔斷,移除服務列表中的故障點;監控服務調用時間來對不同的服務器設置不同的權重等等。

說eureka之前我先八卦一下netflix

netflix

以下介紹來自于百度百科:

netflix是一家美國公司,在美國、加拿大提供互聯網隨選流媒體播放,定制dvd、藍光光碟在線出租業務。該公司成立于1997年,總部位于加利福尼亞州洛斯蓋圖,1999年開始訂閱服務。2009年,該公司可提供多達10萬部dvd電影,并有1千萬的訂戶。2007年2月25日,netflix宣布已經售出第10億份dvd。his一份報告中表示,2011年netflix網絡電影銷量占據美國用戶在線電影總銷量的45%。

我第一次看到這個單詞的時候,是在各種美劇或者電影的開頭,netflix拍攝的代表性的美劇有《紙牌屋》、《毒梟》、《怪奇物語》。后來研究springcloud的時候發現了netflix公司,就在想它們是不是同一家公司,經過核對github上面郵件后綴判定確實是同一家公司,其實springcloud的微服務就基于netflix公司的開源產品來做的。

netflix的開源框架組件已經在netflix的大規模分布式微服務環境中經過多年的生產實戰驗證,正逐步被社區接受為構造微服務框架的標準組件。spring cloud開源產品,主要是基于對netflix開源組件的進一步封裝,方便spring開發人員構建微服務基礎框架。對于一些打算構建微服務框架體系的公司來說,充分利用或參考借鑒netflix的開源微服務組件(或spring cloud),在此基礎上進行必要的企業定制,無疑是通向微服務架構的捷徑。

eureka

按照官方介紹:

eureka is a rest (representational state transfer) based service that is primarily used in the aws cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

eureka 是一個基于 rest 的服務,主要在 aws 云中使用, 定位服務來進行中間層服務器的負載均衡和故障轉移。

spring cloud 封裝了 netflix 公司開發的 eureka 模塊來實現服務注冊和發現。eureka 采用了 c-s 的設計架構。eureka server 作為服務注冊功能的服務器,它是服務注冊中心。而系統中的其他微服務,使用 eureka 的客戶端連接到 eureka server,并維持心跳連接。這樣系統的維護人員就可以通過 eureka server 來監控系統中各個微服務是否正常運行。spring cloud 的一些其他模塊(比如zuul)就可以通過 eureka server 來發現系統中的其他微服務,并執行相關的邏輯。

eureka由兩個組件組成:eureka服務器和eureka客戶端。eureka服務器用作服務注冊服務器。eureka客戶端是一個java客戶端,用來簡化與服務器的交互、作為輪詢負載均衡器,并提供服務的故障切換支持。netflix在其生產環境中使用的是另外的客戶端,它提供基于流量、資源利用率以及出錯狀態的加權負載均衡。

用一張圖來認識以下:

springcloud實現注冊中心Eureka

上圖簡要描述了eureka的基本架構,由3個角色組成:

1、eureka server

  1. 提供服務注冊和發現

2、service provider

  1. 服務提供方
  2. 將自身服務注冊到eureka,從而使服務消費方能夠找到

3、service consumer

  1. 服務消費方
  2. 從eureka獲取注冊服務列表,從而能夠消費服務

案例實踐

eureka server

spring cloud已經幫我實現了服務注冊中心,我們只需要很簡單的幾個步驟就可以完成。

1、pom中添加依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<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、添加啟動代碼中添加@enableeurekaserver注解

?
1
2
3
4
5
6
7
8
@springbootapplication
@enableeurekaserver
public class springcloudeurekaapplication {
 
  public static void main(string[] args) {
    springapplication.run(springcloudeurekaapplication.class, args);
  }
}

3、配置文件

在默認設置下,該服務注冊中心也會將自己作為客戶端來嘗試注冊它自己,所以我們需要禁用它的客戶端注冊行為,在application.properties添加以下配置:

?
1
2
3
4
5
6
7
spring.application.name=spring-cloud-eureka
 
server.port=8000
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
 
eureka.client.serviceurl.defaultzone=http://localhost:${server.port}/eureka/
  1. eureka.client.register-with-eureka :表示是否將自己注冊到eureka server,默認為true。
  2. eureka.client.fetch-registry :表示是否從eureka server獲取注冊信息,默認為true。
  3. eureka.client.serviceurl.defaultzone :設置與eureka server交互的地址,查詢服務和注冊服務都需要依賴這個地址。默認是http://localhost:8761/eureka ;多個地址可使用 , 分隔。

啟動工程后,訪問:http://localhost:8000/,可以看到下面的頁面,其中還沒有發現任何服務

springcloud實現注冊中心Eureka

集群

注冊中心這么關鍵的服務,如果是單點話,遇到故障就是毀滅性的。在一個分布式系統中,服務注冊中心是最重要的基礎部分,理應隨時處于可以提供服務的狀態。為了維持其可用性,使用集群是很好的解決方案。eureka通過互相注冊的方式來實現高可用的部署,所以我們只需要將eureke server配置其他可用的serviceurl就能實現高可用部署。

雙節點注冊中心

首次我們嘗試一下雙節點的注冊中心的搭建。

1、創建application-peer1.properties,作為peer1服務中心的配置,并將serviceurl指向peer2

?
1
2
3
4
5
spring.application.name=spring-cloud-eureka
server.port=8000
eureka.instance.hostname=peer1
 
eureka.client.serviceurl.defaultzone=http://peer2:8001/eureka/

2、創建application-peer2.properties,作為peer2服務中心的配置,并將serviceurl指向peer1

?
1
2
3
4
5
spring.application.name=spring-cloud-eureka
server.port=8001
eureka.instance.hostname=peer2
 
eureka.client.serviceurl.defaultzone=http://peer1:8000/eureka/

3、host轉換

在hosts文件中加入如下配置

?
1
2
127.0.0.1 peer1
127.0.0.1 peer2

4、打包啟動

依次執行下面命令

?
1
2
3
4
5
#打包
mvn clean package
# 分別以peer1和peeer2 配置信息啟動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

依次啟動完成后,瀏覽器輸入:http://localhost:8000/ 效果圖如下:

springcloud實現注冊中心Eureka

根據圖可以看出peer1的注冊中心ds replicas已經有了peer2的相關配置信息,并且出現在available-replicas中。我們手動停止peer2來觀察,發現peer2就會移動到unavailable-replicas一欄中,表示peer2不可用。

到此雙節點的配置已經完成。

eureka集群使用

在生產中我們可能需要三臺或者大于三臺的注冊中心來保證服務的穩定性,配置的原理其實都一樣,將注冊中心分別指向其它的注冊中心。這里只介紹三臺集群的配置情況,其實和雙節點的注冊中心類似,每臺注冊中心分別又指向其它兩個節點即可,使用application.yml來配置。

application.yml配置詳情如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
---
spring:
 application:
  name: spring-cloud-eureka
 profiles: peer1
server:
 port: 8000
eureka:
 instance:
  hostname: peer1
 client:
  serviceurl:
   defaultzone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
---
spring:
 application:
  name: spring-cloud-eureka
 profiles: peer2
server:
 port: 8001
eureka:
 instance:
  hostname: peer2
 client:
  serviceurl:
   defaultzone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
---
spring:
 application:
  name: spring-cloud-eureka
 profiles: peer3
server:
 port: 8002
eureka:
 instance:
  hostname: peer3
 client:
  serviceurl:
   defaultzone: http://peer1:8000/eureka/,http://peer2:8001/eureka/

分別以peer1、peer2、peer3的配置參數啟動eureka注冊中心。

?
1
2
3
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

依次啟動完成后,瀏覽器輸入:http://localhost:8000/ 效果圖如下:

springcloud實現注冊中心Eureka

可以在peer1中看到了peer2、peer3的相關信息。至此eureka集群也已經完成了

示例代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/ityouknow/article/details/72085662

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久福利小视频 | 黄色av网站免费 | 欧美国产一区二区三区 | 欧美人与牲禽动交精品一区 | 日日噜噜噜噜久久久精品毛片 | 欧美一级黄色影院 | 国产毛片自拍 | 欧美一区永久视频免费观看 | 免看黄大片aa | 九九热视频在线免费观看 | 久久久电影电视剧免费看 | 免费在线看a | 暴力强行进如hdxxx | 免费看性xxx高清视频自由 | 狠狠干五月| 免费的性生活视频 | 国产美女一区二区在线观看 | 国产1区2区3区中文字幕 | 素人视频免费观看 | 成人羞羞在线观看网站 | 午夜神马电影网 | 99爱国产精品| 男人天堂新地址 | 成人偷拍片视频在线观看 | 二区三区四区视频 | 99re66热这里只有精品8 | 黑人一级片 | 911色_911色sss主站色播 | 成人免费自拍视频 | 中文字幕国产一区 | 一级黄色免费大片 | 欧美日韩在线视频一区 | 国产亚洲精品美女久久久 | 涩涩天堂 | 成人不卡在线观看 | 在线免费观看毛片 | 爱看久久 | 成人一级黄色片 | 日韩字幕在线 | 中文字幕涩涩久久乱小说 | qyl在线视频精品免费观看 |