引言:Spring Cloud Eureka [jʊ'ri:kə] [美式读音:有瑞哥] 是 Spring Cloud Netflix 微服务套件中的一部分, 它基于 Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的
服务治理功能
。 Spring Cloud 通过为Eureka 增加了 Spring Boot 风格的自动化配置,我们只需通过简单引入依赖和注解配置就能让 Spring Boot 构建的微服务应用轻松地与 Eureka 服务治理体系进行整合。——《Spring Cloud微服务实战》
Eureka包含服务端和客户端组件,服务端即服务注册中心,客户端处理服务的注册和发现。其它内容这里不做过多的详细介绍
Eureka服务端搭建
用Spring Boot在线工具创建一个基础Spring Boot项目EurekaApplication
,在pom.xml中增加eureka-server
的相关配置。<font color='red'>由于版本不断更新,可能配置有差别,所以最好参考</font>官方文档
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
... ...
</dependencies>
在EurekaApplication类中增加配置@EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
在application.yml中增加相关配置(使用application.properties配置也可以)
server:
port: 8761
spring:
application:
name: eureka-server
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
运行启动项目,看到下面的LOG表明Eureka服务端启动成功
2018-01-15 11:27:52.153 INFO 3148 --- [ main] c.n.e.EurekaDiscoveryClientConfiguration : Registering application eureka-server with eureka with status UP
... ...
2018-01-15 11:27:52.506 INFO 3148 --- [ main] com.centerm.eureka.EurekaApplication : Started EurekaApplication in 9.101 seconds (JVM running for 10.305)
Eureka客户端搭建
用Spring Boot在线工具创建一个基础Spring Boot项目MeetingSpringCloud
,在pom.xml中增加eureka
的相关配置。<font color='red'>由于版本不断更新,可能配置有差别,所以最好参考</font>官方文档
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
... ...
</dependencies>
在MeetSpringCloudApplication类中增加配置@EnableDiscoveryClient
@EnableDiscoveryClient
@SpringBootApplication
public class MeetSpringCloudApplication {
public static void main(String[] args) {
SpringApplication.run(MeetSpringCloudApplication.class, args);
}
}
在com.centerm.controller
包下新建一个类HelloController.java
@RestController
@RequestMapping("")
public class HelloController{
@GetMapping("getIndex")
public String helloCenterm() {
return "Hello Centerm";
}
}
在application.yml中增加相关配置(使用application.properties配置也可以)
server:
port: 8081
spring:
application:
name: hello-service
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
运行启动项目,看到下面的LOG表明Eureka客户端注册成功
2018-01-15 11:35:35.018 INFO 10140 --- [ main] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2018-01-15 11:35:35.560 INFO 10140 --- [ main] com.netflix.discovery.DiscoveryClient : The response status is 200
... ...
2018-01-15 11:35:36.034 INFO 10140 --- [ main] com.centerm.MeetSpringCloudApplication : Started MeetSpringCloudApplication in 7.301 seconds (JVM running for 8.211)
查看注册信息
在浏览器中输入http://localhost:8761 查看Eureka信息面板服务信息
网友评论