作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
目录
- 一.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的源代码,让其支持功能即可。