SpringCloud 同行意識

2023-11-22 11:36 更新

通過運(yùn)行多個實(shí)例并要求它們彼此注冊,可以使Eureka更具彈性和可用性。實(shí)際上,這是默認(rèn)行為,因此要使其正常工作,您需要做的就是向?qū)Φ润w添加有效的serviceUrl,如以下示例所示:

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

---
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配置文件中運(yùn)行,在兩個主機(jī)(peer1peer2)上運(yùn)行同一服務(wù)器。您可以通過操縱/etc/hosts解析主機(jī)名來使用此配置來測試單個主機(jī)上的對等感知(在生產(chǎn)環(huán)境中這樣做沒有太大價值)。實(shí)際上,如果您在知道其主機(jī)名的計(jì)算機(jī)上運(yùn)行,??則不需要eureka.instance.hostname(默認(rèn)情況下,使用java.net.InetAddress進(jìn)行查找)。

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

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

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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號