Eureka 简介
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。
SpringCloud将它集成在其子项目spring-cloud-netflix中,来实现SpringCloud的服务发现功能。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。
Netflix主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。
创建注册中心
1、创建SpringBoot项目,引入Euraka依赖
<!--Eureka服务端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
- 注:使用Eureka服务,必须集成SpringCloud框架
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、配置文件-bootstrap.yml
spring:
application:
name: registry-server #发布后的服务名称
eureka:
instance:
prefer-ip-address: true #不使用主机名来定义注册中心的地址,而使用IP地址的形式
client:
registerWithEureka: false #关闭服务注册
fetchRegistry: false # 关闭检索服务
serviceUrl:
defaultZone: http://localhost:8889/eureka/ #指定服务注册中心地址
server:
waitTimeInMsWhenSyncEmpty: 0 #在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间,单位为毫秒
server:
enable-self-preservation: false #关闭自我保护模式
eviction-interval-timer-in-ms: 20000 #过期实例应该启动并运行的时间间隔,单位为毫秒,默认为60 * 1000
server:
port: 8889 #发布后的服务端口号
security:
user:
name: user #安全认证用户名
password: 123456 #安全认证密码
- 注:其中安全认证需要引入相关依赖
<!--安全认证依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
3、启动服务注册中心
需要在启动类上添加注解:@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class RegistryApplication {
public static void main(String[] args) {
SpringApplication.run(RegistryApplication.class, args);
}
}
访问注册中心
服务启动后,可通过界面访问注册中心,需要验证用户名密码
路径:http://localhost:8889/
如下图所示: