1. 首页 > 软件安装教程 > 正文

Nacos安装配置-Nacos服务发现安装配置_升级迁移详细过程

1. Nacos概述与环境规划

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的服务发现和配置管理平台。它提供了服务注册与发现、动态配置管理、动态DNS服务等功能,是微服务架构中的核心基础设施。更多学习教程www.fgedu.net.cn

1.1 Nacos版本说明

Nacos目前主要版本为2.4,本教程以Nacos 2.4为例进行详细讲解。

# 查看Nacos版本
$ cat /opt/nacos/target/nacos-server.jar | grep “Nacos”
Nacos 2.4.0

# 查看Nacos状态
$ curl http://192.168.1.51:8848/nacos/v1/console/health/readiness

# 输出示例:
{“status”:”UP”}

1.2 环境规划

本次安装环境规划如下:

主机名:fgedudb01.fgedu.net.cn
IP地址:192.168.1.51
HTTP端口:8848
gRPC端口:9848
gRPC端口(服务端):9849
安装目录:/opt/nacos
数据目录:/data/nacos/data
日志目录:/data/nacos/logs
配置目录:/opt/nacos/conf

Java环境:
JDK版本:OpenJDK 17
JAVA_HOME:/usr/lib/jvm/java-17
JVM堆大小:1GB

数据库:
MySQL 8.0
数据库名:nacos_config

1.3 Nacos核心特性

主要特点:
1. 服务发现:支持DNS和RPC服务发现
2. 配置管理:动态配置、配置推送、配置回滚
3. 动态DNS:支持权重路由的动态DNS服务
4. 服务健康检查:支持TCP、HTTP、MySQL等多种检查方式
5. 多语言支持:提供Java、Go、Python、Node.js等SDK
6. 高可用:支持集群部署和多数据中心
7. 易于使用:提供Web管理控制台
8. Spring Cloud集成:完美支持Spring Cloud生态

2. 硬件环境要求与检查

在安装Nacos之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com

2.1 最低硬件要求

最低配置:
CPU:2核心
内存:2GB
磁盘:10GB

推荐配置(生产环境):
CPU:4核心以上
内存:8GB以上
磁盘:50GB以上

高可用配置:
CPU:8核心以上
内存:16GB以上
磁盘:100GB以上

2.2 Java环境检查

# 检查JDK版本
$ java -version
openjdk version “17.0.9” 9.0.4
OpenJDK Runtime Environment (Temurin-17.0.9+9) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode, sharing)

# 检查JAVA_HOME
$ echo $JAVA_HOME
/usr/lib/jvm/java-17

# 查看Java安装路径
$ which java
/usr/bin/java

2.3 MySQL数据库检查

# 检查MySQL状态
# systemctl status mysqld

# 创建Nacos数据库
$ mysql -u root -p

mysql> CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

mysql> CREATE USER ‘nacos’@’%’ IDENTIFIED BY ‘fgedu123’;
mysql> GRANT ALL PRIVILEGES ON nacos_config.* TO ‘nacos’@’%’;
mysql> FLUSH PRIVILEGES;

# 验证连接
$ mysql -u nacos -p -h 192.168.1.51 nacos_config

2.4 系统环境检查

# 检查操作系统版本
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)

# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 15Gi 1.0Gi 13Gi 256Mi 1.0Gi 14Gi
Swap: 7Gi 0B 7Gi

# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 100G 5.0G 95G 5% /
/dev/mapper/vg_data-lv_data 500G 50G 450G 10% /data

3. Nacos安装步骤

本节详细介绍Nacos 2.4的安装过程。学习交流加群风哥QQ113257174

3.1 创建用户和目录

# 创建nacos用户
# groupadd -g 1009 nacos
# useradd -u 1009 -g nacos -d /opt/nacos -s /bin/bash nacos
# passwd nacos

# 创建目录
# mkdir -p /opt/nacos
# mkdir -p /data/nacos/{data,logs}

# 设置目录权限
# chown -R nacos:nacos /opt/nacos
# chown -R nacos:nacos /data/nacos

3.2 下载并安装Nacos

# 切换到安装目录
# cd /usr/local/src

# 下载Nacos 2.4
# wget https://github.com/alibaba/nacos/releases/download/2.4.0/nacos-server-2.4.0.tar.gz

# 解压安装
# tar -xzf nacos-server-2.4.0.tar.gz -C /opt/

# 重命名目录
# mv /opt/nacos /opt/nacos-2.4.0
# mv /opt/nacos-2.4.0 /opt/nacos

# 设置目录权限
# chown -R nacos:nacos /opt/nacos

# 验证安装
$ ls -la /opt/nacos/
总用量 0
drwxr-xr-x. 2 nacos nacos 4096 4月 4 10:00 bin
drwxr-xr-x. 2 nacos nacos 4096 4月 4 10:00 conf
drwxr-xr-x. 2 nacos nacos 4096 4月 4 10:00 target

3.3 初始化数据库

# 导入数据库脚本
$ mysql -u nacos -p nacos_config < /opt/nacos/conf/mysql-schema.sql # 验证表结构 $ mysql -u nacos -p nacos_config -e "SHOW TABLES;" # 输出示例: +------------------------+ | Tables_in_nacos_config | +------------------------+ | config_info | | config_info_aggr | | config_info_beta | | config_info_tag | | config_tags_relation | | group_capacity | | his_config_info | | permissions | | roles | | tenant_capacity | | tenant_info | | users | +------------------------+

3.4 配置Nacos

# 编辑配置文件
$ vi /opt/nacos/conf/application.properties

# 修改以下配置
# 服务端口
server.port=8848

# 数据源配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.51:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=fgedu123

# 存储配置
nacos.standalone=true
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

# 日志配置
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t “%r” %s %b %D

3.5 启动Nacos

# 单机模式启动
$ sh /opt/nacos/bin/startup.sh -m standalone

# 输出示例:
nacos is starting with standalone
nacos is starting,you can check the /data/nacos/logs/start.out

# 查看启动日志
$ tail -f /data/nacos/logs/start.out

# 输出示例:
Nacos started successfully in stand alone mode. use embedded storage

# 检查端口
$ netstat -tlnp | grep java
tcp6 0 0 :::8848 :::* LISTEN 12345/java
tcp6 0 0 :::9848 :::* LISTEN 12345/java
tcp6 0 0 :::9849 :::* LISTEN 12345/java

# 检查服务状态
$ curl http://192.168.1.51:8848/nacos/v1/console/health/readiness

# 输出示例:
{“status”:”UP”}

3.6 配置防火墙

# 配置防火墙
# firewall-cmd –permanent –add-port=8848/tcp
success
# firewall-cmd –permanent –add-port=9848/tcp
success
# firewall-cmd –permanent –add-port=9849/tcp
success
# firewall-cmd –reload
success

# 访问管理界面
# 浏览器访问: http://192.168.1.51:8848/nacos
# 默认用户名: nacos
# 默认密码: nacos

风哥提示:Nacos默认使用nacos/nacos作为管理用户。生产环境建议修改默认密码并配置更严格的访问控制。

4. Nacos参数配置

Nacos参数配置是性能优化的关键步骤,直接影响系统性能。更多学习教程公众号风哥教程itpux_com

4.1 JVM配置

# 编辑启动脚本
$ vi /opt/nacos/bin/startup.sh

# 修改JVM参数
JAVA_OPT=”${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m”
JAVA_OPT=”${JAVA_OPT} -XX:+UseG1GC -XX:MaxGCPauseMillis=200″
JAVA_OPT=”${JAVA_OPT} -XX:-OmitStackTraceInFastThrow”
JAVA_OPT=”${JAVA_OPT} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/nacos/logs/java_heapdump.hprof”

# 重启服务
$ sh /opt/nacos/bin/shutdown.sh
$ sh /opt/nacos/bin/startup.sh -m standalone

4.2 核心配置

# 编辑配置文件
$ vi /opt/nacos/conf/application.properties

# 服务端口
server.port=8848
server.servlet.contextPath=/nacos

# 数据源配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.51:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=fgedu123
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=5

# 认证配置
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

# 命名空间配置
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-ms=30000

# 日志配置
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.directory=/data/nacos/logs
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.suffix=.log
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd
server.tomcat.accesslog.rotate=true

4.3 集群配置

# 编辑集群配置
$ vi /opt/nacos/conf/cluster.conf

# 添加集群节点
192.168.1.51:8848
192.168.1.52:8848
192.168.1.53:8848

# 编辑application.properties
$ vi /opt/nacos/conf/application.properties

# 关闭单机模式
nacos.standalone=false

# 启动集群模式
$ sh /opt/nacos/bin/startup.sh

生产环境建议:生产环境建议使用集群模式部署,至少3个节点实现高可用。数据库建议使用主从复制。

5. 服务注册与发现

Nacos提供了完善的服务注册与发现功能,本节介绍常用的操作方法。from:www.itpux.com

5.1 服务注册

# 使用API注册服务
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/ns/instance?serviceName=fgedu-service&ip=192.168.1.100&port=8080”

# 输出示例:
ok

# 使用Java SDK注册服务
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;

public class ServiceRegister {
public static void main(String[] args) throws Exception {
NamingService naming = NacosFactory.createNamingService(“192.168.1.51:8848”);
naming.registerInstance(“fgedu-service”, “192.168.1.100”, 8080);
}
}

# 查看服务列表
$ curl “http://192.168.1.51:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=10”

# 输出示例:
{
“count”: 1,
“doms”: [“fgedu-service”]
}

5.2 服务发现

# 使用API发现服务
$ curl “http://192.168.1.51:8848/nacos/v1/ns/instance/list?serviceName=fgedu-service”

# 输出示例:
{
“name”: “DEFAULT_GROUP@@fgedu-service”,
“groupName”: “DEFAULT_GROUP”,
“clusters”: “”,
“cacheMillis”: 10000,
“hosts”: [
{
“instanceId”: “192.168.1.100#8080#DEFAULT#DEFAULT_GROUP@@fgedu-service”,
“ip”: “192.168.1.100”,
“port”: 8080,
“weight”: 1.0,
“healthy”: true,
“enabled”: true,
“ephemeral”: true,
“clusterName”: “DEFAULT”,
“serviceName”: “DEFAULT_GROUP@@fgedu-service”,
“metadata”: {}
}
]
}

# 使用Java SDK发现服务
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import java.util.List;

public class ServiceDiscovery {
public static void main(String[] args) throws Exception {
NamingService naming = NacosFactory.createNamingService(“192.168.1.51:8848”);
List instances = naming.selectInstances(“fgedu-service”, true);
for (Instance instance : instances) {
System.out.println(instance.getIp() + “:” + instance.getPort());
}
}
}

5.3 配置管理

# 发布配置
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/cs/configs” -d “dataId=fgedu-config.properties&group=DEFAULT_GROUP&content=server.port=8080”

# 输出示例:
true

# 获取配置
$ curl “http://192.168.1.51:8848/nacos/v1/cs/configs?dataId=fgedu-config.properties&group=DEFAULT_GROUP”

# 输出示例:
server.port=8080

# 删除配置
$ curl -X DELETE “http://192.168.1.51:8848/nacos/v1/cs/configs?dataId=fgedu-config.properties&group=DEFAULT_GROUP”

# 输出示例:
true

# 使用Java SDK管理配置
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;

public class ConfigManager {
public static void main(String[] args) throws Exception {
ConfigService configService = NacosFactory.createConfigService(“192.168.1.51:8848”);

// 发布配置
configService.publishConfig(“fgedu-config.properties”, “DEFAULT_GROUP”, “server.port=8080”);

// 获取配置
String content = configService.getConfig(“fgedu-config.properties”, “DEFAULT_GROUP”, 5000);
System.out.println(content);

// 监听配置变化
configService.addListener(“fgedu-config.properties”, “DEFAULT_GROUP”, new Listener() {
@Override
public void receiveConfigInfo(String configInfo) {
System.out.println(“Config changed: ” + configInfo);
}
});
}
}

6. 集群配置

Nacos支持集群部署,提供高可用性和负载均衡能力。更多学习教程www.fgedu.net.cn

6.1 集群部署

# 在所有节点配置cluster.conf
$ vi /opt/nacos/conf/cluster.conf

192.168.1.51:8848
192.168.1.52:8848
192.168.1.53:8848

# 配置application.properties
$ vi /opt/nacos/conf/application.properties

# 关闭单机模式
nacos.standalone=false

# 数据源配置(所有节点使用相同数据库)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.51:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=fgedu123

# 在所有节点启动
$ sh /opt/nacos/bin/startup.sh

# 查看集群状态
$ curl “http://192.168.1.51:8848/nacos/v1/ns/operator/servers”

# 输出示例:
{
“servers”: [
{
“ip”: “192.168.1.51”,
“port”: 8848,
“state”: “UP”
},
{
“ip”: “192.168.1.52”,
“port”: 8848,
“state”: “UP”
},
{
“ip”: “192.168.1.53”,
“port”: 8848,
“state”: “UP”
}
]
}

6.2 配置Nginx负载均衡

# 安装Nginx
# dnf install -y nginx

# 配置Nginx
# vi /etc/nginx/conf.d/nacos.conf

upstream nacos-cluster {
server 192.168.1.51:8848;
server 192.168.1.52:8848;
server 192.168.1.53:8848;
}

server {
listen 8848;
server_name nacos.fgedu.net.cn;

location /nacos/ {
proxy_pass http://nacos-cluster/nacos/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

# 启动Nginx
# systemctl start nginx
# systemctl enable nginx

风哥提示:Nacos集群需要至少3个节点实现高可用。建议使用Nginx或SLB进行负载均衡,客户端配置VIP地址。

7. 安全配置

Nacos提供了完善的安全框架,本节介绍常用的安全配置方法。学习交流加群风哥微信: itpux-com

7.1 配置认证

# 编辑配置文件
$ vi /opt/nacos/conf/application.properties

# 启用认证
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

# 重启服务
$ sh /opt/nacos/bin/shutdown.sh
$ sh /opt/nacos/bin/startup.sh -m standalone

# 使用API获取Token
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/login” -d “username=nacos&password=nacos”

# 输出示例:
{
“accessToken”: “eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxMjIxMjAwMH0.xxxxx”,
“tokenTtl”: 18000,
“globalAdmin”: true
}

# 使用Token访问API
$ curl -H “accessToken: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxMjIxMjAwMH0.xxxxx” “http://192.168.1.51:8848/nacos/v1/ns/service/list”

7.2 用户管理

# 创建用户
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/users?username=fgedu_user&password=fgedu123”

# 输出示例:
ok

# 修改密码
$ curl -X PUT “http://192.168.1.51:8848/nacos/v1/auth/users?username=fgedu_user&newPassword=fgedu456”

# 删除用户
$ curl -X DELETE “http://192.168.1.51:8848/nacos/v1/auth/users?username=fgedu_user”

# 创建角色
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/roles?role=fgedu_role&username=fgedu_user”

# 创建权限
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/permissions?role=fgedu_role&resource=fgedu-*:fgedu-*:*&action=rw”

生产环境建议:生产环境建议启用认证,为不同应用分配独立的用户和权限。

8. 监控与日志

Nacos提供了完善的监控和日志功能,本节介绍常用的监控配置方法。更多学习教程公众号风哥教程itpux_com

8.1 Web管理控制台

# 访问管理控制台
# 浏览器访问: http://192.168.1.51:8848/nacos

# 主要功能:
# – 服务管理:查看服务列表、实例详情
# – 配置管理:创建、编辑、删除配置
# – 命名空间:管理多环境配置
# – 集群管理:查看集群节点状态
# – 权限控制:管理用户、角色、权限

# 查看服务详情
# 点击 “服务管理” -> “服务列表” -> 选择服务

# 查看配置历史
# 点击 “配置管理” -> “配置详情” -> “历史版本”

8.2 健康检查

# 检查服务健康状态
$ curl “http://192.168.1.51:8848/nacos/v1/console/health/readiness”

# 输出示例:
{“status”:”UP”}

# 检查服务状态
$ curl “http://192.168.1.51:8848/nacos/v1/console/health/liveness”

# 输出示例:
{“status”:”UP”}

# 查看集群状态
$ curl “http://192.168.1.51:8848/nacos/v1/ns/operator/metrics”

# 输出示例:
{
“status”: “UP”,
“serviceCount”: 10,
“instanceCount”: 50,
“subscribeCount”: 20,
“raftNotifyTaskQueueSize”: 0,
“healthCheckTaskQueueSize”: 0
}

8.3 日志配置

# 查看日志
$ tail -f /data/nacos/logs/nacos.log

# 输出示例:
2026-04-04 10:00:00,000 INFO [main] com.alibaba.nacos.core.listener.StartingApplicationListener – Nacos is starting…
2026-04-04 10:00:01,000 INFO [main] com.alibaba.nacos.core.listener.StartingApplicationListener – Nacos started successfully

# 查看命名服务日志
$ tail -f /data/nacos/logs/naming-server.log

# 查看配置服务日志
$ tail -f /data/nacos/logs/config-server.log

# 配置日志级别
$ vi /opt/nacos/conf/nacos-logback.xml



/data/nacos/logs/nacos.log

/data/nacos/logs/nacos.%d{yyyy-MM-dd}.log
30

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n




风哥提示:生产环境建议配置日志轮转和归档策略。定期检查服务健康状态和配置变更记录。

9. 升级与迁移

Nacos升级和迁移是运维工作中的重要环节,需要仔细规划和执行。from:www.itpux.com

9.1 版本升级

# 检查当前版本
$ cat /opt/nacos/target/nacos-server.jar | grep “Nacos”
Nacos 2.4.0

# 备份配置和数据
$ cp -r /opt/nacos/conf /backup/nacos/conf_$(date +%Y%m%d)
$ mysqldump -u nacos -p nacos_config > /backup/nacos/nacos_config_$(date +%Y%m%d).sql

# 停止服务
$ sh /opt/nacos/bin/shutdown.sh

# 备份旧版本
$ mv /opt/nacos /opt/nacos-2.4.0.bak

# 下载新版本
# wget https://github.com/alibaba/nacos/releases/download/2.5.0/nacos-server-2.5.0.tar.gz

# 解压安装
# tar -xzf nacos-server-2.5.0.tar.gz -C /opt/
# mv /opt/nacos /opt/nacos-2.5.0
# mv /opt/nacos-2.5.0 /opt/nacos

# 恢复配置
$ cp -r /backup/nacos/conf_$(date +%Y%m%d)/* /opt/nacos/conf/

# 启动服务
$ sh /opt/nacos/bin/startup.sh -m standalone

# 验证版本
$ cat /opt/nacos/target/nacos-server.jar | grep “Nacos”
Nacos 2.5.0

9.2 数据迁移

# 导出配置
$ curl “http://192.168.1.51:8848/nacos/v1/cs/configs?export=true&dataId=&group=&tenant=” -o /backup/nacos/configs.zip

# 导入配置
$ curl -X POST “http://192.168.1.52:8848/nacos/v1/cs/configs?import=true” -F “file=@/backup/nacos/configs.zip”

# 迁移数据库
# 1. 导出数据库
$ mysqldump -u nacos -p nacos_config > /backup/nacos/nacos_config_full.sql

# 2. 导入到新数据库
$ mysql -u nacos -p nacos_config < /backup/nacos/nacos_config_full.sql # 3. 修改数据库连接配置 $ vi /opt/nacos/conf/application.properties db.url.0=jdbc:mysql://192.168.1.52:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai

生产环境建议:升级前必须进行完整备份。建议先在测试环境验证兼容性,确保服务不中断。

10. 生产环境实战案例

本节提供一个完整的生产环境配置案例,帮助读者更好地理解Nacos的实际应用。更多学习教程www.fgedu.net.cn

10.1 生产环境完整配置

# 生产环境配置
$ vi /opt/nacos/conf/application.properties

# 服务端口
server.port=8848
server.servlet.contextPath=/nacos

# 数据源配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.51:3306,192.168.1.52:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=fgedu123
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=50
db.pool.config.minimumIdle=10

# 认证配置
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

# 命名空间配置
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-ms=30000

# 创建systemd服务
$ vi /etc/systemd/system/nacos.service

[Unit]
Description=Nacos Server
After=network.target

[Service]
Type=forking
User=nacos
Group=nacos
ExecStart=/opt/nacos/bin/startup.sh
ExecStop=/opt/nacos/bin/shutdown.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 启用服务
# systemctl enable nacos
# systemctl start nacos

10.2 高可用集群部署

# 三节点集群部署

# 节点配置
# 192.168.1.51:8848 (Nacos节点1)
# 192.168.1.52:8848 (Nacos节点2)
# 192.168.1.53:8848 (Nacos节点3)

# MySQL主从配置
# 192.168.1.51:3306 (Master)
# 192.168.1.52:3306 (Slave)

# 在所有节点配置cluster.conf
$ vi /opt/nacos/conf/cluster.conf

192.168.1.51:8848
192.168.1.52:8848
192.168.1.53:8848

# 启动所有节点
$ sh /opt/nacos/bin/startup.sh

# 配置Nginx负载均衡
upstream nacos-cluster {
server 192.168.1.51:8848 weight=1;
server 192.168.1.52:8848 weight=1;
server 192.168.1.53:8848 weight=1;
}

10.3 Spring Cloud集成

# Maven依赖

com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2023.0.0.0


com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
2023.0.0.0

# application.yml配置
spring:
application:
name: fgedu-service
cloud:
nacos:
discovery:
server-addr: 192.168.1.51:8848
namespace: fgedu-namespace
group: DEFAULT_GROUP
config:
server-addr: 192.168.1.51:8848
namespace: fgedu-namespace
group: DEFAULT_GROUP
file-extension: yaml
shared-configs:
– data-id: common.yaml
group: DEFAULT_GROUP
refresh: true

# bootstrap.yml配置(旧版本)
spring:
cloud:
nacos:
config:
server-addr: 192.168.1.51:8848
namespace: fgedu-namespace
group: DEFAULT_GROUP
file-extension: yaml

# 启动类注解
@SpringBootApplication
@EnableDiscoveryClient
public class FgeduApplication {
public static void main(String[] args) {
SpringApplication.run(FgeduApplication.class, args);
}
}

风哥提示:Nacos作为微服务核心基础设施,在服务发现和配置管理方面具有优势。建议根据业务场景选择合适的部署模式和命名空间策略。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息