发布时间:2026/8/29 15:38:11
SpringCloud——Eureka 微服务注册中心组件使用教程 目录一. 什么是服务提供者与服务消费者二. Eureka注册中心简单介绍三. Eureka注册中心的作用四. 搭建Eureka注册中心4.1 第一步创建微服务项目引入 EurekaServer 依赖4.2 第二步启动类添加 EnableEurekaServer 注解开启 Eureka 注册中心功能4.3 第三步在 EurekaServer 模块中编写 application.yml 文件五. Eureka注册中心实现服务注册5.1 第一步引入 EurekaServer 客户端依赖5.2 第二步在对应业务模块中编写 application.yml 文件六. Eureka是AP还是CP6.1 什么是CAP6.2 Eureka是AP。6.3 Eureka是如何保证AP的6.4 什么是Eureka的自我保护模式这两天开始了我的Java实习生活今天2023年6月27日因为大部分实习生还没有到公司应主管要求给我们几个来得早的实习生分配了一个小任务让我们趁这几天自己搭建做一个小型微服务分布式小系统所以自己也是边学边整理将遇到的问题及知识点整理概括方便日后复习观看。相比说起了微服务大多数在校生或许会觉得他遥不可及或者觉得它比较难。但是现在绝大多数互联网企业几乎都在使用分布式系统。而在微服务框架中SpringCloud 是绝大多数企业最为广泛使用的一个微服务框架所以学习和了解 SpringCloud 对我们来说非常重要对于我们以后面试找工作也是一个很大的加分项。OK下面开始正文一. 什么是服务提供者与服务消费者我们需要知道微服务就是把一个项目拆分成很多功能模块。举例一个电商项目我们可以把它拆分成多个模块比如用户模块商家模块等等。各个模块中只负责自己的那一部分功能别的功能无需关心。当一个模块需要另一个模块中的某个功能时我们只需要让被调用的模块暴露自己的业务接口即可调用者称为服务消费者被调用者称为服务提供者。但是这都只是相对而言的比如说服务A调用了服务B服务B又调用了服务C这时B又是什么角色呢很明显服务B相对于服务A来说是服务提供者服务B相对于服务C来说是服务消费者。因此总结上面所举的例子我们可以得出以下结论1服务提供者暴露接口给其他微服务调用。2服务消费者调用其他微服务提供的接口。3提供者与消费者是相对而言的。4一个服务既可以是提供者又可以是消费者。二. Eureka注册中心简单介绍看下面两张图片order-service是我们微服务项目中的一个订单模块里面含有一个查询订单信息的方法user-service是我们微服务项目中的一个用户模块里面包含了一个查询用户信息的方法。假设现在某位用户要查询某条订单信息而订单信息中又包含了用户信息那么order-service订单模块和user-service用户模块这两个模块之间一定是有调用关系的。但是由于我们已经将他们拆分成了独立的模块它不像单体项目那样是无法直接进行调用的微服务项目中的远程调用大多是以发送http请求的方式来调用其他业务模块的方法但现在问题又来了我们已经对微服务做了拆分从理论上讲我们的订单模块根本就不知道用户模块的存在更无从谈起调用用户模块中的方法了。而且我们如果对user-service模块再做一个集群现在有三个user-service模块order-service又是怎么知道该调用哪一个user-service模块呢这里就需要说到我们的重点了它就是Eureka注册中心看下图当我们加入了eureka注册中心之后(这里eureka注册中心也是一个微服务模块只是没有业务方法但也需要独立出来)在Eureka模块中的pom.xml文件中引入Eureka服务端依赖然后在每个微服务项目中引入Eureka客户端依赖重启项目。它就会把这个分布式项目中所有的模块都记录下来都登记一下名字因为上面我们说到了每一个模块都既有可能是服务提供者也有可能是服务消费者我们将他们全部都登记下来这样当某个模块需要调用另一个模块时它只需要向eureka要就行了看看eureka中有没有。如图中所示order-service从eureka-service中拉取出自己需要的信息即可。这里还有一个问题不知道各位想到了没有假设order-service挑中了localhost8081端口的user-service但是localhost8081端口的user-service业务出现了故障无法对外正常服务怎么办这里就要提到Eureka的另一个功能心跳监控当一个模块被注册到eureka注册中心之后它每隔30秒就会向eureka注册中心发送一次请求好比是心脏跳动每隔30秒跳动一次来向eureka证明自己还在正常运作没有出现故障。如下图所示当一个功能模块没有向eureka发送心跳请求时eureka就会认为它出现故障了然后会将它从注册列表中提出如下图所示假设localhost8083服务出现故障挂掉了此时eureka-service中就会剔除localhost8083这样出现故障的业务就不会被其他业务调用避免了将错误扩大化。三. Eureka注册中心的作用四. 搭建Eureka注册中心上面理论讲解完毕下面我们开始进行实战实际操作配置EurekaServer服务端搭建EurekaServer分为三步4.1 第一步创建微服务项目引入 EurekaServer 依赖!--eureka服务端-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-netflix-eureka-server/artifactId /dependency4.2 第二步启动类添加 EnableEurekaServer 注解开启 Eureka 注册中心功能4.3 第三步在 EurekaServer 模块中编写 application.yml 文件server: port: 10086 # 服务端口 spring: application: name: eurekaserver # eureka的服务名称 eureka: client: service-url: # eureka的地址信息 defaultZone: http://localhost:10086/eureka这里简单说一下配置是干什么的server.port 是配置Eureka的服务端门口spring.application.name 是给我们的这个模块的微服务起名称eureka.client.service-url 要配置我们的Eureka信息因为Eureka本身也是微服务的一部分所以要把自己也注册到微服务中去这里我只写了一个Eureka但实际上我们会建立一个Eureka集群然后集群之间互相注册。完成上述三步我们即可启动启动成功如下所示在ider中当启动成功之后我们点击左侧EurekaServer后面的端口10086或者在自己的浏览器网址输入localhost:10086,即可跳转至对应页面我们点进去看一下可以有一部分人会看不懂啊这里只看我红线圈出来的部分即可那句英语翻译过来就是“注册到EurekaServer”的实例。这里可能会有人有疑问什么是实例一个服务每给它部署一个它就是一个实例EurekaServer会记录所有的实例但现在我们只部署了一个EurekaServer没有部署别的实例所以上面显示只有一个实例如上图中所示Application就是服务的实例名称。Status就是服务的IP地址和端口。五. Eureka注册中心实现服务注册OK上面我们已经将EurekaServer配置完成接下来我们实现服务注册关于服务配置只需要两步就够了。刚才我们配置EurekaServer引入的依赖是EurekaServer的服务端接下来我们注册需要引入EurekaServer的客户端引入的依赖与刚才略有差别各位小伙伴要注意5.1 第一步引入 EurekaServer 客户端依赖!--eureka客户端依赖-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-netflix-eureka-client/artifactId /dependency5.2 第二步在对应业务模块中编写 application.yml 文件内容如下所示spring: application: name: userservice eureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka配置成功如图所示打开自己电脑的浏览器输入localhost:10086查看我们可以得到如下图片中的情况可以看到user-service和eureka-service已经启动成功了。同理我们也可以按照同样的方法启动order-service第一步向order-service项目中添加依赖!--eureka客户端依赖-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-netflix-eureka-client/artifactId /dependency第二步编写order-service业务模块的application.yml文件这里我就不展示了。完成上述两步之后启动order-service模块打开浏览器输入localhost:10086查看得到如下结果可以看到order-service模块和user-service模块都已经启动成功了。但这里大家要注意其实每个模块的服务实力都是一个列表正常情况下都不止一个但我这里只列举了一个那么我也来试着展示一下列表的情况吧很简单我们来看只需要在已经启动某个模块上单击右键点击复制配置这里我下载了中文补丁正常情况下为 Copy Configuration点击了 Copy Configuration 之后,就会出现下面这个框框、这里修改一下名称不要和刚才的一样避免冲突还有一个需要修改的就是虚拟机选项这里填写为 -Dserver.port8082被复制的模块端口号为8081所以新复制的不能与被复制的端口号一样否则会端口冲突这里需要修改我修改的是8082其实改成什么都可以只要是一个空闲端口。修改后如下图所示点击应用点击确认然后启动这个复制的模块打开浏览器输入localhost:10086即可看到下图种情况这时我们可以清楚的看到USERSERVICE后面是两个端口分别是8081和8082。六. Eureka是AP还是CP6.1 什么是CAPCAP原则又称CAP定理指的是在一个分布式系统中一致性Consistency、可用性Availability、分区容错性Partition tolerance。在实际运作过程中通常这三者很难无法同时达到由于网络硬件肯定会出现延迟丢包等问题但是在分布式系统中我们必须保证部分网络通信问题不会导致整个服务器集群瘫痪另外即使分成了多个区当网络故障消除的时候我们依然可以保证数据一致性所以我们必须保证分区容错性。至于剩下的一致性和可用性我们则需要二选一鱼和熊掌不可兼得假设我们选择一致性那我们就不能让用户访问无法进行数据同步的机器毕竟该机器上的数据和其他正常机器上的不一致但是这样我们就丢弃了可用性违背了一致性Consistency的要求只满足可用性和分区容错即AP假设我们选择可用性那我们就可以让用户访问无法进行数据同步的服务器虽然保证了可用性但是我们无法保证数据一致性。违背了可用性Availability的要求只满足一致性和分区容错即CP6.2 Eureka是AP。Eureka在设计时就优先保证可用性。Eureka的AP结构选择了高可用和分区容错性。假如我们Eureka服务中某个节点服务宕机了依然可以向系统提供服务不过它的数据就不能保证是同步的了失去了C属性。Eureka就是一个AP架构的例子当Eureka客户端心跳消失的时候那Eureka服务端就会启动自我保护机制不会剔除该EurekaClient客户端的服务依然可以提供需求所以Eureka是AP机制。6.3 Eureka是如何保证AP的eureka在设计时的分区容错保证了eureka各个节点都是平等的只要不是所有节点都挂掉eureka就可以正常注册与使用几个节点挂掉不会影响正常节点的工作剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败则会自动切换至其它节点只要有一台Eureka还在就能保证注册服务可用保证可用性只不过查到的信息可能不是最新的不保证强一致性。6.4 什么是Eureka的自我保护模式eureka server自我保护模式指的是如服务长时间没有收到心跳导致未能及时续约会等待修复而不是服务剔除是一种针对网络异常波动的安全措施能够保证服务的高可用。自我保护模式情况下如果该服务长时间未能收到心跳而导致服务过期eureka server仍然能够接收新的服务注册和查询但不会同步到其他节点上当前节点依然可用网络稳定后新注册的信息会被同步到其他节点中。

相关新闻

2026/8/29 11:26:54

AMBA AXI4 协议实战:3种突发传输模式与Verilog实现要点解析

AMBA AXI4 协议实战:3种突发传输模式与Verilog实现要点解析 在当今复杂片上系统(SoC)设计中,高效的总线协议是实现高性能数据传输的关键。AMBA AXI4作为ARM公司推出的第四代高级可扩展接口协议,已成为业界事实上的标准。本文将深入探讨AXI4协…

2026/8/28 5:09:46

SpringCloud——Ribbon 微服务负载均衡原理解析

目录 一. 场景了解 二. Ribbon 负载均衡功能验证 三. Ribbon 工作原理简介 一. 场景了解 在讲解 Ribbon 负载均衡原理之前,我们要先了解服务的拉取,我们知道,在微服务中,一个模块想要调用另一个模块中的某个功能,需…

2026/8/23 13:02:08

Codex在Windows电脑安装失败

获取 Codex 离线安装包 打开这个网站: https://store.rg-adguard.net/ 这个站点的作用是把微软商店里的应用下载链接解析出来,让你直接下载安装文件。 进去之后你会看到一个搜索框: 1、把左边的下拉菜单选成 ProductId 2、在搜索框里输…

2026/8/29 15:37:30

Taste-Skill:3步让AI生成的页面摆脱“一眼AI“味

Taste-Skill:3步让AI生成的页面摆脱"一眼AI"味 【免费下载链接】taste-skill Taste-Skill - gives your AI good taste. stops the AI from generating boring, generic slop 项目地址: https://gitcode.com/GitHub_Trending/ta/taste-skill 让AI…

2026/8/29 15:37:30

深入解析LC串并联谐振:从基础原理到LLC变换器与滤波器设计实践

1. 项目概述:从“谐振”现象说起在电子电路的世界里,尤其是涉及信号处理、能量传输和频率选择的场景,“谐振”是一个绕不开的核心概念。我第一次被这个概念震撼,是在调试一个简单的收音机电路时,仅仅通过调节一个可变电…

2026/8/29 15:37:30

大模型评测防作弊:数据污染检测与抗过拟合评测流程

最近关于大模型评测的话题又引起了不小的讨论。有研究人员在独立测试国内某头部大模型时发现,模型在公共测试环境中的表现与换用一套全新题目后的表现存在明显差距,甚至怀疑模型通过某种方式“绕过”了测试环境。消息一出,技术圈讨论很多&…

2026/8/29 15:32:29

AI对年轻人思维与幸福感的冲击:技术防护与可控使用方案

“我讨厌人工智能对年轻人的思想和幸福所做的一切。”这句话正在从一句私人抱怨,变成越来越多技术人、家长和教育者绕不开的议题。作为一个每天接触大模型、AI绘画、AI视频、AI编程助手和各类智能体的开发者,我也在反复观察同一件事:AI 到底在…

2026/8/28 16:16:17

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/28 16:16:21

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 16:16:22

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/29 0:01:10

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:01:10

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:01:10

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…