国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - Spring Cloud引入Eureka組件,完善服務治理

Spring Cloud引入Eureka組件,完善服務治理

2021-08-04 11:07精靈王 Java教程

這篇文章主要介紹了Spring Cloud引入Eureka組件,完善服務治理的過程詳解,幫助大家更好的理解和使用spring cloud,感興趣的朋友可以了解下

簡介

 

netflix eureka 是一款由 netflix 開源的基于 rest 服務的注冊中心,用于提供服務發現功能。spring cloud eureka 是 spring cloud netflix 微服務套件的一部分,基于 netflix eureka 進行了二次封裝,主要負責完成微服務架構中的服務治理功能。

spring cloud eureka 是一個基于 rest 的服務,并提供了基于 java 的客戶端組件,能夠非常方便的將服務注冊到 spring cloud eureka 中進行統一管理。

部署 eureka server

 

1.創建一個名為 eureka-server 的 spring cloud 的項目(略)

2.引入 eureka-server 依賴(maven)

?
1
2
3
4
<dependency>
 <groupid>org.springframework.cloud</groupid>
 <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
</dependency>

3.開啟 eurekaserver
在啟動類上添加 @enableeurekaserver注解,開啟 eurekaserver 的自動裝配功能。

4.修改服務端口為8761

5.修改 register-with-eureka 配置
添加一個eureka.client.register-with-eureka=false的配置,作為eurekaserver可以不將自己的實例注冊到 eureka server 中,如果是集群部署設置為true(不配置默認值也是true)。

6.修改 fetch-registry 配置
添加一個 eureka.client.fetch-registry=false 的配置,表示不從 eureka server 中獲取 eureka 的注冊表信息,如果是集群部署設置為true(不配置默認值也是true)。

7.添加defaultzone配置
添加一條配置eureka.client.service-url.defaultzone=http://localhost:8761/eureka/(如果不加這個的話又自定義了端口,可能會報錯connect to localhost:8761 timed out)

8.啟動 eureka server,訪問 http://localhost:8761/,如果順利的話可以看到如下成功頁面

Spring Cloud引入Eureka組件,完善服務治理

至此,一個簡單的eureka注冊中心就完成了,后面實戰中的 eureka client 都會注冊到這個注冊中心。上面的demo只是一個單機部署,接下里我們看看我們要部署多個eureka節點時怎么做。

eureka server 集群部署

 

集群部署一般有兩種情況,一是偽集群部署,二是真正的集群部署。

集群部署,我們可以在多臺物理機上部署,這樣多個實例可以用同一個端口,不會出現偽集群端口沖突的問題,更推薦這種方式,性能更高,穩定性也更好。

偽集群部署一般說的是在同一臺物理機器上部署多個節點,這時候端口就必須不一樣,否則啟動的時候會出現端口沖突;

偽集群部署示例:

假設要部署3個節點:master/slave1/slave2

1.在application.yml配置定義三個節點的端口:

?
1
2
3
4
port:
 master: 8761
 slave1: 8762
 slave2: 8763

2.我們可以分別創建三個配置文件application-master.yml、application-slave1.yml、application-slave2.yml,三個配置文件除了有沖突的地方端口不一樣,其他配置完全一樣

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# application-master.yml
server:
 port: ${port.slave1} # 服務端口
 
# application-master.yml
server:
 port: ${port.slave1} # 服務端口
 
# application-slave2slave2.yml
server:
 port: ${port.slave2} # 服務端口
 
# 以下配置三個配置文件都一樣
eureka:
 client:
 register-with-eureka: true #不將自己的實例注冊到 eureka server
 fetch-registry: true #不從 eureka server 中獲取 eureka 的注冊表信息
 service-url:
  defaultzone: http://127.0.0.1:${port.master}/eureka/,http://127.0.0.1:${port.slave1}/eureka/,http://127.0.0.1:${port.slave2}/eureka/
 instance:
 hostname: eureka-server
 server:
 enable-self-preservation: true # 開啟自我保護機制,默認也是開啟的

3.idea 分別以三個不同的profiles啟動

Spring Cloud引入Eureka組件,完善服務治理

4.訪問 http://localhost:8761/ 或者 http://localhost:8762/ 或者 http://localhost:8761/,出現以下類似頁面則代表成功

Spring Cloud引入Eureka組件,完善服務治理

觀察上面的頁面,發現 eureka server 節點均出現在 unavailable-replicas 下,說明集群搭建還是失敗了,那這個問題怎么解決呢?

1.在host添加以下配置

?
1
2
3
127.0.0.1  eureka-server-master
127.0.0.1  eureka-server-slave1
127.0.0.1  eureka-server-slave2

2.修改三個配置文件的defaultzone信息

?
1
2
3
4
eureka:
 client:
 service-url:
  defaultzone: http://eureka-server-master:${port.master}/eureka/,http://eureka-server-slave1:${port.slave1}/eureka/,http://eureka-server-slave2:${port.slave2}/eureka/

3.配置eureka.instance.hostname信息(尤其是在同一臺物理機上配置三個節點時,需要修改為不同的host)

?
1
2
3
4
5
6
7
8
9
10
11
eureka:
    instance:
 hostname: eureka-server-master
 
eureka:
    instance:
 hostname: eureka-server-slave1
 
**eureka:
    instance:
 hostname: eureka-server-slave2

4.重新啟動,訪問http://localhost:8761/ ,其他兩個節點君出現在 available-replicas 選項

Spring Cloud引入Eureka組件,完善服務治理

注意:如果執行完上面還是出現在,請檢查是否配置了 prefer-ip-address = true,true #以ip地址注冊到服務中心,相互注冊使用ip地址,如果是在一臺物理機上,ip都是一個,所以建議設置成false,或者不配置再試試。

部署 eureka client

 

1.創建一個名為eureka-client 的sprintboot的項目(略)

2.引入eureka-client依賴(maven)

?
1
2
3
4
<dependency>
 <groupid>org.springframework.cloud</groupid>
 <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
</dependency>

3.引入spring-boot-starter-web依賴,如果沒有加上spring-boot-starter-web,服務無法正常啟動

?
1
2
3
4
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-web</artifactid>
</dependency>

4.開啟 eurekaclient
在啟動類上加入注解@enableeurekaclient,用于啟用eureka發現配置

5.配置端口為8081

?
1
2
3
4
server.port = 8081
port.master = 8761
port.slave1 = 8762
port.slave2 = 8763

6.配置注冊中心地址

添加配置 eureka.client.serviceurl.defaultzone=http://eureka-server-master:${port.master}/eureka/,http://eureka-server-slave1:${port.slave1}/eureka/,http://eureka-server-slave2:${port.slave2}/eureka/

7.啟動服務,刷新 http://localhost:8761/ 頁面,如果看到了eureka-client應用則表示注冊成功

Spring Cloud引入Eureka組件,完善服務治理

eureka自我保護機制

 

自我保護機制是為了避免因網絡分區故障而導致服務不可用的問題。具體現象為當網絡故障后,所有的服務與 eureka server 之間無法進行正常通信,一定時間后,eureka server 沒有收到續約的信息,將會移除沒有續約的實例。這個時候正常的服務也會被移除掉,所以需要引入自我保護機制來解決這種問題。

當服務提供者出現網絡故障,無法與 eureka server 進行續約,eureka server 會將該實例移除,此時服務消費者從 eureka server 拉取不到對應的信息,實際上服務提供者處于可用的狀態,問題就是這樣產生的。

開啟自我保護機制

?
1
eureka.server.enable-self-preservation=true # 開啟自我保護機制,默認也是開啟的

當服務提供者出現網絡故障,無法與 eureka server 進行續約時,雖然 eureka server 開啟了自我保護模式,但沒有將該實例移除,服務消費者還是可以正常拉取服務提供者的信息,正常發起調用。

但是自我保護機制也有不好的地方,如果服務提供者真的下線了,由于 eureka server 自我保護還處于打開狀態,不會移除任務信息,當服務消費者對服務提供者 b 進行調用時,就會出錯。

自我保護模式有利也有弊,但我們建議在生產環境中還是開啟該功能,默認配置也是開啟的。

完整代碼實例:

總結

 

  1. 使用@enableeurekaserver 注解實現注冊中心
  2. 使用@enableeurekaclient 注冊到注冊中心
  3. eureka server 集群部署的時候需要保證register-with-eureka和 fetch-registry 為true,單機部署可以為false
  4. 生產環境建議開啟自我保護機制

以上就是spring cloud引入eureka組件,完善服務治理的詳細內容,更多關于spring cloud引入eureka組件的資料請關注服務器之家其它相關文章!

延伸 · 閱讀

精彩推薦
  • Java教程Java異常跟蹤棧定義與用法示例

    Java異常跟蹤棧定義與用法示例

    這篇文章主要介紹了Java異常跟蹤棧定義與用法,結合具體實例形式分析了異常處理棧的概念、原理及相關使用技巧,需要的朋友可以參考下...

    chengqiuming10282021-04-30
  • Java教程Mybatis環境搭建和使用實例代碼

    Mybatis環境搭建和使用實例代碼

    MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。本文重點給大家介紹Mybatis的環境搭建和使用實例代碼,需要的朋友參考下吧...

    永恒丶9452021-02-28
  • Java教程詳解快速搭建Spring Boot+Spring MVC

    詳解快速搭建Spring Boot+Spring MVC

    本篇文章主要介紹了詳解快速搭建Spring Boot+Spring MVC,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    theonlytao4502021-03-25
  • Java教程java旋轉二維數組實例

    java旋轉二維數組實例

    這篇文章主要介紹了java旋轉二維數組,以實例形式較為詳細的講述了旋轉二維數的原理與實現方法,需要的朋友可以參考下 ...

    shichen20145612019-12-03
  • Java教程淺談java 中equals和==的區別

    淺談java 中equals和==的區別

    這篇文章主要介紹了java 中equals和==的區別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小...

    獨特潤許多人5552021-07-21
  • Java教程Java生成中間logo的二維碼的示例代碼

    Java生成中間logo的二維碼的示例代碼

    這篇文章主要介紹了Java如何生成中間logo的二維碼,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下 ...

    看云2772020-07-29
  • Java教程一個牛人給Java初學者的建議(必看篇)

    一個牛人給Java初學者的建議(必看篇)

    下面小編就為大家帶來一篇一個牛人給Java初學者的建議(必看篇)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    Java教程網2452020-10-05
  • Java教程springmvc 傳遞和接收數組參數的實例

    springmvc 傳遞和接收數組參數的實例

    下面小編就為大家分享一篇springmvc 傳遞和接收數組參數的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    toto12974885045652021-04-16
主站蜘蛛池模板: 91精品国产乱码久久久久久 | 日韩免费在线 | 国产精品精品视频一区二区三区 | 91色视频在线观看 | 伊人99综合 | 玖玖精品在线 | 国产成人精品一区二区三区视频 | 青青五月天 | 久久成人精品视频 | 日本黄色美女视频 | 精品美女久久 | 午夜视频在线看 | 欧美日韩国产一区二区三区 | 激情欧美日韩一区二区 | 国产一级二级毛片 | 欧美日韩国产在线 | 日本不卡免费新一二三区 | 一级片视频在线观看 | 韩国三级午夜理伦三级三 | 中文字幕一区二区三区日韩精品 | 一级片在线观看 | 欧美日韩在线一区二区 | 亚洲精品日本 | 国产一级在线 | 欧美日韩成人在线观看 | 欧美狠狠操 | 亚洲精品偷拍自拍 | 成人久久一区 | 91精品视频在线播放 | 国产成人亚洲精品 | 内地农村三片在线观看 | 日韩欧美一区二区三区免费观看 | 黄毛片网站 | av在线播放不卡 | 国产精品久久久久免费 | 国产中文字幕在线观看 | 91久久国产露脸精品国产护士 | 亚洲国产精品一区二区三区 | 我和我的祖国电影在线观看免费版高清 | 免费观看av毛片 | 国产真实精品久久二三区 |