最近線上的接口出了一些問題,有一些可能不是代碼的問題,可是因爲是測試和其餘方面的同事爆出來的,因此感受對接口的監控應該提上日程。spring
通過搜索發現,spring cloud的eureka就是專門作這方面工做的。架構
下面一段是《spring cloud 微服務實戰》一書中對eureka的簡單介紹:app
Spring Cloud Eureka 是Spring Cloud Netflix 微服務套件中的一部分, 它基於Netflix Eureka 作了二次封裝, 主要負責完成微服務架構中的服務治理功能。spring-boot
Spring Cloud 經過爲Eureka 增長了Spring Boot 風格的自動化配置,咱們只需經過簡單引入依賴和註解配置就能讓Spring Boot 構建的微服務應用輕鬆地與Eureka 服務治理體系進行整合。微服務
• 服務註冊中心:測試
Eureka 提供的服務端, 提供服務註冊與發現的功能, 通常被稱做eureka-server。
• 服務提供者:fetch
提供服務的應用, 能夠是Spring Boot 應用, 也能夠是其餘技術平臺且遵循Eureka 通訊機制的應用。它將本身提供的服務註冊到Eureka, 以供其餘應用發現
• 服務消費者:url
消費者應用從服務註冊中心獲取服務列表, 從而使消費者能夠知道去何處調用其所須要的服務,這個不是咱們這部分的內容,暫不介紹。spa
1.首先咱們建立一個應用,名爲monitor,首先引入eureka依賴code
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
2.因爲是spring cloud項目,同時須要spring cloud的依賴管理
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
注:spring boot和spring cloud 有嚴格的版本對應關係,本項目的spring boot版本是1.5.4.RELEASE
3.application.properties配置文件
spring.application.name=eureka-server server.port=8080 eureka.instance.hostname=localhost eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
4.最後一步,應用入口class須要加上註解
@EnableEurekaServer
這樣這個項目就是一個eureka服務註冊中心了。
eureka的客戶端跟就是平時咱們的應用,咱們須要把他們監控起來。
1.application.properties配置文件
spring.application.name=client-name server.port=8080 #重要:將應用註冊到上一步的服務註冊中心 eureka.client.serviceUrl.defaultZone=http://*.*.*.*:8080/monitor-1/eureka/ #開啓端點 management.security.enabled=false #監測心跳 eureka.instance.health-check-url-path=/health
2.pom文件的依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
3.spring cloud的依賴管理
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
4.應用入口class添加註解
@EnableDiscoveryClient
5.最後一步,在controller中引入DiscoveryClient對象
@Autowired private DiscoveryClient client;
看到這個,基本就大功告成了。