在Spring Cloud體系中,eureka承擔着服務註冊與發現的任務,在整個微服務架構中起着整合做用。eureka的一些概念:java
provider,指一個將自身的功能接口暴露出來的應用。spring
consumer,指須要藉助provider提供的功能完成自身業務的應用。json
當provider應用啓動時,會將自身的元數據,好比IP地址,端口,應用名等註冊到eureka server中。架構
provider每擱固定的時間段(默認30秒),向eureka server彙報一次自身情況,若是eureka server在固定的時間段(默認90秒)內沒有收到某一provider的服務續約的請求,將會把這個provider實例從服務列表中剔除。app
consumer應用會定時從eureka server獲取服務註冊列表信息以供自身進行遠程調用,consumer應用默認每30秒會更新一次註冊列表信息,默認eureka server和consumer應用使用壓縮的json進行交互。ide
provider應用關閉時,會向eureka server發送下線請求,eureka server收到請求後會將此provider實例信息從服務註冊列表中剔除。微服務
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
server: port: 8761 # 服務端口 spring: application: name: eurekaServer # 服務名 eureka: environment: devlopment # eureka server環境 instance: lease-renewal-interval-in-seconds: 10 # 發送心跳的間隔時間 lease-expiration-duration-in-seconds: 30 # 若這個時間段沒收到心跳則移除該instance prefer-ip-address: true # 實例名稱顯示IP配置 client: serviceUrl: defaultZone: http://localhost:8761/eureka/ # eureka server的地址 register-with-eureka: true # 此服務是否註冊到eureka server上 server: enable-self-preservation: false # 關閉自我保護模式 eviction-interval-timer-in-ms: 4000 # 掃描失效服務間隔(單位ms, 默認是60 * 1000) wait-time-in-ms-when-sync-empty: 0 debug: true # debug 模式
@SpringBootApplication @EnableEurekaServer public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
只需這簡單的配置,就已經搭建了一臺eureka server應用。url
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
server: port: 8080 debug: true eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-address: true #將本身的IP註冊到eureka server上,如不配置則表示註冊微服務所在操做系統的hostname到eureka server
/** * TODO * Created by jinzili on 09/06/2017. */ @SpringBootApplication @EnableDiscoveryClient public class ProviderUserApplication { public static void main(String[] args) { SpringApplication.run(ProviderUserApplication.class, args); } }
如今咱們已經搭建好了一臺Eureka Server 和一臺provider,訪問http://localhost:8761看看效果! 操作系統
perfect!debug
咱們的兩個服務已經註冊到了Eureka Server上,上圖的紅字是由於咱們在Eureka Server服務的application.yml配置了eureka.server.enable-self-preservation: false 關閉了自我保護模式,推薦在開發中咱們使用此配置,能夠及時刷新服務的最新狀態,可是切記在生產環境使用要開啓自我保護模式。