当前位置: 首页 > news >正文

SpringCloud核心组件Eureka菜鸟教程

关于Spring Cloud Eureka的核心概念

      Eureka 是 Netflix 开源的一款基于 REST 的服务发现工具,主要用于中间层服务器的云端负载均衡。它通过维护一个服务注册表来实现服务之间的通信1。在 Spring Cloud 中,Eureka 提供了一个高可用的服务注册与发现机制,使得微服务架构中的各个模块可以动态地加入或退出集群

一、核心工作原理
  1. 服务注册
    服务提供者(Eureka Client)启动时,向Eureka Server发送元数据(IP、端口、健康状态等)完成注册,注册表存储结构为:

    Map<String, Map<String, Lease<InstanceInfo>>>Map<String, Map<String, Lease<InstanceInfo>>>

    其中外层Map键为服务名称,内层Map键为实例ID2

  2. 服务续约
    客户端每30秒发送心跳包(eureka.instance.lease-renewal-interval-in-seconds),服务端收到后更新租约时间。若90秒未收到心跳(eureka.instance.lease-expiration-duration-in-seconds),标记实例不可用。

  3. 服务发现
    消费者通过服务名称向Eureka Server获取实例列表,默认每30秒更新本地缓存(eureka.client.registry-fetch-interval-seconds)。

  4. 服务剔除
    Eureka Server每60秒检查失效实例(eureka.server.eviction-interval-timer-in-ms),启动自我保护模式时暂停剔除

二、服务端配置(EUREKA SERVER)
  1. 依赖配置
    pom.xml中添加Eureka Server依赖

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

接着,在启动类上添加 @EnableEurekaServer 注解即可启用 Eureka Server 功能

配置文件设置

以下是典型的 application.ymlapplication.properties 文件配置示例,用于初始化单节点的 Eureka Server:

server:port: 8761  # Eureka默认端口
eureka:instance:hostname: localhostclient:register-with-eureka: false  # 服务端无需自我注册fetch-registry: false        # 不拉取注册表service-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

启动类注解
添加@EnableEurekaServer以激活服务端:

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}
三、客户端配置(EUREKA CLIENT)
  1. 依赖配置
    客户端需引入spring-cloud-starter-netflix-eureka-client

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

    配置文件application.yml

    spring:application:name: user-service  # 服务名称
    eureka:client:service-url:defaultZone: http://localhost:8761/eureka/  # 注册到Eureka Server

    启动类注解
    使用@EnableDiscoveryClient@EnableEurekaClient(两者等效):

@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}

 

四、核心代码实现步骤
  1.  服务注册
    客户端启动后自动向Eureka Server注册,可通过http://localhost:8761查看注册列表。

  2. .服务发现

      使用DiscoveryClient动态获取其他服务实例

@Autowired
private DiscoveryClient discoveryClient;public List<ServiceInstance> getServiceInstances(String serviceName) {return discoveryClient.getInstances(serviceName);
}

 3. 服务消费者调用

@RestController
public class ConsumerController {@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/call")public String callService() {List<ServiceInstance> instances = discoveryClient.getInstances("PROVIDER-SERVICE");// 负载均衡逻辑...}
}
五、高级配置示例
  1. 高可用集群

部署多个Eureka Server并相互注册YAML: 

# 节点1配置
eureka:client:service-url:defaultZone: http://eureka-node2:8762/eureka/
# 节点2配置
eureka:client:service-url:defaultZone: http://eureka-node1:8761/eureka/

 安全认证
添加Spring Security依赖并配置YAML:

eureka:client:service-url:defaultZone: http://user:password@localhost:8761/eureka/

 健康检查与元数据
启用健康检查并自定义元数据YAML

eureka:instance:health-check-url-path: /actuator/healthmetadata-map:zone: us-east

 

相关文章:

SpringCloud核心组件Eureka菜鸟教程

关于Spring Cloud Eureka的核心概念 Eureka 是 Netflix 开源的一款基于 REST 的服务发现工具&#xff0c;主要用于中间层服务器的云端负载均衡。它通过维护一个服务注册表来实现服务之间的通信1。在 Spring Cloud 中&#xff0c;Eureka 提供了一个高可用的服务注册与发现机制&a…...

DuckDB:现代数据分析的“SQLite“内核革命

在数据工程、数据科学快速演进的今天&#xff0c;一个新的名字正在快速蹿红&#xff1a;DuckDB。 有人称它是数据分析领域的SQLite&#xff0c;也有人称它为下一代轻量级OLAP引擎。 无论哪种称呼&#xff0c;都离不开一个事实&#xff1a; DuckDB 重新定义了小型数据仓库和本地…...

【计算机网络分类全解析】从局域网到广域网的工程实践

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1&#xff1a;局域网IP扫描案例2&#xff1a;VLAN配置 运行结果验证 三、性能对比测试方法论量…...

Spark 技术体系深度总结

一、核心技术架构 1. 分布式计算模型 Spark基于弹性分布式数据集&#xff08;RDD&#xff0c;Resilient Distributed Dataset&#xff09;构建核心抽象&#xff0c;通过分区&#xff08;Partition&#xff09;实现数据分布式存储&#xff0c;每个分区可独立进行并行计算。RDD…...

金融数据分析(Python)个人学习笔记(13):自然语言处理

一、导入库和函数 pip install wordcloud pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba pip install gensimimport pandas as pd import numpy as np import jieba二、载入新闻数据 sinanews pd.read_csv(my_sinanews2.csv,encodinggbk) sinanews结果&a…...

ReACT Agent 实战

1. Agent 概述 关于到底什么是 Agent&#xff0c;目前业界并没有一个统一的定义&#xff0c;比如 OpenAI 倾向于将 Agent 看作是大模型能力的延伸&#xff0c;而 LangChain 则侧重于 Agent 是 workflow 的编排。我们没必要去纠结定义&#xff0c;可以简单理解 Agent 并不是某一…...

【JavaScript】关系运算符--非数值类型、Unicode编码表

1、关系运算符--非数值类型 对于非数值进行比较时&#xff0c;会将其转换为数字然后再比较。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…...

【Pandas】pandas DataFrame rtruediv

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象&#xff08;如 DataFrame、Series 或标量&#xff09;的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

重构数字信任基石:Java 24 网络安全特性的全维度革新与未来防御体系构建

引言&#xff1a;从技术迭代到安全范式的根本性跃迁 在量子计算威胁渐近、分布式系统架构复杂化、数据资产价值指数级增长的 2025 年&#xff0c;Java 平台迎来了自 Java 1.0 以来最具革命性的安全架构升级 ——Java 24 版本。这不仅仅是一次常规的特性更新&#xff0c;而是通…...

HTML倒数

前言 假设您需要一个网页打开后&#xff0c;自动间隔 N 秒进行一次自动刷新&#xff0c;且不依赖 js &#xff0c;那么本文可以帮助到您&#xff0c;以最简单的方式实现需求。 实现代码 TIPS&#xff1a;借助 <meta http-equiv"refresh" content"X"&g…...

【C++】类和对象(上)

文章目录 上文链接一、类&#xff08;class&#xff09;1. 类的定义2. 类与结构体3. 访问限定符4. 类域 二、对象1. 实例化2. 对象大小 三、this 指针1. 什么是 this 指针2. 小练习 上文链接 【C】入门基础知识&#xff08;下&#xff09; 一、类&#xff08;class&#xff09;…...

Transformer四模型回归打包(内含NRBO-Transformer-GRU、Transformer-GRU、Transformer、GRU模型)

Transformer四模型回归打包&#xff08;内含NRBO-Transformer-GRU、Transformer-GRU、Transformer、GRU模型&#xff09; 目录 Transformer四模型回归打包&#xff08;内含NRBO-Transformer-GRU、Transformer-GRU、Transformer、GRU模型&#xff09;预测效果基本介绍程序设计参…...

多级缓存入门:Caffeine、Lua、OpenResty、Canal

之前写过——Google Guava Cache简介 本文系统学习一下多级缓存 目录 0.什么是多级缓存商品查询业务案例导入1.JVM进程缓存初识Caffeine实现JVM进程缓存2.Lua语法入门HelloWorld数据类型、变量和循环函数、条件控制3.Nginx业务编码实现多级缓存安装OpenRestyOpenResty快速入门…...

在AWS Glue中实现缓慢变化维度(SCD)的三种类型

根据缓慢变化维度&#xff08;SCD&#xff09;的三种核心类型&#xff08;类型1、类型2、类型3&#xff09;&#xff0c;以下是基于AWS Glue的实现设计、步骤及测试用例&#xff1a; 一、AWS Glue实现SCD的设计与步骤 1. SCD类型1&#xff08;覆盖旧值&#xff09; 设计目标&…...

业务校验工具包-validate-utils介绍

validate-utils介绍 1. 概述 validate-utils是一个基于Hibernate Validator的轻量级校验框架,旨在简化和增强Java应用程序中的数据校验工作。该工具包提供了一系列常见的校验场景,帮助开发人员快速实现数据验证,提高代码的可维护性和可靠性。 2. 功能特性 2.1 集合数据量…...

参数规模:衡量大语言模型体量的标尺

大语言模型的体量差异通过参数数量呈现。业界标杆如GPT-3拥有1750亿参数&#xff0c;Grok-1更达到3140亿级别&#xff0c;而Llama系列则提供70亿至700亿参数的轻量化选择。这里的"70B"并非指训练数据量&#xff0c;而是模型内部结构的复杂度指标——每个参数如同微型…...

JS 中call、apply 和 bind使用方法和场景

call 方法 核心特性 立即执行函数&#xff0c;并显式指定 this 值和逐个传递参数。语法&#xff1a;func.call(thisArg, arg1, arg2, …) 使用场景 借用其他对象的方法 const person { name: "Alice" }; function greet(greeting) {console.log(${greeting}, ${t…...

ZeroGrasp:零样本形状重建助力机器人抓取

25年4月来自CMU、TRI 和 丰田子公司 Woven 的论文“ZeroGrasp: Zero-Shot Shape Reconstruction Enabled Robotic Grasping”。 机器人抓取是具身系统的核心能力。许多方法直接基于部分信息输出抓取结果&#xff0c;而没有对场景的几何形状进行建模&#xff0c;导致运动效果不…...

第2讲、Tensor高级操作与自动求导详解

1. 前言 在深度学习模型中&#xff0c;Tensor是最基本的运算单元。本文将深入探讨PyTorch中两个核心概念&#xff1a; Tensor的广播机制&#xff08;Broadcasting&#xff09;**自动求导&#xff08;Autograd&#xff09;**机制 这些知识点不仅让你更加灵活地操作数据&#…...

(MySQL)表的操作

目录 表的创建 语法 创建表的案例 查看表的结构 修改表的操作 修改表名 ​编辑 添加一个字段(列) 修改一个字段的类型 修改字段名 删除字段名(删除列) 删除指定的表 表的插入数据 数据库的备份和恢复 我们来学习表的操作 表的创建 语法 CREATE TABLE [if not ex…...

函数的使用

函数绑定 fn.call(obj, param1, param2) fn.apply(obj, [param1, param2]) fn.bind(obj, param1, param2)()相同点&#xff1a; 都是借用别人&#xff08;fn&#xff09;的方法&#xff0c;替换其中的this&#xff08;第一个参数&#xff09;call和apply的不同点&#xff1a;a…...

LLM应用于自动驾驶方向相关论文整理(大模型在自动驾驶方向的相关研究)

1、《HILM-D: Towards High-Resolution Understanding in Multimodal Large Language Models for Autonomous Driving》 2023年9月发表的大模型做自动驾驶的论文&#xff0c;来自香港科技大学和人华为诺亚实验室&#xff08;代码开源&#xff09;。 论文简介&#xff1a; 本文…...

Spring MVC深度解析:从原理到实战

文章目录 一、Spring MVC概述1.1 MVC设计模式1.2 Spring MVC特点 二、Spring MVC核心组件2.1 架构流程图解2.2 核心组件说明 三、环境搭建与配置3.1 Maven依赖3.2 传统XML配置 vs JavaConfig 四、控制器开发实践4.1 基础控制器示例4.2 请求映射注解 五、数据处理与绑定5.1 表单…...

Spark学习全总结

基础概念&#xff1a; Spark 是一个快速、通用的大数据处理引擎&#xff0c;支持多种计算模式&#xff0c;如批处理、流处理、交互式查询和机器学习等。 特点: 速度快&#xff1a;基于内存计算&#xff0c;能将数据缓存在内存中&#xff0c;避免频繁读写磁盘&#xff0c;大幅…...

pytorch写张量pt文件,libtorch读张量pt文件

直接在pytorch中&#xff0c;用torch.save保存的张量&#xff0c;可能因格式差异无法在C中加载。 以下是一个最简单的例子&#xff0c;展示如何在 Pytorch中保存张量到 TorchScript 模块&#xff0c;并在 C 中使用 LibTorch 加载。 Python 代码 (save_tensor.py) import torc…...

关于Android Studio的Gradle各项配置2

好的&#xff01;你提到的这些文件是 Gradle 构建系统 和 Android 项目 中非常重要的一部分&#xff0c;它们各自有不同的作用&#xff0c;涉及项目的构建配置、Gradle 环境、系统配置等方面。接下来我会为你详细解释每个文件的作用&#xff0c;并提供具体的例子和注释。 1. gr…...

Android Studio中创建第一个Flutter项目

一、Flutter环境验证 创建Flutter项目之前需要验证是否有Flutter环境&#xff0c;如没有Flutter 环境&#xff0c;请参考配置Flutter开发环境 1.1、flutter doctor 验证通过会有以下提示 [√] Flutter (Channel stable, 3.29.3, on Microsoft Windows [版本 10.0.19045.573…...

Linux的例行性工作(crontab)

crontab服务 at 命令是在指定的时间只能执行一次任务, crontab 命令可以循环重复的执行定时任务,与 Windows 中的计划任务有些类似 crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程&#xff0c;在安装完成操 作系统后&#xff0c;默认会安装 crond …...

03 基于 STM32 的温度控制系统

前言 Protues、KeilC 设计内容&#xff1a;使用STM32设计一个空调温度的显示控制系统 设计要求&#xff1a; 1.温度显示范围为16-30摄氏度 2.按键K1实现显示温度加1&#xff0c;按键K2实现显示温度减1&#xff0c;低于16或高于30&#xff0c;显示数值不变 3.正常按键蜂鸣器响一…...

23种设计模式-行为型模式之备忘录模式(Java版本)

Java 备忘录模式&#xff08;Memento Pattern&#xff09;详解 &#x1f9e0; 什么是备忘录模式&#xff1f; 备忘录模式是一种行为型设计模式&#xff0c;它允许在不暴露对象实现细节的情况下&#xff0c;保存和恢复对象的状态。备忘录模式常常用于需要记录对象状态以便随时…...

[三分钟]web自动化测试(二):selenium自动化测试常用函数(上)

文章目录 1.元素定位1.1 cssSelector(选择器)1.2 xpath1.3小示例 2.操作测试对象2.1点击/提交对象-click()2.2 模拟按键输入-sendKeys("")2.3 清除文本内容-clear()2.4 获取文本信息-getText()2.5 获取当前页面标题-getTitle()2.6获取当前页面URL-getCurrentUrl() 3.…...

基于ruoyi-plus实现AI聊天和绘画

项目介绍 基于ruoyi-plus实现AI聊天和绘画功能&#xff0c;打造自己的AI平台。前后端分离&#xff0c;有管理后台&#xff0c;用户端&#xff0c;小程序端。支持对接openai&#xff0c;讯飞星火&#xff0c;通义灵码&#xff0c;deepseek等大语言模型。项目架构 管理后台-前端&…...

假设检验学习总结

目录 一、假设检验1. 两种错误2. z检验和t检验3. t检验3.1 单样本t检验3.2 配对样本t检验3.3 独立样本t检验4 方差齐性检验备注卡方检验样本容量的计算AB测试主要的两种应用场景绝对量的计算公式率的计算公式说明一、假设检验 1. 两种错误 第一类错误 原假设为真,却拒绝了原假…...

C++ 基于多设计模式下的同步异步⽇志系统-2项目实现

⽇志系统框架设计 1.⽇志等级模块:对输出⽇志的等级进⾏划分&#xff0c;以便于控制⽇志的输出&#xff0c;并提供等级枚举转字符串功能。 ◦ OFF&#xff1a;关闭 ◦ DEBUG&#xff1a;调试&#xff0c;调试时的关键信息输出。 ◦ INFO&#xff1a;提⽰&#xff0c;普通的提⽰…...

Tauri窗口与界面管理:打造专业桌面应用体验 (入门系列五)

窗口管理是桌面应用的核心特性之一&#xff0c;良好的窗口管理可以显著提升用户体验。在Web开发中&#xff0c;我们通常被限制在浏览器窗口内&#xff0c;但Tauri允许前端开发者控制应用窗口的方方面面&#xff0c;从而创造出更加原生的体验。 窗口配置基础 初始窗口配置 在…...

golang goroutine(协程)和 channel(管道) 案例解析

文章目录 goroutine和channel概念开启线程与channel简单通信流程多个工作协程并发执行流程 goroutine和channel概念 goroutine(协程)&#xff0c;一般我们常见的是进程&#xff0c;线程&#xff0c;进程可以理解为一个软件在运行执行的过程&#xff0c;线程跟协程比较类似&…...

底层源码和具体测试解析HotSpot JVM的notify唤醒有序性(5000字详解)

在大家的认知里&#xff0c;或者大家也可能搜过&#xff0c;notify唤醒机制到底是随机的呢&#xff1f;还是顺序的呢&#xff1f;在网上其实也有很多人说notify的唤醒机制就是随机的&#xff0c;但实际上并不是这样的&#xff0c;notify的唤醒机制是先进先出的&#xff01; 目…...

Jenkins(CI/CD工具)

1. 什么是 Jenkins&#xff1f; Jenkins 是一个开源的持续集成&#xff08;CI&#xff09;和持续交付/部署&#xff08;CD&#xff09;工具&#xff0c;用于自动化软件构建、测试和部署过程。 2. Jenkins 优势 &#xff08;1&#xff09;开源免费&#xff1a;社区活跃&#…...

Apache Sqoop数据采集问题

Sqoop数据采集格式问题 一、Sqoop工作原理二、Sqoop命令格式三、Oracle数据采集格式问题四、Sqoop增量采集方案 Apache Sqoop是一款开源的工具&#xff0c;主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递&#xff0c;可以将一个关系型数据库&…...

再学GPIO(二)

GPIO寄存器 每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL&#xff0c;GPIOx_CRH)&#xff0c;两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR)&#xff0c;一个32位置位/复位寄存器(GPIOx_BSRR)&#xff0c;一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 GPIO…...

err: Error: Request failed with status code 400

好的&#xff0c;今天学习ai的时候从前端发送请求&#xff0c;实在是想不通为啥会啥是一个坏请求&#xff0c;后来从前端方法一个一个找参数&#xff0c;传递的值都有&#xff0c;然后想到我这边需要传递的是一个对象&#xff0c;那么后端使用的RequestParam就接收不到json对象…...

解决qnn htp 后端不支持boolean 数据类型的方法。

一、背景 1.1 问题原因 Qnn 模型在使用fp16的模型转换不支持类型是boolean的cast 算子&#xff0c;因为 htp 后端支持量化数据类型或者fp16&#xff0c;不支持boolean 类型。 ${QNN_SDK_ROOT_27}/bin/x86_64-linux-clang/qnn-model-lib-generator -c ./bge_small_fp16.cpp -b …...

k8s学习记录(五):Pod亲和性详解

一、前言 上一篇文章初步探讨了 Kubernetes 的节点亲和性&#xff0c;了解到它在 Pod 调度上比传统方式更灵活高效。今天我们继续讨论亲和性同时Kubernetes 的调度机制。 二、Pod亲和性 上一篇文章中我们介绍了节点亲和性&#xff0c;今天我们讲解一下Pod亲和性。首先我们先看…...

MongoDB与PHP7的集成与优化

MongoDB与PHP7的集成与优化 引言 随着互联网技术的飞速发展,数据库技术在现代软件开发中扮演着越来越重要的角色。MongoDB作为一种流行的NoSQL数据库,以其灵活的数据模型和强大的扩展性受到众多开发者的青睐。PHP7作为当前最流行的服务器端脚本语言之一,其性能和稳定性也得…...

maven相关概念深入介绍

1. pom.xml文件 就像Make的MakeFile、Ant的build.xml一样&#xff0c;Maven项目的核心是pom.xml。POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;定义了项目的基本信息&#xff0c;用于描述项目如何构建&#xff0c;声明项目依赖&#xff0c;等等。…...

以科技之力,启智慧出行 —— 阅读《NVIDIA 自动驾驶安全报告》及观看实验室视频有感

作为中南民族大学通信工程专业的学生&#xff0c;近期研读《NVIDIA 自动驾驶安全报告》并观看其实验室系列视频后&#xff0c;我深刻感受到自动驾驶技术不仅是一场交通革命&#xff0c;更是一次社会生产力的解放与民族精神的升华。这场变革的浪潮中&#xff0c;我看到了科技如何…...

2P4M-ASEMI机器人功率器件专用2P4M

编辑&#xff1a;LL 2P4M-ASEMI机器人功率器件专用2P4M 型号&#xff1a;2P4M 品牌&#xff1a;ASEMI 封装&#xff1a;TO-126 批号&#xff1a;最新 引脚数量&#xff1a;3 封装尺寸&#xff1a;如图 特性&#xff1a;双向可控硅 工作结温&#xff1a;-40℃~150℃ 在…...

基础的贝叶斯神经网络(BNN)回归

下面是一个最基础的贝叶斯神经网络&#xff08;BNN&#xff09;回归示例&#xff0c;采用PyTorch实现&#xff0c;适合入门理解。 这个例子用BNN拟合 y x 噪声 的一维回归问题&#xff0c;输出均值和不确定性&#xff08;方差&#xff09;。 import torch import torch.nn a…...

小黑享受思考心流: 73. 矩阵置零

小黑代码 class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""items []m len(matrix)n len(matrix[0])for i in range(m):for j in range(n):if not m…...

整合 | 大模型时代:微调技术在医疗智能问答矩阵的实战应用20250427

&#x1f50e; 整合 | 大模型时代&#xff1a;微调技术在医疗智能问答矩阵的实战应用 一、引言 在大模型技术高速变革的背景下&#xff0c;数据与微调技术不再是附属品&#xff0c;而是成为了AI能力深度重构的核心资产。 尤其在医疗行业中&#xff0c;微调技术改写了智能分诊和…...