Nacos持久化到本地以及Nacos的集群配置

目录

一、什么是nacos

二、Nacos作为服务中心的配置

三、Nacos作为配置中心配置

四、Nacos 持久化到本地MySQL

五、Nacos集群配置

六、集群访问

七、Lvs+Keepalived实现集群高可用

 7.1、安装Keepalived

7.2、设置为开机启动

7.3、修改配置文件内容如下


一、什么是nacos

 具体内容就不巴巴了,看官网Nacos官方文档

二、Nacos作为服务中心的配置

spring:
  application:
    name: xiaojie-member
  cloud:
    nacos:
      discovery:
        #注册地址
        server-addr: 127.0.0.1:8848
        #是否开启nacos注册
        enabled: true
        #账号
        username: xiaojie
        #密码
        password: nacos
        #命名空间
        namespace: 28eb29ea-5a04-4714-8ae8-77d37c01166a
        #分组
        group: DEV_GROUP

三、Nacos作为配置中心配置

spring:
  cloud:
    nacos:
      config:
        #前缀
        prefix: xiaojie-member
        #地址
        server-addr: 127.0.0.1:8848
        #扩展名
        file-extension: yaml
        #命名空间
        namespace: 28eb29ea-5a04-4714-8ae8-77d37c01166a
        #分组
        group: DEV_GROUP
        #开关
        enabled: true
        #动态刷新配置
        refresh-enabled: true

四、Nacos 持久化到本地MySQL

将下载的nacos-server修改application.properties

添加如下数据库

spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=root

五、Nacos集群配置

将Nacos解压后的文件复制3份,在conf文件下添加cluster.conf,内容如下

#2021-07-12T09:26:22.487
ip:8848
ip:8849
ip:8850
#一定写ip不要写localhost

     修改每个配置文件的端口号,对应,然后进入bin,目录下执行

#集群方式启动
startup.cmd  -m cluster

#单机模式
startup.cmd  -m standalone

六、集群访问

官网推荐这种模式部署。http://nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式

我们按照下图部署

        nginx配置如下


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	upstream nacos_config{
#实际服务器
		server 127.0.0.1:8848;
		server 127.0.0.1:8849;
		server 127.0.0.1:8850;
	}

    server {
        listen       80;
#监听域名
        server_name  nacos.xiaojie.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://nacos_config;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }       
    }
}

由于是在自己的环境测试用的,需要修改host文件添加如下

127.0.0.1 nacos.xiaojie.com

然后访问nacos.xiaojie.com 即可。

七、Lvs+Keepalived实现集群高可用

访问变成这种模式

 7.1、安装Keepalived

下载安装包上传服务器,然后解压

[root@localhost local]# tar -zxvf keepalived-2.2.2.tar.gz -C /usr/local/

下载插件openssl

[root@localhost local]# yum install openssl openssl-devel -y

编译

[root@localhost keepalived-2.2.2]# cd keepalived-2.2.2/ && ./configure --prefix=/usr/local/keepalived

安装

[root@localhost keepalived-2.2.2]# make && make install

7.2、设置为开机启动

#创建文件
[root@bogon keepalived-2.2.2]# mkdir /etc/keepalived
#复制配置文件
[root@bogon keepalived-2.2.2]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived
[root@bogon keepalived-2.2.2]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@bogon keepalived-2.2.2]# cp /usr/local/keepalived/sbin/keepalived  /usr/sbin/
#设置开机启动
[root@localhost etc]# systemctl enable keepalived.service

#启动
[root@localhost keepalived]# systemctl start keepalived.service
停止
[root@localhost keepalived]# systemctl stop keepalived.service



7.3、修改配置文件内容如下

[root@bogon keepalived-2.2.1]# cd /etc/keepalived/
! Configuration File for keepalived

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" #运行脚本
    interval 2 #检测时间间隔
    weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    ###MASTER 主的意思  BACKUP 从
    state MASTER #来决定主从
    interface ens32 # 绑定虚拟 IP 的网络接口
    virtual_router_id 110 # 虚拟路由的 ID 号, 两个节点设置必须一样
    mcast_src_ip 192.168.139.153 #填写本机ip
    priority 100 # 节点优先级,主要比从节点优先级高
    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
    advert_int 1 # 主从信息发送间隔,两个节点设置必须一样,默认 1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 将 track_script 块加入 instance 配置块
    track_script {
        chk_nginx #执行 Nginx 监控的服务
    }
    virtual_ipaddress {
        192.168.139.110 # 虚拟ip,可配置多个。
    }
}

启动keepalived 看到如下多了个ip,配置成功

重启nginx 的脚本

#授权脚本文件
chmod +x /etc/keepalived/nginx_check.sh
#!/bin/bash
set -x 
COUNT=$(ps -C nginx --no-header |wc -l)
echo $COUNT
#判断Nginx 是否都挂掉了
if [ $COUNT -eq 0 ]
        then
        #如果挂掉了,就启动nginx
        #/usr/local/nginx/sbin/nginx
        docker start mynginx
        echo "重启nginx"
        #等2秒钟后,再次查看是否 启动成功
        sleep 2
        #如果nginx没有启动起来,就直接干掉keepalived
        COUNT=$(ps -C nginx --no-header |wc -l)
        if [ $COUNT -eq 0 ]
        then
                        echo "干掉keepalived"
                        #如果killall命令不能使用,就需要安装psmisc工具了
                        #yum install -y psmisc
                        killall keepalived
        fi
fi

参考Nginx之Keepalived实现高可用(双机热备+自动切换)-yellowcong_yelllowcong的专栏-CSDN博客_nginx 热切换

备用服务器跟这个几乎相同,只需要修改备用服务器的配置文件

! Configuration File for keepalived

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" #运行脚本
    interval 2 #检测时间间隔
    weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    ###MASTER 主的意思  BACKUP 从
    state BACKUP #来决定主从
    interface ens32 # 绑定虚拟 IP 的网络接口
    virtual_router_id 110 # 虚拟路由的 ID 号, 两个节点设置必须一样
    mcast_src_ip 192.168.6.135 #填写本机ip
    priority 100 # 节点优先级,主要比从节点优先级高
    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
    advert_int 1 # 主备信息发送间隔,两个节点设置必须一样,默认 1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 将 track_script 块加入 instance 配置块
    track_script {
        chk_nginx #执行 Nginx 监控的服务
    }
    virtual_ipaddress {
        192.168.6.100 # 虚拟ip,可配置多个。
    }
}

然后绑定host 访问域名

八、Linux 配置开机启动

 1、新增文件

vim /lib/systemd/system/nacos.service

内容如下

[Unit]
Description=nacos
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh  #自己的nacos启动目录
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
 
[Install]  
WantedBy=multi-user.target

2、开机启动

systemctl daemon-reload
systemctl enable nacos.service
systemctl start nacos.service

 3、配置java_home 路径,修改启动脚本startup.sh

最后附上 测试代码 nacos: nacos分布式配置中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熟透的蜗牛

永远满怀热爱,永远热泪盈眶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值