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.ipaddress
eureka.instance.prefer-ip-address
eureka.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...