写点什么

SpringCloud 注册中心 (Eureka) 快速入门

作者:
  • 2022 年 8 月 29 日
    河南
  • 本文字数:1701 字

    阅读完需:约 6 分钟

SpringCloud 注册中心 (Eureka) 快速入门

前言

  Eureka 是一个基于 REST 的服务,主要用于 AWS 云中的定位服务,以实现中间层服务器的负载平衡和故障转移。在 Spring Cloud 微服务架构中通常用作注册中心我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client

官网:https://github.com/Netflix/eureka


1、Eureka 注册中心

在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。首先我们注册中心服务端:eureka-server,这必须是一个独立的微服务。下面我们来搭建搭建 eureka-server。

1、新建一个 maven 模块


2、引入 eureka 依赖

引入 SpringCloud 为 eureka 提供的 starter 依赖:


<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>
复制代码

3、编写启动类

给 eureka-server 服务编写一个启动类 EurekaApplication


  • 添加 @EnableEurekaServer 注解开启 eureka 的注册中心功能

  • 添加 @SpringBootApplication 注解表示为启动类


import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication@EnableEurekaServerpublic class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); }}
复制代码

4、编写配置文件

编写一个 application.yml 配置文件,内容如下:


server:  port: 10086spring:  application:    name: eureka-servereureka:  client:    service-url:       defaultZone: http://127.0.0.1:10086/eureka
复制代码

5、启动服务

访问 http://localhost:10086/ :



2、服务注册

1、引入依赖

  服务注册,就是将提供某个服务的模块信息(通常是这个服务的 ip 和端口)注册到 1 个公共的组件上去。


在 user-service 的 pom 文件中,引入下面的 eureka-client 依赖:


<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
复制代码



2、配置文件

  在 user-service 中,修改 application.yml 文件,添加服务名称、eureka 地址等。


spring:  application:    name: user-serviceeureka:  client:    service-url:      defaultZone: http://127.0.0.1:10086/eureka
复制代码



3、启动 user-service

  启动 user-service 之后,查看 eureka-server 管理页面,可以看到 user-service 注册到了注册中心。


如下图所示:



3、服务发现

  服务发现,就是 user-service 的信息可以通过 eureka-server 服务获取到,正好 order-service 服务需要调用 user-service 来实现远程调用,下面使用 eureka 来实现服务发现。

1、引入依赖

在 order-service 的 pom 文件中,引入下面的 eureka-client 依赖:


<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
复制代码

2、配置文件

  服务发现也需要知道 eureka 地址,因此与服务注册一致,都是配置 eureka 信息,在 order-service 中,修改 application.yml 文件,添加服务名称、eureka 地址等。


spring:  application:    name: orderserviceeureka:  client:    service-url:      defaultZone: http://127.0.0.1:10086/eureka
复制代码

3、服务拉取

  1、首先需要给 RestTemplate 这个 Bean 添加一个 @LoadBalanced 注解


  @Bean    @LoadBalanced  //1、添加一个@LoadBalanced注解    public RestTemplate restTemplate() {        return new RestTemplate();    }
复制代码


  2、修改 queryOrderById 方法


  把 localhost 也就是 IP 改成了注册时的名称


    String url = "http://user-service:8081/user/" + order.getUserId();
复制代码


  3、测试


  oder-service 使用 user-service 代替 Ip 功能依旧正常



总结

  以上就是 Eureka 的简单入门,简单说他就是一个注册中心,服务可以注册、发现,其实也算有点生产者和消费者的感觉。

发布于: 刚刚阅读数: 5
用户头像

关注

在校大三学生一枚 2022.08.02 加入

喜欢学习编程,擅长技术栈JAVA

评论

发布
暂无评论
SpringCloud 注册中心 (Eureka) 快速入门_微服务_斯_InfoQ写作社区