微服务组件——Eureka组件的安装与使用指南

文章目录

  • 一、Eureka Server的安装与配置
    • 1、创建Spring Boot项目
    • 2、添加依赖
    • 3、配置Eureka Server
    • 4、启用Eureka Server
    • 5、启动并访问Dashboard
  • 二、Eureka Client的配置(服务注册)
    • 1、添加客户端依赖
    • 2、配置客户端
    • 3、启用服务发现
    • 4、启动服务
  • 三、服务发现与调用
    • 1、使用RestTemplate调用服务
    • 2、使用FeignClient(声明式调用)
  • 四、高可用配置(Eureka集群)
    • 1、配置多个Eureka Server节点
    • 2、客户端注册到集群
  • 五、常见问题与调优
    • 1、服务无法注册
    • 2、调整心跳与剔除时间
    • 3、关闭自我保护模式(开发环境)
  • 六、注意事项

Eureka是Netflix开源的服务发现组件,用于微服务架构中的服务注册与发现。以下是详细的安装和使用步骤:

一、Eureka Server的安装与配置

1、创建Spring Boot项目

  • 使用Spring Initializr创建项目,选择Spring Boot版本(如2.5.x)并添加依赖:
    • Spring Web(构建Web应用)
    • Eureka Server(服务端支持)

2、添加依赖

<!-- Maven依赖 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

3、配置Eureka Server

  • 在application.yml中配置:
server:port: 8761  # 默认端口eureka:client:register-with-eureka: false  # 不注册自己fetch-registry: false        # 不拉取注册表service-url:defaultZone: http://localhost:8761/eureka  # 服务地址

4、启用Eureka Server

  • 在启动类添加注解:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}

5、启动并访问Dashboard

  • 访问 http://localhost:8761 查看Eureka管理界面。

二、Eureka Client的配置(服务注册)

1、添加客户端依赖

<!-- Maven依赖 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2、配置客户端

  • 在application.yml中指定Eureka Server地址:
spring:application:name: user-service  # 服务名称eureka:client:service-url:defaultZone: http://localhost:8761/eureka

3、启用服务发现

  • 在启动类添加注解(可选,Spring Boot自动激活):
@SpringBootApplication
@EnableEurekaClient  // 或 @EnableDiscoveryClient
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}

4、启动服务

  • 客户端启动后,在Eureka Dashboard中查看注册状态。

三、服务发现与调用

1、使用RestTemplate调用服务

  • 启用负载均衡:
@Bean
@LoadBalanced  // 通过服务名解析地址
public RestTemplate restTemplate() {return new RestTemplate();
}
  • 调用其他服务:
String serviceUrl = "http://user-service/getUser/1";
ResponseEntity<String> response = restTemplate.getForEntity(serviceUrl, String.class);

2、使用FeignClient(声明式调用)

  • 添加依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  • 启用Feign:
@EnableFeignClients
@SpringBootApplication
public class OrderServiceApplication { ... }
  • 定义接口:
@FeignClient(name = "user-service")
public interface UserServiceClient {@GetMapping("/getUser/{id}")String getUser(@PathVariable("id") Long id);
}

四、高可用配置(Eureka集群)

1、配置多个Eureka Server节点

  • 修改每个节点的application.yml,相互注册:
# 节点1配置
eureka:client:service-url:defaultZone: http://node2:8762/eureka

2、客户端注册到集群

  • 客户端配置多个Server地址:
eureka:client:service-url:defaultZone: http://node1:8761/eureka, http://node2:8762/eureka

五、常见问题与调优

1、服务无法注册

  • 检查客户端配置的defaultZone是否正确。
  • 确保Eureka Server已启动且网络可达。

2、调整心跳与剔除时间

eureka:instance:lease-renewal-interval-in-seconds: 30   # 客户端心跳间隔(默认30秒)lease-expiration-duration-in-seconds: 90 # 服务端剔除时间(默认90秒)

3、关闭自我保护模式(开发环境)

eureka:server:enable-self-preservation: false  # 关闭自我保护

六、注意事项

  • 版本兼容性:确保Spring Cloud与Spring Boot版本匹配(参考官方版本对照表)。
  • 生产环境建议:启用安全认证、配置集群以提高可用性。
  • 替代方案:Eureka已进入维护模式,可考虑Consul、Nacos等现代服务发现工具。

通过以上步骤,您可以在微服务架构中快速集成Eureka,实现服务的注册、发现与调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Doris:日志分析的新宠,是否能取代老牌ES?

在大数据时代&#xff0c;日志存储与分析对于企业的运营和决策起着至关重要的作用。Elasticsearch&#xff08;简称 ES&#xff09;作为一款广泛应用的开源分布式搜索和分析引擎&#xff0c;长期以来在日志管理领域占据着举足轻重的地位。然而&#xff0c;随着技术的不断发展&a…

学习threejs,使用Texture纹理贴图,测试repeat重复纹理贴图

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Texture 纹理贴图1.1.1 ☘️…

图像配准及识别

一、图像配准基础 图像配准&#xff0c;听起来很高大上&#xff0c;其实用大白话来说&#xff0c;就是“让两张照片对齐”的技术。想象一下&#xff0c;你有两张拍得不完全一样的照片&#xff0c;比如一张是你从正面拍的风景&#xff0c;另一张是从侧面拍的同一个地方&#xff…

QT之QML(简单示例)

需求一&#xff1a;点击按钮弹出菜单&#xff0c;并且自定义菜单弹出位置。 mouse.x 和 mouse.y 获取的是相对于 MouseArea&#xff08;在这个例子中是 Button&#xff09;左上角的局部坐标。如果你想要在鼠标点击位置显示 Menu&#xff0c;你需要将这个局部坐标转换为相对于应…

如何编写单元测试

一、前言知识 1.开发过程 需求分析->设计->开发->测试->上线 2.测试种类 单元测试(测试模块编码)、黑盒测试(测试功能是否满足需求)、白盒测试(测试程序内部的逻辑结构)、回归测试(提出的缺陷进行二次验证)、集成测试(测试主要的业务功能及模块间的整合性)、系…

LeetCode 解题思路 30(Hot 100)

解题思路&#xff1a; 递归参数&#xff1a; 生成括号的对数 n、结果集 result、当前路径 path、左括号数 open、右括号数 close。递归过程&#xff1a; 当当前路径 path 的长度等于 n * 2 时&#xff0c;说明已经生成有效括号&#xff0c;加入结果集。若左括号数小于 n&…

【Golang】Windows系统键鼠空闲监测练习

在本文中&#xff0c;我们将练习如何使用Golang编写一个简单的Windows系统空闲时间监测工具。该工具能够检测系统的空闲时间&#xff0c;并在达到一定阈值时计数。 功能概述 监控鼠标和键盘的空闲事件&#xff0c;每空闲超过50s&#xff0c;触发次数加一。 该工具具有以下功…

关于React Redux

官网&#xff1a;&#x1f449;详情一 &#x1f449;详情二 &#x1f449;关于redux 使用原因&#xff1a;&#x1f449;详情 /** 2-1、随着javascript单页应用程序的发展&#xff0c;需要在代码中管理更多的状态&#xff08;包括服务器响应数据、缓存数据、本地创建还未发送…

MySQL和Oracle批量插入SQL差异详解

文章目录 MySQL和Oracle批量插入SQL差异详解1. 基本批量插入语法1.1 MySQL批量插入1.2 Oracle批量插入 2. 带序列的批量插入2.1 MySQL带自增ID的批量插入2.2 Oracle带序列的批量插入 3. 条件批量插入3.1 MySQL条件批量插入3.2 Oracle条件批量插入 MySQL和Oracle批量插入SQL差异…

43页可编辑PPT | 大数据管理中心设计规划方案大数据中心组织架构大数据组织管理

这份文档是一份关于大数据管理中心规划设计方案的详细报告&#xff0c;涵盖了背景与需求分析、整体规划方案、关键能力实现方案以及实施方案等内容。报告强调大数据在城市治理中的重要性&#xff0c;提出通过构建统一的大数据平台&#xff0c;整合城市各部门数据资源&#xff0…

Python-八股总结

目录 1 python 垃圾处理机制2 yield3 python 多继承&#xff0c;两个父类有同名方法怎么办&#xff1f;4 python 多线程/多进程/协程4.1 多线程与GIL全局解释器锁4.2 多进程4.3 协程 5 乐观锁/悲观锁6 基本数据结构**1. 列表&#xff08;List&#xff09;****2. 元组&#xff0…

HTML 标签类型全面介绍

HTML 标签类型全面介绍 HTML&#xff08;HyperText Markup Language&#xff09;是构建 Web 页面结构的基础语言。HTML 由不同类型的标签组成&#xff0c;每种标签都有特定的用途。本文将全面介绍 HTML 标签的分类及其用法。 1. HTML 标签概述 HTML 标签通常成对出现&#xf…

vscode中的【粘滞滚动】的基本概念和作用,关闭了以后如何开启

1、粘滞滚动的基本概念和作用 ‌VSCode中的“粘滞”功能主要是指编辑器在滚动时的一种特殊效果&#xff0c;使得编辑器在滚动到某个位置时会“粘”在那里&#xff0c;而不是平滑滚动到底部或顶部。‌ 粘滞滚动的基本概念和作用 粘滞滚动功能可以让用户在滚动时更直观地看到当前…

【商城实战(101)】电商未来已来:新技术引领商城发展新航向

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配,乃至运营推广策略,102 章内容层层递进。无论是想…

深度学习Note.5(机器学习.6)

1.Runner类 一个任务应用机器学习方法流程&#xff1a; 数据集构建 模型构建 损失函数定义 优化器 模型训练 模型评价 模型预测 所以根据以上&#xff0c;我们把机器学习模型基本要素封装成一个Runner类&#xff08;加上模型保存、模型加载等功能。&#xff09; Runne…

linux服务器专题1------redis的安装及简单配置

在 linux上安装 Redis 可以按照以下步骤进行(此处用Ubuntu 服务器进行讲解)&#xff1a; 步骤 1: 更新系统包 打开终端并运行以下命令以确保你的系统是最新的&#xff1a; sudo apt update sudo apt upgrade步骤 2: 安装 Redis 使用 apt 包管理器安装 Redis&#xff1a; s…

面试问题总结:qt工程师/c++工程师

C 语言相关问题答案 面试问题总结&#xff1a;qt工程师/c工程师 C 语言相关问题答案 目录基础语法与特性内存管理预处理与编译 C 相关问题答案面向对象编程模板与泛型编程STL 标准模板库 Qt 相关问题答案Qt 基础与信号槽机制Qt 界面设计与布局管理Qt 多线程与并发编程 目录 基础…

实现实时数据推送:SpringBoot中SSE接口的两种方法

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

LXC 导入多Linux系统

前提要求 ubuntu下安装lxd 参考Rockylinux下安装lxd 参考LXC 源替换参考LXC 容器端口发布参考LXC webui 管理<

ES的文档更新机制

想获取更多高质量的Java技术文章&#xff1f;欢迎访问Java技术小馆官网&#xff0c;持续更新优质内容&#xff0c;助力技术成长 Java技术小馆官网https://www.yuque.com/jtostring ES的文档更新机制 在现代应用中&#xff0c;数据的动态性越来越强&#xff0c;我们不仅需要快…