Spring Cloud註冊中心高可用搭建

2022-09-07 16:00:13 字數 3680 閱讀 7470

spring cloud的註冊中心可以由eureka、consul、zookeeper、etcd等來實現,這裡推薦使用spring cloud eureka來實現註冊中心,它基於netfilix的eureka做了二次封裝,完成分布式服務中服務治理的功能,微服務系統中的服務註冊與發現都通過這個註冊中心來進行管理。

之前的文章基礎上加入spring cloud的依賴,現在再加入註冊中心eureka server的依賴。

org.springframework.cloudgroupid>

spring-cloud-starter-eureka-serverartifactid>

dependency>

dependencies>

在包根目錄下加入啟動類:

@enableeurekaserver

public

class

public

static

void

main(string args)

}

@enableeurekaserver註解即開啟註冊中心伺服器的功能。

spring: 

name: register-center

profiles:

active: register-center1

eureka:

instance:

prefer-ip

-address: true

instance-id: $:$

lease-expiration

-duration

-in-seconds: $

lease-renewal

-interval

-in-seconds: $

server:

enable-self

-preservation: $

eviction-interval

-timer

-in-ms: $

client:

register-with

-eureka: true

fetch-registry: true

serviceurl:

defaultzone: $

---

spring:

profiles: register-center1

server:

port: $

---spring:

profiles: register-center2

server:

port: $

這裡做了兩台註冊中心的高可用配置register-center1,register-center2,也可以做多台,既然是高可用,每個註冊中心都向別的註冊中心註冊自己。

${}裡面的配置由m**en resource filter來打包進行控制,不同的環境使用不同的配置檔案。

=6:配置應用名稱,在註冊中心中顯示的服務註冊名稱。

spring.cloud.client.ipaddresseureka.instance.prefer-ip-addresseureka.instance.instance-id:配置在註冊中心註冊的唯一例項id。

eureka.instance.lease-expiration-duration-in-seconds:指示eureka伺服器在接收到最後乙個心跳之後等待的時間(秒),然後才能從此檢視中刪除此例項,並禁止此例項的流量。將此值設定得太長可能意味著流量可以路由到例項,即使例項不存在。設定此值太小可能意味著,由於臨時網路故障,例項可能會被取消流量。此值將設定為至少高於lease-renewal-interval-in-seconds中指定的值。

eureka.instance.lease-renewal-interval-in-seconds:指示eureka客戶端需要向eureka伺服器傳送心跳以指示它仍然存在的頻率(以秒為單位)。如果在lease-expiration-duration-in-seconds中指定的時間段內未收到心跳線,則eureka伺服器將從其檢視中刪除該例項,因此不允許此例項的流量。請注意,如果該例項實現healthcheckcallback,然後決定使其本身不可用,則該例項仍然可能無法訪問流量。

eureka.server.enable-self-preservation:配置註冊中心是否開啟服務的自我保護功能。

eureka.server.eviction-interval-timer-in-ms:配置註冊中心清理無效節點的時間間隔,預設60000毫秒,即60秒。

eureka.client.register-with-eureka:配置為true指示此例項將其資訊註冊到eureka伺服器以供其他人發現。在某些情況下,您不希望發現例項,而您只想發現其他例項配置為false。

eureka.client.fetch-registry:指示該客戶端是否應從eureka伺服器獲取eureka登錄檔資訊。。

eureka.client.serviceurl.defaultzone這樣乙個兩個註冊心的eureka server就搭好了,啟動的時候使用不同的profile來指定不同的埠。

spring-boot:run -drun

.profiles=register-center1

-p dev

spring-boot:run -drun

.profiles=register-center2

-p dev

推薦閱讀

面經:史上最全j**a多執行緒面試題及答案

springcloud 註冊中心

1.eureka服務註冊與發現 分為 eureka server服務中心和eureka client服務註冊 1 eureka server boot版本 org.springframework.boot spring boot starter parent 2.0.0.m3 cloud版本 org...

spring cloud 服務註冊中心

這裡使用的spring boot 版本為 2.1.2.release1.pom部分 父 pom dependencymanagement org.springframework.cloud spring cloud dependencies greenwich.release pom import ...

springcloud之註冊中心

心跳 續約 提供者定期通過http方式向eureka重新整理自己的狀態 1.搭建eurekaserver 建立專案模板引入eureka 配置yml server port 10086 埠 spring name eureka server 應用名稱,會在eureka中顯示 eureka client...