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


    作者:大三的土狗
    专栏:SpringCloud
    在这里插入图片描述

    前言

      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依赖:

    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-server
    
    
    • 1
    • 2
    • 3
    • 4

    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
    @EnableEurekaServer
    public class EurekaApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4、编写配置文件

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

    server:
      port: 10086
    spring:
      application:
        name: eureka-server
    eureka:
      client:
        service-url: 
          defaultZone: http://127.0.0.1:10086/eureka
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5、启动服务

    访问 http://localhost:10086/ :

    在这里插入图片描述

    2、服务注册

    1、引入依赖

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

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

    <dependency>
        <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2、配置文件

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

    spring:
      application:
        name: user-service
    eureka:
      client:
        service-url:
          defaultZone: http://127.0.0.1:10086/eureka
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    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依赖:

    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
    
    
    • 1
    • 2
    • 3
    • 4

    2、配置文件

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

    spring:
      application:
        name: order-service
    eureka:
      client:
        service-url:
          defaultZone: http://127.0.0.1:10086/eureka
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、服务拉取

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

    	@Bean
        @LoadBalanced	//1、添加一个@LoadBalanced注解
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

      2、修改 queryOrderById方法

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

        String url = "http://user-service:8081/user/" + order.getUserId();
    
    • 1

      3、测试

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

    在这里插入图片描述

    总结

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

  • 相关阅读:
    微信一面:一致性哈希是什么,使用场景,解决了什么问题?
    OkHttpClient实例
    优思学院|什么是精益生产管理?从一个生活上的故事出发来说明。
    Access所有记录中均未找到搜索关键字
    C/C++语言100题练习计划 73——Error(二分答案算法实现)
    php如何处理高并发请求
    Netty(8)netty组件:ByteBuf
    如何创建前端绘图和图表?
    CCF CSP认证2022年6月 归一化处理、寻宝!大冒险!、光线追踪
    机器人制作开源方案 | 莲花灯
  • 原文地址:https://blog.csdn.net/qq_53463544/article/details/126510951