【springcloud学习(dalston.sr1)】Eureka服务端集群的搭建(含源代码)(二)
该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一)
这篇文章主要介绍多个eureka服务端的集群环境是如何搭建的。
(一)eureka的简要说明
Eureka是用来进行服务注册与发现的。类似于一栋写字楼,有很多公司入驻,但入驻前需要先在大楼的物业处进行注册登记。Eureka也分为服务端和客户端,服务端是提供服务注册和服务发现,通过访问服务端,能获取到一个服务注册列表。客户端则需要访问服务端,以将自己注册到服务端。类似于写字楼的物业公司,通常自己不用注册,但其他入驻的公司,需要在物业处进行注册,其他公司在物业处,能获取到注册登记的公司列表。
(二)eureka服务端集群搭建
(1)新建3个module
这里通过了3个模块,来模拟eureka服务端集群的搭建。首先在IDEA的springcloud2025项目中新建了3个module,如下图。
(2)在新建号的module中,比如microservicecloud-eureka-7001模块中,在POM引入相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud2025</artifactId><groupId>com.company</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>microservicecloud-eureka-7001</artifactId><!-- Eureka-server服务端 --><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency></dependencies></project>
(3)主机域名地址映射修改,通过修改路径C:\Windows\System32\drivers\etc\hosts文件,增加3个域名映射。这样访问http://eureka7001.com的效果等同于访问http://localhost(当然访问http://eureka7002.com的效果也同样等同于访问http://localhost),这里只是在一台机器上模拟不同域名的主机,所以就这样处理了下。实际项目场景中应该是不同的主机。
(4)编写microservicecloud-eureka-7001项目的application.yml文件,如下图,其中配置了当前项目的端口号为7001,并设置了eureka服务端主机名称为eureka7001.com(这里另外2个eureka服务的主机名分别是eureka7002.com、eureka7003.com,这里涉及到主机域名地址映射修改,后面会提到)。需要注意的是服务端自己不注册自己,也不需要检索服务,所以配置项eureka.client.register-with-eureka和eureka.client.fetch-register的值都为false,由于是集群搭建,也需要提供另外两个eureka服务端的地址,也即配置eureka.client.service-url.defaultZone=http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/。由于当前服务部署的主机对应域名为eureka7001.com,这里的defaultZone就需要配置成另外两个http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/,这样是为了起到集群的作用(如果不做eureka集群,则这里的地址直接填写为本机地址即可,也即http://localhost:7001/eureka)。
server:port: 7001eureka:instance:hostname: eureka7001.com #eureka服务端的实例名称client:register-with-eureka: false #false表示不向注册中心注册自己fetch-register: false #false表示自己端就是注册中心,我的职责就是维护服务实力,并不需要去检索服务service-url:defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ # http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与erueka server交互的地址查询服务和注册服务,都需要依赖于这个地址
(5)在启动类上加@EnableEurekaServer注解,已启用eureka服务,并表明当前服务是eureka的服务端。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer
public class EurekaServer7001Application {public static void main(String[] args) {SpringApplication.run(EurekaServer7001Application.class, args);}
}
项目结构如下:
(6)经过以上步骤,项目microservicecloud-eureka-7001就配置好了。参照这个项目,同样新建另外两个microservicecloud-eureka-7002和microservicecloud-eureka-7003。需要注意的是配置文件信息稍有差别。比如microservicecloud-eureka-7002的配置文件为
server:port: 7002eureka:instance:hostname: eureka7002.com #eureka服务端的实例名称,如果没有做eureka集群,这里直接填localhost即可client:register-with-eureka: false #false表示不向注册中心注册自己fetch-register: false #false表示自己端就是注册中心,我的职责就是维护服务实力,并不需要去检索服务service-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/ #设置与erueka server交互的地址查询服务和注册服务,都需要依赖于这个地址
microservicecloud-eureka-7003的yml配置文件为
server:port: 7003eureka:instance:hostname: eureka7003.com #eureka服务端的实例名称client:register-with-eureka: false #false表示不向注册中心注册自己fetch-register: false #false表示自己端就是注册中心,我的职责就是维护服务实力,并不需要去检索服务service-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/ #设置与erueka server交互的地址查询服务和注册服务,都需要依赖于这个地址
(7)然后可以启动项目了,首先启动microservicecloud-eureka-7001。需要注意的是由于构建的是集群项目,所以这个项目启动时,另外2个项目还未启动,所以控制台可能报如下错误,可以暂时忽略。此时再依次启动另外microservicecloud-eureka-7002项目和microservicecloud-eureka-7003项目(启动microservicecloud-eureka-7002、microservicecloud-eureka-7003时,由于前面已经启动了microservicecloud-eureka-7001项目,所以这两个项目启动过程中不会报以下错误)
3个项目启动完成后,我们可以在浏览器中输入http://eureka7001.com:7001访问(这里依赖于前面第3部配置的主机名和地址映射,或者直接输入http://localhost:7001也能访问),看到如下页面,即表示eureka服务启动正常了。类似的在浏览器中输入http://eureka7002.com:7002和http://eureka7003.com:7003也是类似的效果
(8)通过上述步骤,由3个项目搭建的eureka服务端集群就搭建好了。
相关文章:

【springcloud学习(dalston.sr1)】Eureka服务端集群的搭建(含源代码)(二)
该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一) 这篇文章主要介绍多个eureka服务端的集群环境是如何搭建的。 (一)eureka的简要说明 Eu…...
【匹配】Needleman–Wunsch
Needleman-Wunsch 文章目录 Needleman-Wunsch1. 算法介绍2. 公式及原理3. 伪代码 1. 算法介绍 背景与目标 Needleman–Wunsch 算法由 Saul B. Needleman 和 Christian D. Wunsch 于1970年提出,是用于生物序列(如蛋白质或 DNA)全局比对&#x…...

崩坏星穹铁道 3.3 版本前瞻活动攻略:在黎明升起时坠落
《崩坏星穹铁道》3.3 版本 “在黎明升起时坠落” 将于 5 月 21 日正式上线。本次版本更新内容丰富,新角色、新地图、新活动和新周本 BOSS 等精彩内容,等待开拓者们前去体验。下面就为大家带来 3.3 版本的前瞻活动攻略。 一、新角色与卡池 1.上半卡池&am…...

OneNote内容太多插入标记卡死的解决办法
OneNote内容太多插入标记卡死的解决办法 针对平板电脑的OneNote用户适合此类情况: 当向电脑导入几百页pdf可以正常使用,唯独插入标记的时候OneNote直接罢工,只能关闭。关闭时还可能会出现0x000000fxxxxx的错误。 注:仅对于平板…...

fpga系列 HDL : Microchip FPGA开发软件 Libero Soc 安装 license申请
启动 注册账号:https://login.microchip.com/申请免费许可:https://www.microchipdirect.com/fpga-software-products C:\Windows\System32>vol驱动器 C 中的卷是 Windows卷的序列号是 ****-****为“D:\Microsemi\License.dat”创建环境变量“LM_LICE…...

极简主义现代商务风格PPT模版6套一组分享下载
现代商务风格PPT模版下载https://pan.quark.cn/s/12fbc52124d9 第一张PPT模版,简约风,橄榄绿背景,黑色竖条装饰,文字有中英文标题和占位符。需要提取关键元素:简约、橄榄绿、对称布局、占位文本的位置。 风格&#…...

解码生命语言:深度学习模型TranslationAI揭示RNA翻译新规则
RNA翻译是基因表达的核心环节,其精确调控依赖于翻译起始位点(TIS)和终止位点(TTS)的准确识别。传统方法依赖于简单的经验规则(如Kozak序列或最长开放阅读框ORF),但忽略了RNA结构、顺…...

重磅发布!OpenAI 推出最新模型 GPT-4.1 系列!
今日凌晨,OpenAI宣布开放全新模型GPT-4.1,并于即日起在ChatGPT中投入使用。 超长上下文与卓越编码能力 GPT-4.1作为OpenAI的最新模型,支持长达100万tokens的上下文,是OpenAI首次发布的长窗口模型。相较于前代,GPT-4.1…...
配置别名路径 @
CRA本身把webpack配置包装到了黑盒里无法直接修改,需要借助一个插件 - craco 1. 路径解析配置(Webpack)-- craco 插件 把 / 解析为 src/ 配置步骤: 1.安装 craco npm i -D craco/craco 2. 项目根目录下创建配置文件 craco.co…...
给视频加一个动画。
为什么要给视频加一个动画? 很完整的视频也就是从短动画开始的。遮盖住LOG用。 C:\Users\Sam\Desktop\desktop\startup\workpython\ocr Lottie.py import subprocessdef run_ffmpeg(cmd):print("Running:", " ".join(cmd))subprocess.run(cm…...

sqli-labs靶场第七关——文件导出注入
一:目标 通过sql注入将php代码写入网站目录,通过这个php文件执行命令 二:确认前置条件 %secure_file_priv% 首先我们需要Mysql是否允许导出文件 先尝试在网页中sql注入,检查导出权限 ?id1)) union select 1,secure_file_pr…...
uniapp 弹窗封装(上、下、左、右、中五个方位)
无脑复制即可!!! <template><view><viewv-if"mask"class"tui-drawer-mask":class"{ tui-drawer-mask_show: visible }":style"{ zIndex: maskZIndex }"tap"handleMaskClick&qu…...

解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs-docker MCP解析
解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs-docker MCP解析 这里面有很重要的原因其中一个很其中一个原因是因为如果你使用docker的方式,你可以在虚拟环境下就类似于这个沙箱的这个机制可以进行隔离。这对于安全,…...
Modern C++(一)基本概念
1、基本概念 1.1、注释 注释在翻译阶段3会被替换为单个空白字符从程序中移除 1.2、名字与标识符 标识符是一个由数字、下划线、大小写字符组成的任意长度序列。有效的标识符首个字符必须是以A-Z、a-z、下划线开头,。有效的标识符其他字符可以是0-9、A-Z、a-z、下…...

OpenCV图像旋转原理及示例
OpenCV计算机视觉开发实践:基于Qt C - 商品搜索 - 京东 图像旋转是数字图像处理的一个非常重要的环节,是图像的几何变换手法之一。图像旋转算法是图像处理的基础算法。在数字图像处理过程中,经常要用到旋转,例如在进行图像扫描时…...
LLM Text2SQL NL2SQL 实战总结
目录 尽量全面的描述表的功能 尽量全面的描述字段的功能 适当放弃意义等价的字段 放弃业务上无用的字段 对于LLM来说,由于它没有什么行业经验,所以我们需要尽可能的给予它恰当的“背景信息”,才能使它更好的工作。所谓恰当,不是越多越好,因为太多的信息会消耗掉LLM的可…...
k8s 中使用 Service 访问时NetworkPolicy不生效问题排查
背景 针对一个服务如下NetworkPolicy, 表示只有n9e命名空间的POD才能访问 k8s-man 服务 kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata:name: k8s-mannamespace: n9elabels:app: k8s-manversion: v1 spec:podSelector:matchLabels:app: k8s-manversion: v1…...

【实战篇】数字化打印——打印部署管理接口开发
前言 前面的章节已经介绍了打印管理模块的主要界面设计,本篇介绍用myBuilder开发界面接口,实现最终的功能。 1. 配置打印应用菜单 首先配置挂载好模块菜单 让菜单点击能访问到对应的页面 2. 打印部署管理数据表详细设计 以下是打印部署管理的数据表字…...

MacOS Python3安装
python一般在Mac上会自带,但是大多都是python2。 python2和python3并不存在上下版本兼容的情况,所以python2和python3可以同时安装在一台设备上,并且python3的一些语法和python2并不互通。 所以在Mac电脑上即使有自带python,想要使…...
磁盘I/O瓶颈排查:面试通关“三部曲”心法
想象一下,你就是线上系统的“交通调度总指挥”,服务器的磁盘是所有数据进出的“核心枢纽港口”。当这个“港口”突然拥堵不堪,卡车(数据请求)排起长龙,进不去也出不来,整个系统的“物流”&#…...

idea启动报错:java: 警告: 源发行版 11 需要目标发行版 11(亲测解决)
引起原因 idea的jdk没有替换干净 1.配置project file–Project Structrue–Project 2.配置Modules-Sources file–Project Structrue–Modules-Sources 改为jdk11 3.配置Modules-Dependencies file–Project Structrue–Modules-Dependencies...
树莓派4 yolo 11l.pt性能优化后的版本
树莓派4 使用 Picamera2 拍摄图像,然后通过 YOLO11l.pt 进行目标检测,并在实时视频流中显示结果。但当前的代码在运行时可能会比较卡顿,主要原因包括: picam2.capture_array() 是一个较慢的操作;YOLO 推理可能耗时较长…...
鸿蒙OSUniApp开发支持多语言的国际化组件#三方框架 #Uniapp
使用UniApp开发支持多语言的国际化组件 在全球化的今天,一个优秀的应用往往需要支持多种语言以满足不同地区用户的需求。本文将详细讲解如何在UniApp框架中实现一套完整的国际化解决方案,从而轻松实现多语言切换功能。 前言 去年接手了一个面向国际市场…...
国产数据库工具突围:SQLynx如何解决Navicat的三大痛点?深度体验报告
引言:Navicat的"中国困境" 当开发者面对达梦数据库的存储过程调试,或是在人大金仓中处理复杂查询时,Navicat突然变得力不从心——这不是个例。 真实痛点:某政务系统迁移至OceanBase后,开发团队发现Navicat无…...

《Adversarial Sticker: A Stealthy Attack Method in the Physical World》论文分享(侵删)
原文链接:Adversarial Sticker: A Stealthy Attack Method in the Physical World | IEEE Journals & Magazine | IEEE Xplore author{Xingxing Wei and Ying Guo and Jie Yu} 摘要 为了评估深度学习在物理世界中的脆弱性,最近的工作引入了对抗补丁…...
Python生成器:高效处理大数据的秘密武器
生成器概述 生成器是 Python 中的一种特殊迭代器,通过普通函数的语法实现,但使用 yield 语句返回数据。生成器自动实现了 __iter__() 和 __next__() 方法,因此可以直接用于迭代。生成器的核心特点是延迟计算(lazy evaluation&…...
React Native/Flutter 原生模块开发
以下是关于 React Native 和 Flutter 原生模块开发的基本知识点总结: 一、核心概念对比 维度React NativeFlutter架构基础JavaScriptCore/Hermes + Bridge/TurboModulesDart VM + Skia引擎原生交互方式Native Modules + Native UI ComponentsPlatform Channels + Platform Vie…...

嵌入式STM32学习——继电器
继电器模块引脚说明 VCC(): 供电正极。连接此引脚到电源(通常是直流电源),以提供继电器线圈所需的电流。 GND(-): 地。连接此引脚到电源的负极或地。 IN(或…...

从基础到实习项目:C++后端开发学习指南
在当今技术快速迭代的背景下,后端开发作为软件工程的核心支柱持续发挥着关键作用。C凭借其卓越的性能表现和系统级控制能力,依然是构建高性能后端服务的首选语言之一。本文将系统性地解析现代C后端开发的核心技术体系,包括从语言特性精要到架…...
AI软件汇总与功能解析:赋能未来的智能工具库
人工智能(AI)技术的快速发展催生了大量功能强大的软件工具,覆盖自然语言处理、计算机视觉、数据分析、自动化决策等多个领域。本文将汇总当前主流的AI软件,并解析其核心功能与应用场景,为企业和开发者提供参考指南。 一…...