Naocs 单机及集群部署
一、Docker单机部署
1. 搜索镜像:docker search nacos;
2. 拉取镜像:docker pull nacos/nacos-server:latest;
3. 查看本地镜像:docker images;
4. stack.yml部署文件;
version: '3.8' services: # Nacos 注册中心和配置中心(mysql5.7) nacos: image: nacos/nacos-server:latest volumes: - /ruphie/nacos/standalone-logs/:/home/nacos/logs - /ruphie/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - 8848:8848 - 9555:9555 depends_on: - mysql environment: TZ: Asia/Shanghai MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_DB_NAME: nacos MYSQL_SERVICE_PORT: 3306 MYSQL_SERVICE_USER: nacos MYSQL_SERVICE_PASSWORD: nacos
5. 配置数据库
A. 创建nacos数据库;
B. 将SQL文件导入数据库或工具执行,官网数据库sql脚本;
use nacos;
source nacos_db.sql
C. 授予nacos能访问的权限
6. 执行stack.yml文件:docker stack deploy -c stack.yml nacos。
一、集群部署
简介:Nacos集群采用Raft算法来选举出Leader节点,选举的时机分三次,在Nacos节点启动后,还没有产生Leader时选举;集群成员总量变更时重新选举;当Leader停止服务后重新选举;至少三个Nacos节点才能构成集群,但不建议部署在公共网络环境。
1. 集群角色
A. Leader(领导者):在集群中扮演最重要的角色,主要用于向其他节点下发指令;
B. Candidate(参与者):指参与竞选Leader的节点;
C. Follower(跟随者):用于接收来自Leader节点或Candidate节点的请求并处理;
2. 数据同步
A. Follower节点会发送服务注册心跳包给Leader节点,Leader节点将完成实际的注册登记工作;
B. Leader节点完成注册后向其他Follower节点发起同步注册日志的指令;
C. 当所有的Follower节点收到指令后会进行ack应答,通知Leader节点注册消息已收到;
D. 当Leader节点接收过半数Follower节点的ack应答后,返回给微服务注册成功的响应信息;
E. 对于其他无效的Follower节点,Leader节点仍会不断重新发送指令,直到所有Follower节点的状态与Leader节点保持一致。
查看内存等:进入nacos容器,然后vi bin/docker-startup.sh
1. stack.yml配置文件
# Nacos服务注册与配置中心集群 nacos-1: image: nacos/nacos-server deploy: mode: global placement: constraints: - node.labels.nacos-1 == true restart_policy: condition: on-failure delay: 5s max_attempts: 10 window: 60s hostname: nacos-1 networks: - rws-mp volumes: - /etc/localtime:/etc/localtime - nacos:/home/nacos/init.d - nacos-1-logs:/home/nacos/logs environment: TZ: Asia/Shanghai PREFER_HOST_MODE: hostname NACOS_SERVERS: nacos-1:8848 nacos-2:8848 nacos-3:8848 MYSQL_SERVICE_HOST: 10.10.10.41 MYSQL_SERVICE_DB_NAME: rhxy-nacos MYSQL_SERVICE_PORT: 3300 MYSQL_SERVICE_USER: root MYSQL_SERVICE_PASSWORD: 123456 nacos-2: image: nacos/nacos-server deploy: mode: global placement: constraints: - node.labels.nacos-2 == true restart_policy: condition: on-failure delay: 5s max_attempts: 10 window: 60s hostname: nacos-2 networks: - rws-mp volumes: - /etc/localtime:/etc/localtime - nacos:/home/nacos/init.d - nacos-2-logs:/home/nacos/logs environment: TZ: Asia/Shanghai PREFER_HOST_MODE: hostname NACOS_SERVERS: nacos-1:8848 acos-2:8848 nacos-3:8848 MYSQL_SERVICE_HOST: 10.10.10.41 MYSQL_SERVICE_DB_NAME: rhxy-nacos MYSQL_SERVICE_PORT: 3300 MYSQL_SERVICE_USER: root MYSQL_SERVICE_PASSWORD: 123456 nacos-3: image: nacos/nacos-server deploy: mode: global placement: constraints: - node.labels.nacos-3 == true restart_policy: condition: on-failure delay: 5s max_attempts: 10 window: 60s hostname: nacos-3 networks: - rws-mp volumes: - /etc/localtime:/etc/localtime - nacos:/home/nacos/init.d - nacos-3-logs:/home/nacos/logs environment: TZ: Asia/Shanghai PREFER_HOST_MODE: hostname NACOS_SERVERS: nacos-1:8848 nacos-2:8848 nacos-3:8848 MYSQL_SERVICE_HOST: 10.10.10.41 MYSQL_SERVICE_DB_NAME: rhxy-nacos MYSQL_SERVICE_PORT: 3300 MYSQL_SERVICE_USER: root MYSQL_SERVICE_PASSWORD: 123456
可参考:Nacos OOM问题记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2020-06-05 Docker Nework网络管理及内核优化