news 2026/9/17 2:27:18

linux-tutorial 项目实践:Nacos 从零安装、启动与微服务注册发现实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux-tutorial 项目实践:Nacos 从零安装、启动与微服务注册发现实战指南

linux-tutorial 项目实践:Nacos 从零安装、启动与微服务注册发现实战指南

【免费下载链接】linux-tutorial:penguin: Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本项目地址: https://gitcode.com/GitHub_Trending/lin/linux-tutorial

本篇指南以 linux-tutorial 项目中的 Nacos 安装配置文档 为主线,系统讲解 Nacos 的预备环境、源码与发行包两种获取方式、单机启动、基于 Open API 的服务注册/发现与配置管理、以及优雅关闭等完整操作流程,并结合仓库内配套的 nacos-install.sh 等一键安装脚本与 JDK/Maven 安装文档进行源码级佐证。读完本文,你将能够在 Linux/Unix/Mac/Windows 环境中独立完成 Nacos 的部署,并通过 RESTful 接口完成微服务的注册发现与动态配置读写。

1. 预备环境准备

Nacos(Dynamic Naming and Configuration Service)是一款用于发现、配置和管理微服务的软件,它基于 Java 实现,因此运行环境首先依赖 JDK。官方要求的环境清单如下:

依赖项版本要求用途
操作系统64 bit OS,支持 Linux/Unix/Mac/Windows,推荐 Linux/Unix/MacNacos 服务器运行载体
JDK64 bit JDK 1.8+Nacos 运行时依赖
MavenMaven 3.2.x+(仅源码构建时需要从源码编译 Nacos 需要

其中有两项关键约束值得注意:

  • 若仅以发行包方式部署 Nacos,只需要 JDK 即可,Maven 并非必需;只有当你要从源码构建 Nacos 时,才需要配置 Maven 环境。
  • 官方推荐在 Linux/Unix/Mac 环境下部署,Windows 虽可运行,但更适合用于本地开发调试。

在本仓库中,JDK 与 Maven 的安装均提供了配套文档和脚本:

  • JDK 安装:可参考 docs/linux/soft/jdk-install.md,该文档覆盖 Windows 环境变量(JAVA_HOMECLASSPATHPATH)配置、Linux 下解压 tar.gz 并写入/etc/profile的方法,以及 RedHat 发行版 rpm 安装方式。仓库还提供了 CentOS 下的 jdk8-install.sh,一条命令即可完成安装:
    yum -y install java-1.8.0-openjdk-devel.x86_64 java -version # 验证安装
  • Maven 安装:可参考 docs/linux/soft/maven-install.md 与 maven-install.sh。其中安装脚本还额外完成了将 Maven 镜像替换为阿里云镜像(settings-aliyun.xml)的加速配置,并自动将MAVEN_HOME写入/etc/profile
    export MAVEN_HOME=/opt/maven/apache-maven-3.6.0 export PATH=$MAVEN_HOME/bin:$PATH

完成上述环境准备后,可以通过java -versionmvn -v两条命令分别验证 JDK 与 Maven 是否就绪。

2. 获取 Nacos:源码编译与发行包两种方式

Nacos 可以通过源码编译下载发行包两种途径获取,前者适合需要定制或研究源码的场景,后者适合生产环境快速部署。

2.1 从源码编译(需要 Maven)

从源码获取 Nacos 需要先克隆代码,然后使用 Maven 构建发行包:

git clone https://github.com/alibaba/nacos.git cd nacos/ mvn -Prelease-nacos clean install -U ls -al distribution/target/ # change the $version to your actual path cd distribution/target/nacos-server-$version/nacos/bin

该方式的关键点在于:

  • -Prelease-nacos激活 release 构建 profile,用于打包出可供分发的nacos-server产物;
  • 构建产物位于distribution/target/目录下,其中包含nacos/bin下的启动与关闭脚本;
  • 由于国内网络环境访问 Maven 中央仓库较慢,建议先参照 maven-install.sh 将 Maven 配置为阿里云镜像,可显著缩短依赖下载时间。

2.2 下载编译好的发行包(推荐)

从 Nacos 官方 Release 页面下载nacos-server-$version.zip(或.tar.gz),解压后即可使用:

unzip nacos-server-$version.zip # 或 tar -xvf nacos-server-$version.tar.gz cd nacos/bin

2.3 仓库配套的一键安装脚本

本仓库在 codes/linux/soft/nacos-install.sh 中提供了一个开箱即用的安装脚本,它在启动前会先做依赖检查,再自动完成下载、解压与目录整理:

#!/usr/bin/env bash # 需要提前安装 jdk、maven;@system: 适用于所有 linux 发行版本 # 1. 依赖检查:缺少 java 或 mvn 直接退出 command -v java > /dev/null 2>&1 || { printf "${RED}Require java but it's not installed.${RESET}\n"; exit 1; } command -v mvn > /dev/null 2>&1 || { printf "${RED}Require mvn but it's not installed.${RESET}\n"; exit 1; } # 2. 参数处理:version 默认 1.0.0,root 默认 /opt/nacos version=1.0.0 if [[ -n $1 ]]; then version=$1; fi root=/opt/nacos if [[ -n $2 ]]; then root=$2; fi # 3. 下载发行包并解压 mkdir -p ${root} curl -o ${root}/nacos-server-${version}.zip \ https://github.com/alibaba/nacos/releases/download/${version}/nacos-server-${version}.zip unzip ${root}/nacos-server-${version}.zip -d ${root}/nacos-server-${version} mv ${root}/nacos-server-${version}/nacos/* ${root}/nacos-server-${version} rm -rf ${root}/nacos-server-${version}/nacos

脚本使用方式为:

sh nacos-install.sh [version] [path] # 示例:sh nacos-install.sh 1.0.0 /opt/nacos

从源码结构可以看出,该脚本的设计思路非常清晰:依赖预检 → 版本/路径参数化 → 下载 → 解压 → 目录扁平化整理,其中mv一步将解压出的内层nacos目录内容上移一层,统一了目录结构,便于后续直接使用bin/startup.sh。此外,dunwu-soft.sh 提供了一键软件安装菜单,其中也包含 nacos 选项,可直接选择安装。

3. 启动 Nacos 服务器

安装完成后,进入nacos/bin目录,按操作系统选择启动方式。

3.1 Linux/Unix/Mac 启动

sh startup.sh -m standalone

其中-m standalone表示以单机模式启动(非集群模式)。startup.sh内部会读取环境变量并调用java启动 Nacos 服务,默认监听8848端口,并提供9848(gRPC 端口,1.x 版本起用于长连接通信)。

启动成功后,可在浏览器访问 Nacos 控制台,并通过日志确认启动状态:

# 查看启动日志(默认位于 nacos/logs/ 目录) tail -f logs/start.out

3.2 Windows 启动

cmd startup.cmd

或者直接双击startup.cmd文件运行。

4. 服务注册、发现与配置管理(Open API 实战)

Nacos 原生提供一组 RESTful Open API,无需引入任何 SDK 即可用curl完成微服务四大核心操作,非常适合脚本集成与功能验证。

4.1 服务注册

将 IP 为20.18.7.10:8080的实例注册到名为nacos.naming.serviceName的服务下:

curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

4.2 服务发现

获取nacos.naming.serviceName服务下的全部健康实例列表:

curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'

返回值是 JSON 格式的实例集合,包含实例的 IP、端口、权重、健康状态等元数据,客户端可据此实现负载均衡。

4.3 发布配置

group=test分组下发布 dataId 为nacos.cfg.dataId的配置,配置内容为HelloWorld

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"

4.4 获取配置

读取上述已发布的配置内容:

curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

四个接口的关键参数语义归纳如下:

接口方法路径核心参数
服务注册POST/nacos/v1/ns/instanceserviceNameipport
服务发现GET/nacos/v1/ns/instancesserviceName
发布配置POST/nacos/v1/cs/configsdataIdgroupcontent
获取配置GET/nacos/v1/cs/configsdataIdgroup

其中命名服务(ns)与管理配置(cs)是 Nacos 的两大核心能力,分别对应服务注册发现动态配置中心。在实际微服务架构中,这两类能力通常由spring-cloud-starter-alibaba-nacos-discoveryspring-cloud-starter-alibaba-nacos-config等客户端组件在应用内部调用,但通过上述 curl 命令可以脱离 SDK 直接验证 Nacos 服务端功能是否正常。

5. 关闭 Nacos 服务器

5.1 Linux/Unix/Mac

sh shutdown.sh

shutdown.sh会读取 Nacos 服务进程的 PID 并发送停止信号,优雅地终止 JVM 进程。

5.2 Windows

cmd shutdown.cmd

或直接双击shutdown.cmd运行文件。

6. 安装验证清单与故障排查要点

结合本文与仓库配套文档,给出一个完整的部署验证清单:

  1. java -version确认 JDK 1.8+ 已就绪(参考 jdk-install.md);
  2. 若走源码构建,执行mvn -v确认 Maven 3.2.x+ 已就绪(参考 maven-install.md);
  3. 使用 nacos-install.sh 完成自动化安装,或手动解压发行包;
  4. 执行sh startup.sh -m standalone启动,观察logs/start.out日志;
  5. 依次调用第 4 节中的注册/发现/发布/获取四个 curl 接口做冒烟验证;
  6. 验证结束后执行sh shutdown.sh关闭服务。

常见故障点:

  • 启动报错找不到 java:说明 JDK 未安装或JAVA_HOME/PATH未配置,按 jdk-install.md 配置环境变量后重新执行source /etc/profile
  • 服务注册后立刻消失:检查实例所在主机的健康检查配置,Nacos 默认会对注册实例进行心跳检测,服务端在超时周期内未收到心跳会将其标记为不健康并摘除;
  • 端口冲突:默认监听8848端口,若被占用可调整 Nacos 配置文件中的端口并重启。

7. 小结

通过本文,你可以掌握 Nacos 从环境准备、获取安装、启动运行到服务注册发现与配置管理的完整闭环。仓库中 docs/linux/soft/nacos-install.md 是速查手册,codes/linux/soft/nacos-install.sh 与 dunwu-soft.sh 是自动化部署工具,配合 docs/linux/soft/README.md 中 Nacos 与其他中间件(RocketMQ、Kafka、ZooKeeper 等)的安装索引,即可在 Linux 服务器上快速搭建一套完整的微服务基础设施环境。

【免费下载链接】linux-tutorial:penguin: Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本项目地址: https://gitcode.com/GitHub_Trending/lin/linux-tutorial

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 2:27:11

STM32CubeMX定时器配置避坑指南:从报错到稳定运行

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 2:27:10

AI漫剧工业化流水线:一站式工作台如何实现量产与品控

1. 这不是“AI画画AI配音”的拼凑,而是一套真正能跑通的漫剧工业化流水线最近三个月,我陆陆续续测试了27个标榜“AI漫剧制作”的工具或平台,从开源项目到SaaS服务,从单机脚本到云端工作台,踩过的坑足够填满三本实操笔记…

作者头像 李华
网站建设 2026/9/17 2:23:46

uTools超级文本片段:跨应用实时模板,终结重复输入

每天打开电脑,总有一堆内容在不停重复:回复客户的第一句话、提交代码前的注释模板、报销单里的公司抬头、每周周报的开头格式。以前我桌面一直放着几个 txt 文件,里面存着各种常用话术,要用的时候打开复制粘贴;后来换成…

作者头像 李华
网站建设 2026/9/17 2:23:36

数据分析与科学计算:从NumPy到Pandas的完整实操指南

做数据分析这行有些年头了,从最早用 Excel 抠数据,到后来天天跟 Python、NumPy、Pandas 打交道,一个很深的感受是:真正难的不是某个函数怎么用、某张图怎么画,而是你拿到一堆杂乱数据时,脑子里的分析框架和…

作者头像 李华
网站建设 2026/9/17 2:21:02

Flutter Web与混合开发:架构选型、通信设计与工程实践

做了一段跨平台项目之后,我越来越觉得有个观点值得反复说:Flutter Web和“用Flutter统一所有端”压根不是一回事。很多团队立项时都规划得挺美好——一套Dart代码横跨Android、iOS、Web,结果真到了发布阶段,被首屏体积、SEO和浏览…

作者头像 李华
网站建设 2026/9/17 2:18:53

从收藏到实战:13个真正融入工作流的AI工具场景指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华