Eureka背景:
Eureka它是Netflix开源旗下的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是SpringCloud体系中最重要最核心的组件之一。它主要负责完成微服务架构中的服务治理功能。
咱们直接用一张图来认识一下注册中心的含义:
上图简要描述了Eureka的基本架构,由3个角色组成:
1、Eureka Server
- 提供服务注册和发现
2、Service Provider
- 服务提供方
- 将自身服务注册到Eureka,从而使服务消费方能够找到
3、Service Consumer
- 服务消费方
- 从Eureka获取注册服务列表,从而能够消费服务
本文只是通过简单的小例子来分享下如何通过Eureka进行服务治理:
- 搭建服务注册中心
- 注册服务提供者
一、搭建服务注册中心
这是完整的一个项目结构
1、咱们可以单独创建一个SpringBoot项目,然后在pom.xml文件中添加以下依赖
<dependencies>
<!--添加Eureka服务器端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、在Application启动类中使用@EnableEurekaServer注解开启EurekaServer
3、配置application.yml文件
在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,在application.yml
添加以下配置:
eureka.client.register-with-eureka
:表示是否将自己注册到Eureka Server,默认为true。eureka.client.fetch-registry
:表示是否从Eureka Server获取注册信息,默认为true。eureka.client.serviceUrl.defaultZone
:设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。
这样完成配置就好了。咱们直接启动工程后,访问:http://localhost:8761/,可以看到下面的页面,其中还没有发现任何服务
因为咱们现在这个只是单独的一个Eureka服务端。接下来进行讲解如何把自己工程注册到Eureka上面。
二、注册服务提供者
这边是服务提供者的项目结构图:
1、在对应pom.xml文件中引入以下依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- 引入eureka 客户端依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
2、在Application启动类中使用@EnableDiscoveryClient注解实现注册服务
3、配置application.yml文件
设置注册中心地址(即上一节中设置的注册中心地址http://localhost:8761/eureka)
3、测试
我们随后是可以在Eureka服务中心发现咱们这个服务提供者成功注册上去了。
三、总结
以上实例实现了基本的服务治理:
- 通过spring-cloud-starter-eureka-server和@EnableEurekaServer实现服务注册中心
- 通过spring-cloud-starter-eureka和@EnableDiscoveryClient使用并注册到服务注册中心