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

简介: SpringCloud 注册中心 (Eureka) 快速入门,超级详细,服务注册与服务发现。

前言

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

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

image.png

1、Eureka注册中心

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

1、新建一个maven模块

image-20220824183027986.png

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注解表示为启动类
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;
importorg.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication@EnableEurekaServerpublicclassEurekaApplication {
publicstaticvoidmain(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/

image-20220824183952033.png

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注册到了注册中心。

如下图所示:

image-20220824190420652.png

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: order-serviceeureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka

3、服务拉取

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

 

@Bean@LoadBalanced//1、添加一个@LoadBalanced注解publicRestTemplaterestTemplate() {
returnnewRestTemplate();
    }

  2、修改 queryOrderById方法

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

 

Stringurl="http://user-service:8081/user/"+order.getUserId();

  3、测试

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

image-20220824190552807.png

总结

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

相关文章
|
19天前
|
缓存 负载均衡 监控
SpringCloud&Eureka理论与入门
SpringCloud&Eureka理论与入门
21 0
|
2月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
196 0
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
121 0
|
19天前
|
负载均衡 监控 容灾
【SpringCloud】详解Eureka注册中心
【SpringCloud】详解Eureka注册中心
23 0
|
20天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
25天前
|
Java Maven Nacos
Spring Cloud Eureka 服务注册和服务发现超详细(附加--源码实现案例--及实现逻辑图)
Spring Cloud Eureka 服务注册和服务发现超详细(附加--源码实现案例--及实现逻辑图)
31 0
|
1月前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
1月前
|
开发框架 负载均衡 Java
Spring boot与Spring cloud之间的关系
总之,Spring Boot和Spring Cloud之间的关系是一种构建和扩展的关系,Spring Boot提供了基础,而Spring Cloud在此基础上提供了分布式系统和微服务架构所需的扩展和工具。
23 4
Spring boot与Spring cloud之间的关系
|
2月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
71 1
|
2月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
237 0