wordpress 手工网站,青岛seo整站优化公司,三联网站建设价格,营销推广型网站此方案已经经过生产环境验证#xff0c;可放心大胆使用如果喜欢#xff0c;欢迎点赞#x1f44d;收藏❤️评论噢#xff5e; 略去 Docker 和 Docker Compose 安装部分,如果有需要的同学#xff0c;可以评论#xff0c;创建 docker-compose.yml 文件并配置 Nacos 集群和 M…此方案已经经过生产环境验证可放心大胆使用如果喜欢欢迎点赞收藏❤️评论噢 略去 Docker 和 Docker Compose 安装部分,如果有需要的同学可以评论创建 docker-compose.yml 文件并配置 Nacos 集群和 MySQL 的完整步骤
1. 创建 docker-compose.yml 文件
在工作目录 /usr/local/application 创建 docker-compose.yml 文件内容如下
version: 3
services:# 第一个 Nacos 实例的配置nacos1:# 使用 Nacos 官方镜像版本 2.2.3image: cluster/nacos-server-one:v2.2.3# 容器名称为 nacos1方便识别和管理container_name: nacos1# 确保容器的主机名为 nacos1不可省略hostname: nacos1environment:# 集群模式Nacos 运行在集群模式下- MODEcluster# 使用主机名进行节点间通信不可省略- PREFER_HOST_MODEhostname# 定义集群中的 Nacos 节点地址使用主机名- NACOS_SERVERSnacos1:8848 nacos2:8848 nacos3:8848#- NACOS_SERVER_IPnacos1# 数据源平台为 MySQL- SPRING_DATASOURCE_PLATFORMmysql# 指定 MySQL 服务主机名- MYSQL_SERVICE_HOSTmysql# Nacos 使用的 MySQL 数据库名称- MYSQL_SERVICE_DB_NAMEnacos# MySQL 数据库端口- MYSQL_SERVICE_PORT3306# 连接 MySQL 数据库的用户名- MYSQL_SERVICE_USERnacos# 连接 MySQL 数据库的密码- MYSQL_SERVICE_PASSWORDnacos123# 设置 JVM 参数以最小化内存使用- JAVA_OPTS-Xms256m -Xmx256m -Xmn128mvolumes:# 将宿主机上的 application.properties 文件挂载到 Nacos 容器中- ./nacos/config/application.properties:/home/nacos/conf/application.properties# 集群配置- ./nacos/config/cluster.conf:/home/nacos/conf/cluster.conf# 将 Nacos 日志目录持久化到宿主机确保日志不会因容器重启而丢失- ./nacos/logs/nacos1:/home/nacos/logs# 将 Nacos 数据目录持久化到宿主机防止配置和服务注册信息丢失- ./nacos/data/nacos1:/home/nacos/data# 映射 Nacos 容器的 8848 端口到宿主机允许外部访问ports:- 8848:8848- 7848:7848- 9848:9848- 9849:9849networks:- nacos_net# 第二个 Nacos 实例的配置nacos2:image: cluster/nacos-server-two:v2.2.3container_name: nacos2hostname: nacos2environment:- MODEcluster- PREFER_HOST_MODEhostname- NACOS_SERVERSnacos1:8848 nacos2:8848 nacos3:8848- SPRING_DATASOURCE_PLATFORMmysql- MYSQL_SERVICE_HOSTmysql- MYSQL_SERVICE_DB_NAMEnacos- MYSQL_SERVICE_PORT3306- MYSQL_SERVICE_USERnacos- MYSQL_SERVICE_PASSWORDnacos123- JAVA_OPTS-Xms256m -Xmx256m -Xmn128mvolumes:- ./nacos/config/application.properties:/home/nacos/conf/application.properties- ./nacos/config/cluster.conf:/home/nacos/conf/cluster.conf- ./nacos/logs/nacos2:/home/nacos/logs- ./nacos/data/nacos2:/home/nacos/dataports:- 8849:8848networks:- nacos_net# 第三个 Nacos 实例的配置nacos3:image: cluster/nacos-server-thr:v2.2.3container_name: nacos3hostname: nacos3environment:- MODEcluster- PREFER_HOST_MODEhostname- NACOS_SERVERSnacos1:8848 nacos2:8848 nacos3:8848- SPRING_DATASOURCE_PLATFORMmysql- MYSQL_SERVICE_HOSTmysql- MYSQL_SERVICE_DB_NAMEnacos- MYSQL_SERVICE_PORT3306- MYSQL_SERVICE_USERnacos- MYSQL_SERVICE_PASSWORDnacos123- JAVA_OPTS-Xms256m -Xmx256m -Xmn128mvolumes:- ./nacos/config/application.properties:/home/nacos/conf/application.properties- ./nacos/config/cluster.conf:/home/nacos/conf/cluster.conf- ./nacos/logs/nacos3:/home/nacos/logs- ./nacos/data/nacos3:/home/nacos/dataports:- 8850:8848networks:- nacos_net# MySQL 数据库服务的配置Nacos 集群依赖 MySQL 数据库存储配置信息mysql:image: custom/mysql:5.7container_name: mysqlenvironment:# MySQL root 用户的密码- MYSQL_ROOT_PASSWORDroot# 创建 Nacos 所需的数据库- MYSQL_DATABASEnacos# 创建数据库用户用于连接 Nacos- MYSQL_USERnacos# 连接数据库用户的密码- MYSQL_PASSWORDnacos123volumes:# 持久化 MySQL 数据到宿主机防止数据丢失- ./mysql:/var/lib/mysql# 自动加载 MySQL 初始化 SQL 脚本用于创建 Nacos 数据表- ./mysql-init:/docker-entrypoint-initdb.dports:# 映射 MySQL 容器的 3306 端口到宿主机允许外部访问- 3306:3306networks:- nacos_netnetworks:nacos_net:driver: bridge2. 创建宿主机文件用于挂载
执行以下命令创建目录确保日志和数据可以持久化
mkdir -p ./nacos/logs/nacos1 ./nacos/logs/nacos2 ./nacos/logs/nacos3
mkdir -p ./nacos/data/nacos1 ./nacos/data/nacos2 ./nacos/data/nacos3
mkdir -p ./nacos/config ./mysql ./mysql-init3. 配置 Nacos 的 application.properties 和 cluster.conf
application.properties 文件内容
server.servlet.contextPath${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.port${NACOS_APPLICATION_PORT:8848}
spring.sql.init.platform${SPRING_DATASOURCE_PLATFORM:mysql}
db.url.0jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseSSLfalse
db.user.0${MYSQL_SERVICE_USER}
db.password.0${MYSQL_SERVICE_PASSWORD}
nacos.core.auth.enabledtrue
nacos.core.auth.plugin.nacos.token.secret.key${NACOS_AUTH_TOKEN}cluster.conf 文件内容
nacos1:8848
nacos2:8848
nacos3:88484. 初始化 MySQL 数据库
从 Nacos 官方 MySQL 初始化 SQL 文件 下载初始化 SQL 文件将其放入 ./mysql-init/ 目录中。
5. 启动 docker-compose
在工作目录 /usr/local/application 中运行以下命令来启动服务
docker-compose up -d6. 验证服务是否正常启动
通过以下命令查看容器状态
docker-compose ps查看 Nacos 页面访问 http://server-ip:8848/nacos查看是否能访问到三个 Nacos 实例。如果能看到三个节点则说明集群启动成功。
7. Spring Boot 整合 Nacos 集群
添加依赖
在 pom.xml 中添加以下依赖
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.2.1.RELEASE/version
/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2.2.1.RELEASE/version
/dependencybootstrap.yml 配置
spring:application:name: link-nacoscloud:nacos:config:server-addr: 122.51.12.83:8848,122.51.12.83:8849,122.51.12.83:8850namespace: publicgroup: DEFAULT_GROUPfile-extension: ymlusername: nacospassword: nacosdiscovery:server-addr: 122.51.12.83:8848,122.51.12.83:8849,122.51.12.83:8850namespace: publicgroup: DEFAULT_GROUPusername: nacospassword: nacoslogging:level:com.alibaba.nacos: debug8. 启动 Spring Boot 项目
启动 Spring Boot 项目后检查日志确认应用是否成功连接到 Nacos 并注册到集群。如果 Spring Boot 应用成功启动并连接到 Nacos 集群则集群配置完成。
这样你就完成了 Nacos 集群和 Spring Boot 的整合。 成功之路和失败之路几乎是相同的。