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

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

正文


一、什么是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
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方便,推荐模式


我们按照下图部署


555.jpg


       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实现集群高可用


访问变成这种模式


555.jpg


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,配置成功


555.jpg


重启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,可配置多个。
    }
}


555.jpg


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


相关文章
|
5天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
23 1
Nacos配置中心
|
4月前
|
Java Nacos 数据库
使用 nacos 搭建注册中心及配置中心
使用 nacos 搭建注册中心及配置中心
99 5
|
4月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
132 3
|
1天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
|
4天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
15 4
|
4天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
16 3
|
4天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
16 3
|
13天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
37 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
3月前
|
安全 Nacos 数据安全/隐私保护
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
115 8
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
下一篇
无影云桌面