1. 环境准备与基础概念
在开始部署Nacos和Seata之前,我们需要先了解这两个组件的核心作用以及它们之间的关系。Nacos作为服务发现和配置中心,而Seata则是分布式事务解决方案,两者结合可以构建完整的微服务架构基础。
1.1 组件介绍与版本选择
Nacos 1.4.1 是阿里巴巴开源的动态服务发现、配置管理和服务管理平台。选择1.4.1版本是因为它在稳定性和功能完整性上达到了很好的平衡,同时社区反馈的问题较少。这个版本支持:
- 服务注册与发现
- 动态配置服务
- 服务及元数据管理
- DNS-based服务发现
Seata 1.4.2 是阿里巴巴开源的分布式事务解决方案,提供了AT、TCC、SAGA和XA事务模式。1.4.2版本修复了之前版本的一些关键bug,特别是在与Nacos集成方面有显著改进。
提示:版本匹配非常重要,不兼容的版本组合可能导致难以排查的问题。建议严格按照本文使用的版本进行部署。
1.2 系统要求与前置条件
在开始安装前,请确保你的环境满足以下要求:
- Docker已安装并配置好(建议Docker 20.10+)
- MySQL数据库服务可用(5.7或8.0版本)
- 服务器内存至少4GB(Nacos和Seata都比较吃内存)
- 开放端口:8848(Nacos)、8091(Seata)
对于MySQL数据库,建议提前创建好专用用户并分配权限,避免使用root账户直接操作生产环境数据库。
1.3 目录结构规划
合理的目录结构能避免后续维护混乱。建议采用如下结构:
code复制/docker-data/
├── nacos/
│ └── conf/ # 挂载配置文件目录
└── seata/
└── resources/ # Seata配置文件目录
在Linux系统可以通过以下命令创建:
bash复制mkdir -p /docker-data/{nacos/conf,seata/resources}
在Windows系统(使用PowerShell):
powershell复制New-Item -ItemType Directory -Path "D:\data\docker-data\nacos\conf"
New-Item -ItemType Directory -Path "D:\data\docker-data\seata\resources"
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Nacos部署与配置
2.1 拉取Nacos镜像并运行
首先拉取指定版本的Nacos镜像:
bash复制docker pull nacos/nacos-server:1.4.1
运行Nacos容器的基础命令:
bash复制docker run -d \
-p 8848:8848 \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=20.0.0.42 \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_DB_NAME=nacos \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=123456 \
--restart=always \
--name nacos \
nacos/nacos
