Spring Cloud Netflix—如何運行Eureka服務器

示例eureka服務器;html

@SpringBootApplication @EnableEurekaServer public class Application {java

public static void main(String[] args) {
    new SpringApplicationBuilder(Application.class).web(true).run(args);
}
複製代碼

} 服務器具備一個帶有UI的主頁,而且根據/eureka/*下的正常Eureka功能的HTTP API端點。web

Eureka背景閱讀:看助焊劑電容和谷歌小組討論。spring

提示 因爲Gradle的依賴關係解決規則和父母的bom功能缺少,只要依靠spring-cloud-starter-eureka-server就可能致使應用程序啓動失敗。要解決這個問題,必須添加Spring Boot Gradle插件,而且必須導入Spring雲啓動器父母bom:後端

的build.gradle緩存

buildscript { dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE") } }服務器

apply plugin: "spring-boot"app

dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Brixton.RELEASE" } } 高可用性,區域和地區maven

Eureka服務器沒有後端存儲,可是註冊表中的服務實例都必須發送心跳以保持其註冊更新(所以能夠在內存中完成)。客戶端還具備eureka註冊的內存緩存(所以,他們沒必要爲註冊表提供每一個服務請求)。spring-boot

默認狀況下,每一個Eureka服務器也是一個Eureka客戶端,而且須要(至少一個)服務URL來定位對等體。若是您不提供該服務將運行和工做,但它將淋浴您的日誌與大量的噪音沒法註冊對等體。

關於區域和區域的客戶端Ribbon支持的詳細信息,請參見下文。

獨立模式

只要存在某種監視器或彈性運行時間(例如Cloud Foundry),兩個高速緩存(客戶機和服務器)和心跳的組合使獨立的Eureka服務器對故障具備至關的彈性。在獨立模式下,您可能更喜歡關閉客戶端行爲,所以不會繼續嘗試而且沒法訪問其對等體。例:

application.yml(Standalone Eureka Server)

server: port: 8761

eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://{eureka.instance.hostname}:{server.port}/eureka/ 請注意,serviceUrl指向與本地實例相同的主機。

同行意識

經過運行多個實例並請求他們相互註冊,可使Eureka更具彈性和可用性。事實上,這是默認的行爲,因此你須要作的只是爲對方添加一個有效的serviceUrl,例如

application.yml(Two Peer Aware 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配置文件中運行,在2臺主機(peer1和peer2)上運行相同的服務器。您可使用此配置來測試單個主機上的對等體感知(經過操做/etc/hosts來解析主機名,在生產中沒有太多價值)。事實上,若是您在一臺知道本身的主機名的機器上運行(默認狀況下使用java.net.InetAddress查找),則不須要eureka.instance.hostname。

您能夠向系統添加多個對等體,只要它們至少一個邊緣彼此鏈接,則它們將在它們之間同步註冊。若是對等體在物理上分離(在數據中心內或多個數據中心之間),則系統原則上能夠分裂腦型故障。

喜歡IP地址

在某些狀況下,Eureka優先發布服務的IP地址而不是主機名。將eureka.instance.preferIpAddress設置爲true,而且當應用程序向eureka註冊時,它將使用其IP地址而不是其主機名。

源碼來源:http://minglisoft.cn/honghu/technology.html
相關文章
相關標籤/搜索