當前位置:
首頁 > 知識 > SpringCloud如何實現Eureka集群、HA機制?

SpringCloud如何實現Eureka集群、HA機制?

現在已經成功的實現了一個Eureka伺服器,但是現在屬於單節點的服務運行過程,如果說現在單節點的Eureka出現了錯誤,導致無法使用,那麼對於所有的微服務架構就將出現整體的癱瘓,這樣就需要進行Eureka集群搭建,同時利用集群可以有效的實現HA的處理機制,如果要進行集群的搭建一定要選擇兩台或以上的電腦完成。

【microcloud-eureka-7001】為了方便進行Eureka操作,建議將「microcloud-eureka-7001」進行複製:microcloud-eureka-7002、microcloud-eureka-7003

修改hosts配置文件,進行多個主機名稱的定義:

127.0.0.1eureka-7001.com

127.0.0.1eureka-7002.com

127.0.0.1eureka-7003.com

【microcloud-eureka-7001】修改application.yml配置文件,這個配置文件主要注意埠號以及Eureka服務的註冊位置。

server:

port: 7001

eureka:

instance: #eureka實例定義

hostname: eureka-7001.com #設置清理的間隔時間,默認這個時間使用的毫秒單單位(默認是60秒)

client: #客戶端進行Eureka註冊的配置

service-url:

defaultZone: http://eureka:eureka@eureka-7002.com:7002/eureka,http://eureka:eureka@eureka-7003.com:7003/eureka

register-with-eureka: false #當前的微服務不註冊到eureka之中

fetch-registry: false

server:

enable-self-preservation: false #是否要設置成保護模式

eviction-interval-timer-in-ms: 60000 #不通過eureka獲取註冊信息

spring:

application:

name: microcloud-eureka-7001

security:

user:

name: eureka

password: eureka

【microcloud-eureka-7002】修改application.yml配置文件,並修改主類名稱。

server:

port: 7002

eureka:

instance: #eureka實例定義

hostname: eureka-7002.com #設置清理的間隔時間,默認這個時間使用的毫秒單單位(默認是60秒)

client: #客戶端進行Eureka註冊的配置

service-url:

defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka,http://eureka:eureka@eureka-7003.com:7003/eureka

register-with-eureka: false #當前的微服務不註冊到eureka之中

fetch-registry: false

server:

enable-self-preservation: false #是否要設置成保護模式

eviction-interval-timer-in-ms: 60000 #不通過eureka獲取註冊信息

spring:

application:

name: microcloud-eureka-7001

security:

user:

name: eureka

password: eureka

【microcloud-eureka-7003】修改application.yml配置文件,並修改主類名稱。

server:

port: 7003

eureka:

instance: #eureka實例定義

hostname: eureka-7003.com #設置清理的間隔時間,默認這個時間使用的毫秒單單位(默認是60秒)

client: #客戶端進行Eureka註冊的配置

service-url:

defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka,http://eureka:eureka@eureka-7002.com:7002/eureka

register-with-eureka: false #當前的微服務不註冊到eureka之中

fetch-registry: false

server:

enable-self-preservation: false #是否要設置成保護模式

eviction-interval-timer-in-ms: 60000 #不通過eureka獲取註冊信息

spring:

application:

name: microcloud-eureka-7003

security:

user:

name: eureka

password: eureka

啟動所有的Eureka服務,而後進入到每一個服務的後台去觀察運行的副本效果。

登陸7001控制台:http://eureka:eureka@eureka-7001.com:7001/

登陸7002控制台:http://eureka:eureka@eureka-7002.com:7002/

登陸7003控制台:http://eureka:eureka@eureka-7003.com:7003/

【microcloud-provider-dept-8001】修改application.yml配置文件,進行多台主機註冊。

server:

port: 8001

mybatis:

config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路徑

type-aliases-package: com.gwolf.vo # 定義所有操作類的別名所在包

mapper-locations: # 所有的mapper映射文件

- classpath:mybatis/mapper/**/*.xml

spring:

datasource:

type: com.alibaba.druid.pool.DruidDataSource # 配置當前要使用的數據源的操作類型

driver-class-name: com.mysql.cj.jdbc.Driver # 配置MySQL的驅動程序類

url: jdbc:mysql://localhost:3306/mldn_1?serverTimezone=UTC # 資料庫連接地址

username: root # 資料庫用戶名

password: root # 資料庫連接密碼

dbcp2: # 進行資料庫連接池的配置

min-idle: 5 # 資料庫連接池的最小維持連接數

initial-size: 5 # 初始化提供的連接數

max-total: 5 # 最大的連接數

max-wait-millis: 200 # 等待連接獲取的最大超時時間

application:

name: microcloud-provider-dept

eureka:

client: #客戶端進行Eureka註冊的配置

service-url:

defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka,http://eureka:eureka@eureka-7002.com:7002/eureka,http://eureka:eureka@eureka-7003.com:7003/eureka

instance:

instance-id: dept-8001.com #在信息列表中顯示主機名稱

prefer-ip-address: true #訪問的路徑變為IP地址

lease-renewal-interval-in-seconds: 2 #設置心跳的時間間隔(默認是30秒)

lease-expiration-duration-in-seconds: 5 #如果現在超過了5秒的間隔(默認90秒)

info:

app.name: gwolf-microcloud

company.name: www.gwolf.com

build.artifactId: $project.artifactId$

build.version: $project.version$

運行之後該微服務會出現在所有的Eureka主機之中。這樣即使某一台Eureka出現了問題,那麼依然可以保證服務可用。

END


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Adolph談JAVA高端 的精彩文章:

在springboot中配置aop攔截器
SpringCloud實戰開發系列課程-創建部門微服務

TAG:Adolph談JAVA高端 |