Nacos的应用案例实战

news/2025/2/11 8:47:40/文章来源:https://www.cnblogs.com/yinzhengjie/p/18706969

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

目录
  • 一.Nacos实现服务注册和发现实战案例
    • 1.部署Nacos集群
    • 2.运行服务提供者的JAVA应用
      • 2.1 安装JDK
      • 2.2 安装Maven
      • 2.3 解压准备好的JAVA示例应用
      • 2.4 查看Nacos服务相关配置是否正确信息
      • 2.5 编译JAVA代码
      • 2.6 运行Java应用
    • 3.运行服务消费者的JAVA应用
      • 3.1 安装JDK
      • 3.2 安装Maven
      • 3.3 解压准备好的JAVA示例应用
      • 3.4 查看Nacos服务相关配置是否正确信息
      • 3.5 编译JAVA代码
      • 3.6 运行Java应用
    • 4.访问 JAVA 应用
      • 4.1 访问服务提供者
      • 4.2 访问服务消费者
    • 5.启动Jar包时支持命令行修改参数
      • 5.1 临时修改Nacos地址及监听端口
      • 5.2 查看WebUI验证
  • 二.Nacos实现项目服务注册和配置管理
    • 1.安装Nacos集群
    • 2.部署Redis服务
      • 2.1 安装Redis
      • 2.2 修改连接地址和密码
    • 3.配置Nacos指定Redis链接信息
      • 3.1 创建名称空间
      • 3.2 进入到Nacos的配置界面
      • 3.3 添加redis的配置信息
    • 4.修改JAVA应用的配置
      • 4.1 解压软件包
      • 4.2 修改JAVA应用的配置
    • 5.编译并运行Java程序
      • 5.1 安装JDK
      • 5.2 安装Maven
      • 5.3 编译程序
      • 5.4 运行Java程序
      • 5.5 验证Redis数据
    • 6.修改Nacos的配置验证是否生效
      • 6.1 修改Nacos的配置
      • 6.2 查看终端输出

一.Nacos实现服务注册和发现实战案例

1.部署Nacos集群

推荐阅读:https://www.cnblogs.com/yinzhengjie/p/18705670上面的博客笔记是配置了安全认证的,意味着开发时也要配置认证信息,本案例并没有配置安全认证的信息,因此禁用安全认证相关功能。具体操作如下:1.修改配置
[root@master231 ~]# vim /yinzhengjie/softwares/nacos/conf/application.properties
...
# 将Nacos认证相关的配置全部都注释掉
#nacos.core.auth.enabled=true
#nacos.core.auth.server.identity.key=yinzhengjie
#nacos.core.auth.server.identity.value=yinzhengjie
#nacos.core.auth.plugin.nacos.token.secret.key=SuYALHsuVE4XyjQelTMhFbzeHAgDptayAKa8d5pmkQ7K2.同步配置到其他节点
[root@master231 ~]# scp /yinzhengjie/softwares/nacos/conf/application.properties 10.0.0.232:/yinzhengjie/softwares/nacos/conf/
[root@master231 ~]# scp /yinzhengjie/softwares/nacos/conf/application.properties 10.0.0.233:/yinzhengjie/softwares/nacos/conf/3.所有节点重启Nacos服务
/yinzhengjie/softwares/nacos/bin/shutdown.sh 
/yinzhengjie/softwares/nacos/bin/startup.sh 

2.运行服务提供者的JAVA应用

2.1 安装JDK

[root@worker232 ~]# apt update && apt -y install openjdk-8-jdk

2.2 安装Maven

[root@worker232 ~]# apt update && apt -y install maven

2.3 解压准备好的JAVA示例应用

[root@worker232 ~]# unzip yinzhengjie-nacos-provider.zip -d /yinzhengjie/softwares/

2.4 查看Nacos服务相关配置是否正确信息

[root@worker232 ~]# cat /yinzhengjie/softwares/yinzhengjie-nacos-provider/src/main/resources/application.properties 
server.port=8001
spring.application.name=yinzhengjie-nacos-provider-api
spring.cloud.nacos.discovery.server-addr=10.0.0.66:18848
[root@worker232 ~]# 

2.5 编译JAVA代码

	1.进入到项目目录
[root@worker232 ~]# cd /yinzhengjie/softwares/yinzhengjie-nacos-provider/
[root@worker232 yinzhengjie-nacos-provider]# 2.查看Maven的版本
[root@worker232 yinzhengjie-nacos-provider]# mvn -v
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.26, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-131-generic", arch: "amd64", family: "unix"
[root@worker232 yinzhengjie-nacos-provider]# 3.开始编译软件包
[root@worker232 yinzhengjie-nacos-provider]# mvn clean package -Dmaven.test.skip=true
...
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:39 min
[INFO] Finished at: 2025-02-09T10:08:31+08:00
[INFO] ------------------------------------------------------------------------
[root@worker232 yinzhengjie-nacos-provider]# 
[root@worker232 yinzhengjie-nacos-provider]# ll target/  # 编译完成后会产生对应的JAR包
total 34772
drwxr-xr-x 6 root root     4096 Feb  9 10:09 ./
drwxr-xr-x 4 root root     4096 Feb  9 10:09 ../
drwxr-xr-x 3 root root     4096 Feb  9 10:09 classes/
drwxr-xr-x 3 root root     4096 Feb  9 10:09 generated-sources/
drwxr-xr-x 2 root root     4096 Feb  9 10:09 maven-archiver/
drwxr-xr-x 3 root root     4096 Feb  9 10:09 maven-status/
-rw-r--r-- 1 root root 35570731 Feb  9 10:09 nacos-provider-1.0-SNAPSHOT.jar
-rw-r--r-- 1 root root     4278 Feb  9 10:09 nacos-provider-1.0-SNAPSHOT.jar.original
[root@worker232 yinzhengjie-nacos-provider]# 

2.6 运行Java应用

	1.运行Java应用
[root@worker232 yinzhengjie-nacos-provider]# java -jar target/nacos-provider-1.0-SNAPSHOT.jar 2.查看本地监听的端口
[root@worker232 ~]# ss -ntl | grep 8001
LISTEN 0      100                      *:8001             *:*          
[root@worker232 ~]# 3.查看Nacos的WebUI
如上图所示,我们可以看到服务注册成功了,点击"详情"可以看到对应的IP地址和端口,如下图所示。

3.运行服务消费者的JAVA应用

3.1 安装JDK

[root@worker233 ~]# apt update && apt -y install openjdk-8-jdk

3.2 安装Maven

[root@worker233 ~]# apt update && apt -y install maven

3.3 解压准备好的JAVA示例应用

[root@worker233 ~]# unzip yinzhengjie-nacos-consumer.zip -d /yinzhengjie/softwares/

3.4 查看Nacos服务相关配置是否正确信息

[root@worker233 ~]# cat /yinzhengjie/softwares/yinzhengjie-nacos-consumer/src/main/resources/application.properties 
server.port=8002
spring.application.name=yinzhengjie-nacos-consumer-api
spring.cloud.nacos.discovery.server-addr=10.0.0.66:18848
[root@worker233 ~]# 

3.5 编译JAVA代码

	1.进入到项目目录
[root@worker233 ~]# cd /yinzhengjie/softwares/yinzhengjie-nacos-consumer/
[root@worker233 yinzhengjie-nacos-consumer]# 
[root@worker233 yinzhengjie-nacos-consumer]# ll
total 16
drwxr-xr-x 3 root root 4096 Feb  9 10:33 ./
drwxr-xr-x 6 root root 4096 Feb  9 10:36 ../
-rw-r--r-- 1 root root 3219 Dec 30 21:24 pom.xml
drwxr-xr-x 3 root root 4096 Dec 30 21:26 src/
[root@worker233 yinzhengjie-nacos-consumer]# 2.编译代码
[root@worker233 yinzhengjie-nacos-consumer]# mvn clean package -Dmaven.test.skip=true
...
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:36 min
[INFO] Finished at: 2025-02-09T10:39:57+08:00
[INFO] ------------------------------------------------------------------------
[root@worker233 yinzhengjie-nacos-consumer]# 
[root@worker233 yinzhengjie-nacos-consumer]# ll
total 20
drwxr-xr-x 4 root root 4096 Feb  9 10:39 ./
drwxr-xr-x 6 root root 4096 Feb  9 10:36 ../
-rw-r--r-- 1 root root 3219 Dec 30 21:24 pom.xml
drwxr-xr-x 3 root root 4096 Dec 30 21:26 src/
drwxr-xr-x 6 root root 4096 Feb  9 10:39 target/
[root@worker233 yinzhengjie-nacos-consumer]# 
[root@worker233 yinzhengjie-nacos-consumer]# ll target/  # 编译后会产生对应的JAR包哟~
total 34776
drwxr-xr-x 6 root root     4096 Feb  9 10:39 ./
drwxr-xr-x 4 root root     4096 Feb  9 10:39 ../
drwxr-xr-x 3 root root     4096 Feb  9 10:39 classes/
drwxr-xr-x 3 root root     4096 Feb  9 10:39 generated-sources/
drwxr-xr-x 2 root root     4096 Feb  9 10:39 maven-archiver/
drwxr-xr-x 3 root root     4096 Feb  9 10:39 maven-status/
-rw-r--r-- 1 root root 35570815 Feb  9 10:39 nacos-consumer-1.0-SNAPSHOT.jar
-rw-r--r-- 1 root root     4362 Feb  9 10:39 nacos-consumer-1.0-SNAPSHOT.jar.original
[root@worker233 yinzhengjie-nacos-consumer]# 

3.6 运行Java应用

	1.运行Java应用
[root@worker233 yinzhengjie-nacos-consumer]# java -jar target/nacos-consumer-1.0-SNAPSHOT.jar 2.查看本地监听的端口
[root@worker233 ~]# ss -ntl | grep 8002
LISTEN 0      100                      *:8002             *:*          
[root@worker233 ~]# 3.查看Nacos的WebUI
如上图所示,我们可以看到服务注册成功了,点击"详情"可以看到对应的IP地址和端口,如下图所示。

4.访问 JAVA 应用

4.1 访问服务提供者

http://10.0.0.232:8001/echo/yinzhengjie

4.2 访问服务消费者

http://10.0.0.233:8002/print/yinzhengjie温馨提示:当生产者崩溃后,消费者就无法正常访问了,因为消费者要请求生产者。为了避免这种情况的发生,我们可以定义多个生产者和消费者来实现副本的高可用。

5.启动Jar包时支持命令行修改参数

5.1 临时修改Nacos地址及监听端口

java -Dspring.cloud.nacos.discovery.server-addr=10.0.0.232:8848 -Dserver.port=6666 -jar target/nacos-provider-1.0-SNAPSHOT.jar

5.2 查看WebUI验证

如上图所示,不难发现生产者监听的端口的确是发生了变化哟~当然,我们也可以进行命令行测试,发现生产者是可以正常提供服务的:
[root@master231 ~]# curl -s http://10.0.0.232:7777/echo/yinzhengjie | more 
Yinzhengjie's Nacos Discovery Provider Service Message : yinzhengjie
[root@master231 ~]# 

二.Nacos实现项目服务注册和配置管理

1.安装Nacos集群

略,复用上一个案例的环境即可。

2.部署Redis服务

2.1 安装Redis

[root@master231 ~]# apt update && apt -y install redis

2.2 修改连接地址和密码

	1.修改配置文件
[root@master231 ~]# vim /etc/redis/redis.conf
...
port 6379
bind 0.0.0.0
requirepass yinzhengjie  2.重启Redis服务
[root@master231 ~]# systemctl restart redis
[root@master231 ~]# ss -ntl | grep 6379
LISTEN 0      511                0.0.0.0:6379       0.0.0.0:*          
[root@master231 ~]# 3.登录测试
[root@master231 ~]# redis-cli -a yinzhengjie
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> KEYS *
(empty array)
127.0.0.1:6379> 	

3.配置Nacos指定Redis链接信息

3.1 创建名称空间

如上图所示,按照步骤依次创建名称空间。创建名称空间后,就可以看到对应的信息如下图所示。

3.2 进入到Nacos的配置界面

如上图所示,我们按照步骤就可以进入到指定名称空间的Nacos的配置界面中。

3.3 添加redis的配置信息

如上图所示,按照步骤依次填写后,点击右下角的"发布",就可以看到如下图所示的配置了。

4.修改JAVA应用的配置

4.1 解压软件包

[root@worker232 ~]# unzip yinzhengjie-nacos-redis-casedemo.zip -d /yinzhengjie/softwares/

4.2 修改JAVA应用的配置

[root@worker232 ~]# cat /yinzhengjie/softwares/yinzhengjie-nacos-redis-casedemo/src/main/resources/bootstrap.properties 
# 指定名称空间的ID
nacos.server.namespace=yinzhengjie-nacos-redis
# 注册到Nacos的微服务名称,可以自定义
spring.application.name=yinzhengjie-cloud-api
# 指定Nacos地址
spring.cloud.nacos.server-addr=10.0.0.66:18848
# 指定名称空间的ID
spring.cloud.nacos.config.namespace=yinzhengjie-nacos-redis
# 指定组名称
spring.cloud.nacos.config.group=DEFAULT_GROUP
# 配置文件的Data ID
spring.cloud.nacos.config.prefix=yinzhengjie-redis-api
# 指定名称空间的名称
spring.profiles.active=yinzhengjie
spring.cloud.nacos.config.auto-refreshed=true
spring.cloud.nacos.config.file-extension=yml
# Nacos服务发现的地址
spring.cloud.nacos.discovery.server-addr=10.0.0.66:18848
# 指定名称空间的ID
spring.cloud.nacos.discovery.namespace=yinzhengjie-nacos-redis[root@worker232 ~]# 

5.编译并运行Java程序

5.1 安装JDK

[root@worker232 ~]# apt update && apt -y install openjdk-8-jdk

5.2 安装Maven

[root@worker232 ~]# apt update && apt -y install maven

5.3 编译程序

	1.进入到项目目录
[root@worker232 ~]# cd /yinzhengjie/softwares/yinzhengjie-nacos-redis-casedemo/
[root@worker232 yinzhengjie-nacos-redis-casedemo]# 
[root@worker232 yinzhengjie-nacos-redis-casedemo]# ll
total 20
drwxr-xr-x 3 root root 4096 Feb  9 11:57 ./
drwxr-xr-x 8 root root 4096 Feb  9 11:58 ../
-rw-r--r-- 1 root root 4119 Dec 30 21:22 pom.xml
drwxr-xr-x 3 root root 4096 Dec 30 21:25 src/
[root@worker232 yinzhengjie-nacos-redis-casedemo]# 2.编译代码
[root@worker232 yinzhengjie-nacos-redis-casedemo]#  mvn clean package -Dmaven.test.skip=true
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  9.455 s
[INFO] Finished at: 2025-02-09T12:02:11+08:00
[INFO] ------------------------------------------------------------------------
[root@worker232 yinzhengjie-nacos-redis-casedemo]# 
[root@worker232 yinzhengjie-nacos-redis-casedemo]# ll
total 24
drwxr-xr-x 4 root root 4096 Feb  9 12:02 ./
drwxr-xr-x 8 root root 4096 Feb  9 11:58 ../
-rw-r--r-- 1 root root 4119 Dec 30 21:22 pom.xml
drwxr-xr-x 3 root root 4096 Dec 30 21:25 src/
drwxr-xr-x 6 root root 4096 Feb  9 12:02 target/
[root@worker232 yinzhengjie-nacos-redis-casedemo]# 
[root@worker232 yinzhengjie-nacos-redis-casedemo]# ll target/
total 44528
drwxr-xr-x 6 root root     4096 Feb  9 12:02 ./
drwxr-xr-x 4 root root     4096 Feb  9 12:02 ../
drwxr-xr-x 3 root root     4096 Feb  9 12:02 classes/
drwxr-xr-x 3 root root     4096 Feb  9 12:02 generated-sources/
drwxr-xr-x 2 root root     4096 Feb  9 12:02 maven-archiver/
drwxr-xr-x 3 root root     4096 Feb  9 12:02 maven-status/
-rw-r--r-- 1 root root 45560294 Feb  9 12:02 nacos-1.0-SNAPSHOT.jar
-rw-r--r-- 1 root root     7858 Feb  9 12:02 nacos-1.0-SNAPSHOT.jar.original
[root@worker232 yinzhengjie-nacos-redis-casedemo]# 

5.4 运行Java程序

	1.运行Java程序
[root@worker232 yinzhengjie-nacos-redis-casedemo]# java -jar target/nacos-1.0-SNAPSHOT.jar2.查看监听的端口号
[root@worker232 ~]# ss -ntl | grep 5200
LISTEN 0      100                      *:5200             *:*          
[root@worker232 ~]# 3.访问JAVA应用
http://10.0.0.232:5200/redis
http://10.0.0.232:5200/get
http://10.0.0.232:5200/blog

5.5 验证Redis数据

如上图所示,Redis数据库中写入成功啦。

6.修改Nacos的配置验证是否生效

6.1 修改Nacos的配置

如上图所示,我们完成了Nacos的配置修改。

6.2 查看终端输出

如上图所示,尽管咱们的程序获取到了Nacos的配置信息,但并不会立刻生效,需要手动重启服务才能生效。如果你真的想让其自动生效,则需要修改Java的源代码,让其支持功能即可。

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

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

相关文章

前端如何判断浏览器 AdBlock/AdBlock Plus(最新版)广告屏蔽插件已开启拦截

前端如何判断浏览器 AdBlock/AdBlock Plus(最新版)广告屏蔽插件已开启拦截2个月前AdBlock/AdBlock Plus疑似升级了一次因为自己主要负责面对海外的用户项目,发现以前的检测AdBlock/AdBlock Plus开启状态方法已失效了,于是专门研究了一下。并尝试了很多方法。 已失效的老方法…

[Whole Web] 前端项目规范 -- 4. Git提交信息规范(Commitlint + commitizen + cz-git)

前面讲的都是在git提交之前的一些流程检查,而当我们git提交的时候,提交信息,也应该是需要规范的 commitlint 在使用Git提交代码时,通常都需要填写提交说明,也就是Commit Message git commit -m 提交测试说白了,Commit Message就是我们提交的时候,在-m后面写的提交说明,…

lua包管理器luarocks使用

下载lua 1) 这边用lua 5.1.5 exe文件LuaBinaries - Browse /5.1.5/Tools Executables at SourceForge.net,下载lua-5.1.5_Win64_dll15_lib.zip文件名解释:dll15表示vs2017的编译器,dllg4表示cygwin gcc4.x的编译器, dllw4表示4表示MingW gcc4的编译器 头文件,dll文件LuaBin…

新突破!上海交大重磅新作LIMO:挑战RL Scaling范式

前言 在追求人工智能极限的道路上,"更大即更强" 似乎已成为共识。特别是在数学推理这一被视为 AI 终极挑战的领域,业界普遍认为需要海量数据和复杂的强化学习才能获得突破。然而,来自上海交通大学的最新研究却给出了一个令人震惊的答案:仅需 817 条精心设计的样本…

Paragon ExtFS for Windows – Windows 系统读取 Linux 分区文件软件

Paragon ExtFS for Windows是一款可以让用户在Windows系统下访问和查看Linux分区下文件的工具,支持Ext2/Ext3/Ext4分区,并且支持查看媒体文件和文件导入导出,是一款非常不错的跨平台系统访问工具。 Paragon ExtFS for Windows 是一款可以让用户在 Windows 系统下访问和查看 …

[Whole Web] 前端项目规范 -- 3. Git工作流规范(Husky + Lint-staged)

Git 流程规范配置 在前端项目开发中,规范git提交信息,也是经常使用的手段,如何确保团队成员都遵循ESint规则,且不会将不符合规范的代码推送到Git仓库? 答案是:使用带有git hooks功能的husky。git hooks是git内置的功能,它会在执行Git命令之前(或之后)进行一些其它操作…

《DeepSeek从入门到精通》PDF免费下载

全网疯传的DeepSeek使用教程,DeepSeek:从入门到精通(104页面,资料比较全)(清华大学元宇宙文化实验室出的)全网疯传的DeepSeek使用教程 点击查看原文下载内容简介 DeepSeek:从入门到精通(104页面,资料比较全)(清华大学元宇宙文化实验室出的) 文章中提到了微博、小红书、抖…

【洛谷P3884】二叉树问题[JLOI2009]

这个主要是二叉树的大杂烩 [JLOI2009] 二叉树问题 题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为:深度:\(4\) 宽度:\(4\) 结点 8 和 6 之间的距离:\(8\) 结点 7 和 6 之间的距离:\(3\)其中宽度表示二叉树上同一层最多的结点个数,节点 \(u, v\) 之间的距…

[Whole Web] 前端项目规范 - 1. 项目风格统一

项目风格统一 在前端项目中存在.vscode文件夹,文件夹下一般存在两个文件extensions.json和setting.json。作用是保持所有开发者安装了相同的插件和相同的配置,保持开发环境一致性。extensions.json 在当前项目中,需要安装哪些插件。 {"recommendations": ["V…

告别熬夜写代码!VSCode+Cline扩展插件+DeepSeek-V3大模型,让你的编程水平瞬间超越99.9%的人

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注什么是DeepSeek-V3 DeepSeek是杭州深度求索公司发布的一系列在知识类任务上表现出色的人工智能模型! …

RocketMQ实战—8.营销系统业务和方案介绍

大纲 1.电商核心交易场景的业务流程 2.电商支付后履约场景的业务流程 3.电商营销场景的业务说明 4.电商促销活动的Push推送 5.会员与推送的数据库表结构 6.营销系统的数据库表结构 7.营销系统的基础技术架构 8.XXLJob分布式调度运行原理 9.电商营销系统的工程结构 10.电商营销系…

fluid主题优化

根目录是 C:\blog, 主题目录是 C:\blog\node_modules\hexo-theme-fluid固定背景和设置透明度在根目录下新建一个 scripts 目录,里面添加一个 bg.js 的文件 const {root: siteRoot = "/"} = hexo.config; hexo.extend.injector.register("body_begin", `&l…