Nacos三种部署模式与高可用实现

nacos(Dynamic Naming and Configuration Service),na:注册中心(naming/nameServer),co:配置中心(Configuration),s:服务(Service)服务是为注册中心和配置中心提供服务。nacos支持三种部署模式:

  • 单机模式
  • 集群模式
  • 多集群模式

安装

单机模式

# 下载nacos
wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz
# 解压
tar -zxvf nacos-server-2.0.3.tar.gz

# 启动nacos
cd nacos
./bin/startup.sh -m standalone

集群模式

1.下载并解压

# 下载nacos
wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz
# 解压
tar -zxvf nacos-server-2.0.3.tar.gz

2.配置cluster.conf文件

cp conf/cluster.conf.example conf/cluster.conf
vim conf/cluster.conf

cluster.conf文件配置内容:

# 主机配置格式,IP:PORT,默认端:8848
192.168.1.150
192.168.1.151
192.168.1.152

3.要启用nacos集群模式时先要配置数据源,数据源可以配置成MySQL,见下文《配置数据源》章节。

4.在各个主机上执行启动节点

./bin/startup.sh

keepalived实现nacos高可用

keepalived实现高可用请参考Keepalived服务高可用

1.修改keepalived.conf配置文件

vim /etc/keepalived/keepalived.conf
# 定时监听nacos状态脚本
vrrp_script check_nacos_alive {
    script "/etc/keepalived/check_nacos.sh"
    # 监听间隔
    interval 2
    # 如果脚本运行成功,则升级权重+10
    weight 10
}

vrrp_instance VI_1 {
    ...
    # 配置成当前节点的IP地址
    unicast_src_ip 192.168.1.150
    # 配其他节点的IP地址
    unicast_peer {
        192.168.1.151
        192.168.1.152
    }
    track_script {
        #追踪 nacos 脚本
        check_nacos_alive
    }
    ...
}

2.新增nacos监听脚本

vim /etc/keepalived/check_nacos.sh
#!/bin/bash

NACOS_ALIVE=`ps -ef | grep nacos | grep -v grep | wc -l`
# 如果nacos进程不存在就杀掉keepalived服务
if [ $NACOS_ALIVE -eq 0 ];then
    killall keepalived
fi

3.执行添加权限

chmod +x /etc/keepalived/check_nacos.sh

4.重启keepalived服务

systemctl restart keepalived

nginx实现nacos高可用

1.修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

配置内容:

upstream nacos_cluster{
    server 192.168.1.150:8848;
    server 192.168.1.151:8848;
    server 192.168.1.152:8848;
}
server {
        # 配置监听端口
    listen 8848;
        # 配置域名nacos.bbmax.cc绑定VIP
        server_name nacos.bbmax.cc;

    location / {
        proxy_pass http://nacos_cluster;
    }
}

2.加载配置

nginx -s reload

多集群模式

Nacos支持NameServer路由请求模式,通过它您可以设计一个有用的映射规则来控制请求转发到相应的集群,在映射规则中您可以按命名空间或租户等分片请求...

验证服务是否可以用

方法一:浏览器输入http://192.168.1.150:8848/nacos/index.html

方法二:查看启动日志vim logs/nacos.log,如果启动日志中包含了Nacos is starting...文本内容表示启动成功

方法三:输入jps命令或ps -ef|grep nacos命令查看是否有包含nacos的进程名

配置数据源

nacos默认采用derby数据库,将derby改为mysql

创建nacos数据库

# 登录MySQL终端执行创建nacos_config数据库
create database if not exists nacos_config default charset utf8 collate utf8_general_ci;

执行SQL语句:下载SQL脚本

wget https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/nacos-mysql.sql

执行导入:

source nacos-mysql.sql

修改application.properties配置文件,vim conf/application.properties

修改配置内容:

# 使用MySQL数据源
spring.datasource.platform=mysql
# 数据库实例数量
db.num=1
# 配置数据库连接信息
db.url.0=jdbc:mysql://192.168.1.232:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456

常见问题

1.nacos默认账号密码

账号:nacos 密码:nacos

如果觉得我的文章对你有用,请随意赞赏