最近线上的接口出了一些问题,有一些可能不是代码的问题,可是因为是测试和其余方面的同事爆出来的,因此感受对接口的监控应该提上日程。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;
看到这个,基本就大功告成了。