服务治理-Spring Cloud Eureka

Eureka介绍

Eureka是Spring Cloud Netflix的微服务套件的一部分,它是基于Netflix Eureka的二次开发,主要负责完成微服务架构中的服务治理功能。而且可以与Spring boot很容易的整合进行开发,使得开发变得简单,Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。客户端,也被称为服务消费者与服务的生产者,服务启动时向服务注册中心(服务端)进行注册自己,并通过定时心跳检测的方式告诉服务端存活状态,更新服务续约,同时也可以将服务端的服务列表缓存到本地并周期性刷新服务列表的状态。

Eureka的使用

服务端

  1. 在pom文件中添加依赖项。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <dependency> 
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
    <!- - 处于安全考虑 - ->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

需要添加对Spring Cloud版本的控制,这里我们使用的事Dalston.SR4版本,要求Spring boot版本号低于2.0版本。

1
2
3
4
5
6
7
8
9
10
11
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version> Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

  1. 添加配置信息,在application.yml或application.properties中添加如下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    spring:
    application:
    name: springcloudeurekaserver # 注册到微服务中的服务名称。
    server:
    port: 8761 # 端口号
    eureka:
    instance:
    prefer-ip-address: true
    client:
    registerWithEureka: false # 是否注册自己,不注册
    fetchRegistry: false # 禁止检测服务
    service-url:
    defaultZone: http://${security.user.name}:${security.user.password}@localhost:${server.port}/eureka/ #Eureka服务地址。


    # 处于安全考虑需要对用户进行登录。
    security:
    user:
    name: admin
    password: ${REGISTRY_SERVER_PASSWORD:password}
  2. 添加@EnableEurekaServer注解,开启对Eureka服务的支持。

    1
    2
    3
    4
    5
    6
    7
    @SpringBootApplication
    @EnableEurekaServer
    public class SpringCloudEruekaApplication {
    public static void main(String[] args) {
    SpringApplication.run(SpringCloudEruekaApplication.class, args);
    }
    }
  3. 运行Eureka服务,通过访问http://localhost:8761/eureka/进行访问Eureka注册中心,查看Eureka有哪些服务注册上,下图是Eureka主界面展示:
    Eureka服务

    页面描述

  4. nstances currently registered with Eureka:服务注册列表信息。
  5. DS Replicas代表的集群部署时,server地址。

    客户端

  6. 在pom文件中添加依赖项。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <dependency> 
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <!- - 处于安全考虑 - ->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    # 需要添加对Spring Cloud版本的控制,这里我们使用的事Dalston.SR4版本,要求Spring boot版本号低于2.0版本。
    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version> Dalston.SR4</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    </dependencies>
    </dependencyManagement>
  7. 添加配置信息,在application.yml或application.properties中添加如下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    spring:
    application:
    name: springclouduser # 注册到微服务中的服务名称。
    server:
    port: 8889
    eureka:
    instance:
    prefer-ip-address: true
    client:
    service-url:
    defaultZone: http://admin:${REGISTRY_SERVER_PASSWORD:password}@${eureka.instance.hostname}:8761/eureka/ #Eureka服务地址。
  8. 添加@EnableEurekaClient注解或@ EnableDiscoveryClient,开启对Eureka客户端的支持。

    1
    2
    3
    4
    5
    6
    7
    @SpringBootApplication
    @EnableEurekaServer
    public class SpringCloudEruekaApplication {
    public static void main(String[] args) {
    SpringApplication.run(SpringCloudEruekaApplication.class, args);
    }
    }

这样三步骤就讲微服务注册到服务中心中,可以看到服务中心已经获取到当前服务信息。

文章目录
  1. 1. Eureka介绍
  2. 2. Eureka的使用
    1. 2.1. 页面描述
  3. 3. 客户端