服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是 SOA 架构中最基础的设施之一。
Eureka 是 Netflix 开发的服务发现组件,本身是一个基于 REST 的服务。Spring Cloud将它集成在其子项目 spring-cloud-netflix 中,以实现 Spring Cloud 的服务注册于发现,同时还提供了负载均衡、故障转移等能力。
通过 Register、Get、Renew 等接口提供服务的注册和发现。
服务提供方把自身的服务实例注册到 Eureka Server 中
服务调用方通过 Eureka Server 获取服务列表,消费服务
创建一个SpringBoot项目
添加如下的相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>1.4.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在启动类中我们需要放开@EnableEurekaServer,表明这是个Eureka的服务端
@EnableEurekaServer
@SpringBootApplication
public class SpringcloudEurekaDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudEurekaDemoApplication.class, args);
}
}
spring.application.name=eureka-server
server.port=8761
# 是否将自己注册到Eureka中,默认true
eureka.client.register-with-eureka=false
# 是否从Eureka服务中获取注册信息默认是true
eureka.client.fetch-registry=false
服务端启动成功~ 下篇介绍服务端的HA(高可用)