SpringCloud 同行意識

2023-11-22 11:36 更新

通過運行多個實例并要求它們彼此注冊,可以使Eureka更具彈性和可用性。實際上,這是默認行為,因此要使其正常工作,您需要做的就是向對等體添加有效的serviceUrl,如以下示例所示:

application.yml(兩個對等感知Eureka服務器)。 

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2/eureka/

---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/

在前面的示例中,我們有一個YAML文件,該文件可以通過在不同的Spring配置文件中運行,在兩個主機(peer1peer2)上運行同一服務器。您可以通過操縱/etc/hosts解析主機名來使用此配置來測試單個主機上的對等感知(在生產環(huán)境中這樣做沒有太大價值)。實際上,如果您在知道其主機名的計算機上運行,??則不需要eureka.instance.hostname(默認情況下,使用java.net.InetAddress進行查找)。

您可以將多個對等方添加到系統(tǒng),并且只要它們都通過至少一個邊緣相互連接,它們就可以在彼此之間同步注冊。如果對等方在物理上是分開的(在一個數(shù)據(jù)中心內部或在多個數(shù)據(jù)中心之間),則該系統(tǒng)原則上可以解決“ 裂腦 ”型故障。您可以將多個對等方添加到系統(tǒng)中,并且只要它們都直接相互連接,它們就可以在彼此之間同步注冊。

application.yml(三個對等感知Eureka服務器)。 

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/,http://peer2/eureka/,http://peer3/eureka/

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1

---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2

---
spring:
  profiles: peer3
eureka:
  instance:
    hostname: peer3


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號