在 IntelliJ IDEA 中启动多个注册到 Nacos 的服务

使用场景:边改代码,边和前端联调。

在微服务架构中,服务注册与发现是核心功能之一。Nacos 作为一款流行的开源服务注册与配置管理工具,被广泛应用于微服务架构中。本文将介绍如何在 IntelliJ IDEA 中配置并启动多个注册到 Nacos 的服务,同时确保这些服务使用随机端口启动,且不影响前端联调。

1. 为什么要使用随机端口?

在开发环境中,我们通常需要同时启动多个服务实例。如果每个服务都固定使用同一个端口,那么在启动多个实例时会发生端口冲突。为了避免这种情况,我们可以让每个服务实例使用随机端口启动。Nacos 在注册服务时只关注服务名称,而不关注具体端口,因此使用随机端口不会影响服务的注册与发现。

2. 配置 IntelliJ IDEA 启动多个服务

在 IntelliJ IDEA 中,我们可以通过配置多个运行/调试配置(Run/Debug Configurations)来启动多个服务实例。以下是具体步骤:

2.1 创建运行/调试配置
  1. 打开 IntelliJ IDEA,进入 Run 菜单,选择 Edit Configurations...
  2. 点击左上角的 + 按钮,选择 Application,创建一个新的运行配置。
  3. Name 字段中输入一个有意义的名称,例如 ContractApplication_0
  4. Main class 字段中输入你的主类,例如 xxxxContractApplication
  5. VM options 字段中添加以下参数:
    -Dserver.port=0
    
    这个参数会告诉 Spring Boot 使用随机端口启动服务。
  6. 确保 Use classpath of module 字段选择的是你的项目模块,例如 contract-server
  7. 点击 OK 保存配置。
2.2 复制运行配置

为了启动多个服务实例,我们可以复制刚才创建的运行配置:

  1. Run/Debug Configurations 窗口中,右键点击刚刚创建的配置(例如 ContractApplication_0),选择 Copy
  2. 在复制的配置中,修改 Name 字段为 ContractApplication_1
  3. 重复上述步骤,创建更多运行配置,例如 ContractApplication_2ContractApplication_3 等。
2.3 启动多个服务
  1. Run 菜单中,选择 Run...
  2. 在弹出的窗口中,选择你创建的运行配置(例如 ContractApplication_0),然后点击 OK
  3. 重复上述步骤,依次启动其他运行配置(例如 ContractApplication_1ContractApplication_2 等)。

3. 验证服务是否注册到 Nacos

启动多个服务实例后,我们可以通过 Nacos 控制台验证这些服务是否成功注册:

  1. 打开 Nacos 控制台,进入 服务管理 页面。
  2. 在服务列表中找到你的服务名称(例如 contract-server)。
  3. 点击服务名称,进入服务详情页面,查看注册的服务实例列表。
  4. 你应该能看到多个服务实例,每个实例的 IP 和端口可能不同。

4. 前端联调

由于 Nacos 只关注服务名称,而不关注具体端口,前端在联调时只需要通过服务名称访问服务即可。Nacos 会自动将请求路由到可用的服务实例,因此前端不需要关心具体的服务端口。

5. 总结

通过在 IntelliJ IDEA 中配置多个运行/调试配置,并使用 -Dserver.port=0 参数让服务使用随机端口启动,我们可以轻松地在本地环境中启动多个注册到 Nacos 的服务实例。这种方法不仅避免了端口冲突,还确保了服务的正常注册与发现,同时不会影响前端的联调工作。

希望本文对你有所帮助!如果有任何问题,欢迎在评论区留言。

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

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

相关文章

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址:https://github.com/deepseek-ai/DeepEP 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天 (2/5)! ​ ​ 引言 在大模型训练中,混合专家模型(Mixture-of-Experts, MoE)因其动…

HTTP学习——————(四)TLS等加密算法

前文学习: 一、二、三 学习来源网站 : 极客时间 TLS 目的:身份验证、保密性、完整性 解决问题: Record记录协议——对称加密 Handshake握手协议———1.验证通讯双方身份 2.交换加解密安全套件 3.协商加密参数 有密钥交换算法…

FastExcel vs EasyExcel vs Apache POI:三者的全面对比分析

一、核心定位与历史沿革 Apache POI(1990s-) 作为Java生态中最古老的Excel处理库,提供对.xls/.xlsx文件的全功能支持。其核心价值在于对Excel规范的完整实现,包括单元格样式、公式计算、图表操作等深度功能。但存在内存消耗大&…

辛格迪客户案例 | 鼎康生物电子合约系统(eSign)项目

01 案例企业 鼎康(武汉)生物医药有限公司于2013年06月19日成立 ,是一家总部位于湖北武汉的CDMO公司,坚持以客户为中心,以及时、经济和高质量为服务导向。鼎康生物拥有先进的150,000平方英尺的生产厂房,生产设施位于中国武汉的Bio…

multer 依赖详解

multer 是一个用于处理 multipart/form-data 类型表单数据的 Node.js 中间件,主要用于文件上传。它基于 busboy 构建,使用起来非常方便。 一、安装 npm install multer 二、基本使用 const express require("express");const multer req…

点云配准技术的演进与前沿探索:从传统算法到深度学习融合(4)

4、点云配准面临的挑战与应对策略 4.1 点云配准面临的主要挑战 在点云配准的实际应用中,尽管已经取得了显著的研究成果,但仍然面临着诸多复杂而严峻的挑战,这些挑战严重制约了点云配准技术在更多领域的广泛应用和深入发展。 在自动驾驶场景…

PostgreSQL10 物理流复制实战:构建高可用数据库架构!

背景 PostgreSQL 10 在高可用架构中提供了物理复制,也称为流复制(Streaming Replication),用于实现实例级别的数据同步。PostgreSQL 复制机制主要包括物理复制和逻辑复制:物理复制依赖 WAL 日志进行物理块级别的同步&…

⭐算法OJ⭐位操作实战【计数】(C++ 实现)

191. Number of 1 Bits Given a positive integer n, write a function that returns the number of set bits in its binary representation (also known as the Hamming weight). int hammingWeight(uint32_t n) {int count 0;while (n) {count n & 1; // 检查最低位…

从二维随机变量到多维随机变量

二维随机变量 设 X X X和 Y Y Y是定义在同一样本空间 Ω \varOmega Ω上的两个随机变量,称由它们组成的向量 ( X , Y ) (X, Y) (X,Y)为二维随机变量,亦称为二维随机向量,其中称 X X X和 Y Y Y是二维随机变量的分量。 采用多个随机变量去描述…

RabbitMQ系列(一)架构解析

RabbitMQ 架构解析 RabbitMQ 是一个基于 AMQP 协议的开源消息中间件,其核心架构通过多组件协作实现高效、可靠的消息传递。以下是其核心组件与协作流程的详细说明: 一、核心组件与功能 Broker(消息代理服务器) RabbitMQ 服务端核…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_list_init

ngx_list_init 定义在 src\core\ngx_list.h static ngx_inline ngx_int_t ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size) {list->part.elts ngx_palloc(pool, n * size);if (list->part.elts NULL) {return NGX_ERROR;}list->par…

Linux切换Python版本

1、更新apt sudo apt update2、查询python安装路径 which python 或者which python33、查询安装版本 # 查看所有以 "python" 开头的命令(包括版本号) ls -l 安装路径* 例如 ls -l /usr/bin/python*4、修改软连接 udo unlink /usr/bin/pyt…

Spring Cloud之注册中心之Nacos的使用

目录 Naacos 服务注册/服务发现 引⼊Spring Cloud Alibaba依赖 引入Nacos依赖 引入Load Balance依赖 配置Nacos地址 服务端调用 启动服务 Naacos Nacos是Spring Cloud Alibaba的组件, Spring Cloud Alibaba遵循Spring Cloud中定义的服务注册, 服务发现规范. 因此使⽤Na…

使用通义万相Wan2.1进行视频生成

使用通义万相Wan2.1进行视频生成 源代码准备运行环境准备创建Python虚拟环境并激活安装依赖包 模型下载生成视频官网的视频生成例子简单描述场景视频生成示例详细描述场景视频生成示例 最近通义万相开源了其视频生成模型。模型有两个版本,一个是1.3B的,一…

鸿蒙HarmonyOS 开发简介

鸿蒙开发入门教程 一、技术简介 鸿蒙操作系统(HarmonyOS)是面向万物互联时代的全场景分布式操作系统,具备分布式软总线、分布式数据管理、分布式任务调度等核心能力,能让设备间实现无缝连接与协同,为用户提供统一、流…

docker和containerd从TLS harbor拉取镜像

私有镜像仓库配置了自签名证书,https访问,好处是不需要处理免费证书和付费证书带来的证书文件变更,证书文件变更后需要重启服务,自签名证书需要将一套客户端证书存放在/etc/docker/cert.d目录下,或者/etc/containerd/c…

linux ununtu通过nginx-1.6.2.tar.gz安装nginx并安装在自定义目录XXX下 的步骤

Ubuntu 下通过源码安装 Nginx 1.6.2 到自定义目录 /home/aot/nginx 的步骤 以下是将 Nginx 1.6.2 源码包离线安装到自定义目录的详细流程,包含依赖管理、编译配置和服务管理: 一、准备工作 1. 下载源码包和依赖(需联网环境准备)…

C++ 变量的输入输出教程

一、变量的基本概念 在 C 中,变量是用于存储数据的命名内存位置。在使用变量之前,需要先声明它的类型和名称,这样编译器才能为其分配适当大小的内存空间。例如: int age; // 声明一个整型变量 age double salary; // 声明一个…

React底层常见的设计模式

在React中,常见的设计模式为开发者提供了结构化和可重用的解决方案,有助于提高代码的可维护性和可扩展性。以下是对React中几种常见设计模式的详细解析,并附上示例代码和注释: 1. 容器组件与展示组件模式(Container/P…

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速)

给出三维下的交互式多模型(IMM)matlab例程,模型使用匀速运动CV和匀加速运动CA,滤波使用EKF(扩展卡尔曼滤波) 文章目录 代码运行结果程序结构 代码讲解模型定义:轨迹生成:IMM核心流程…