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的简单入门,简单说他就是一个注册中心,服务可以注册、发现,其实也算有点生产者和消费者的感觉。

相关文章
|
8月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1265 3
|
6月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
4851 14
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
2351 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
1550 4
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
869 5
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
开发框架 Java API
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
1330 0