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问题记录


浙公网安备 33010602011771号