示例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://{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