使用 Eureka 实现服务注册与发现

简介: Eureka 是 [Netflix](https://www.netflix.com) 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。

Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。

本例子将演示如何通过 Spring Cloud Eureka 来快速实现服务的注册和发现。

开发环境

  • Gradle 4.0
  • Spring Boot 2.0.0.M3
  • Spring Cloud Netflix Eureka Server Finchley.M2
  • Spring Cloud Netflix Eureka Client Finchley.M2

从 Spring Initializr 进行项目的初始化

访问http://start.spring.io/ 进行项目的初始化。我们将该项目命名为micro-weather-eureka-server

eurake-start

更改配置

根据下面两个博客的指引来配置,加速项目的构建。

启用 Eureka Server

为启用 Eureka Server ,在 Application 上增加@EnableEurekaServer注解即可。

@SpringBootApplication
@EnableEurekaServer
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

修改项目配置

修改 application.properties,增加如下配置。

server.port: 8761

eureka.instance.hostname: localhost
eureka.client.registerWithEureka: false
eureka.client.fetchRegistry: false
eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

其中:

  • server.port: 指明了应用启动的端口号
  • eureka.instance.hostname: 应用的主机名称
  • eureka.client.registerWithEureka: 值为false意味着自身仅作为服务器,不作为客户端
  • eureka.client.fetchRegistry: 值为false意味着无需注册自身
  • eureka.client.serviceUrl.defaultZone: 指明了应用的URL

启动 Eureka Server

启动应用,访问http://localhost:8761/,可以看到 Eureka Server 自带的 UI 管理界面。

eurake-ui

创建 Eureka Client

我们在micro-weather-eureka-server基础上,将创建一个micro-weather-eureka-client 作为客户端,并演示如何让将自身向注册服务器进行注册,让其可以其他服务都调用。

更改配置

增加如下配置:

dependencies {
    //...

    compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')

    //...
}

一个最简单的 Eureka Client

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Application {

    @RequestMapping("/hello")
    public String home() {
        return "Hello world";
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

其中@EnableDiscoveryClient启用了服务发现的功能,只要 Eureka Client 启动了,就能被 Eureka Server 所感知。

项目配置:

spring.application.name: micro-weather-eureka-client

eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/

运行

分别在 8081 和 8082 上启动了客户端示例。

java -jar micro-weather-eureka-client-1.0.0.jar --server.port=8081

java -jar micro-weather-eureka-client-1.0.0.jar --server.port=8082

可以在 Eureka Server 上看到这两个实体的信息。

eurake-client

源码

目录
相关文章
|
1月前
|
负载均衡 算法 微服务
Eureka服务注册与发现
Eureka服务注册与发现
14 2
|
1月前
|
缓存 负载均衡 算法
Eureka——服务注册与发现框架
Eureka——服务注册与发现框架
14 1
|
7天前
|
存储 监控 安全
服务注册中心Eureka
服务注册中心Eureka
21 1
|
6月前
|
存储 Java 网络架构
SpringCloud之Eureka注册中心解读
SpringCloud之Eureka注册中心解读
|
7月前
|
缓存 Java Shell
SpringCloud Eureka注册中心
SpringCloud Eureka注册中心
49 1
|
8月前
|
负载均衡 监控 算法
Eureka注册中心
Eureka注册中心
86 0
|
存储 负载均衡 监控
(五)、Eureka服务注册中心
(五)、Eureka服务注册中心
(五)、Eureka服务注册中心
|
负载均衡 监控 Dubbo
SpringCloud之Eureka服务注册
SpringCloud之Eureka服务注册
SpringCloud之Eureka服务注册
|
存储 缓存 Java
Eureka服务注册中心
**服务注册中⼼本质上是为了解耦服务提供者和服务消费者。** 对于任何⼀个微服务,原则上都应存在或者⽀持多个提供者(一个服务多实例) 服务注册中⼼管就是用来理微服务提供者的注册与发现
238 0
Eureka服务注册中心
SpringCloud - 服务注册与发现(Eureka)(二)
SpringCloud - 服务注册与发现(Eureka)(二)
109 0
SpringCloud - 服务注册与发现(Eureka)(二)