【服务端】高可用Nacos集群(伪集群)Keepalived+Nginx+Nacos+MySQL

Nacos基础(3)——nacos+nginx & 集群的配置和启动 & 端口开放 & nginx反向代理nacos集群 1.nacos集群启动的方式,修改cluster.conf集群的配置,多个nacos; 2.修改启动配置文件application.properties,多个nacos分别以集群方式启动; 3.nginx反向代理多个nacos,配置代理tcp,以及http; 阅读详情

  • 架构图

 

目录

架构图

一、基本准备

二、Nacos集群部署

三、Nginx安装

3.1 Nginx-master安装

 3.2 Nginx-slave安装

 四、Keepalived安装

4.1 Nginx-master配置

4.2 Nginx-slave配置

4.3 启动Nginx和keepalived

 五、服务注册测试

结语


一、基本准备

        虚拟机操作系统:CentOS Linux 7.9 x86_64

  • 虚拟机3台(奈何囊中羞涩)
    • Nacos_MySQL的虚拟机 1核 3G
    • 其他两台Nginx的 1核1G

  •  软件版本

-

keepalived  keepalived-1.3.5-19.el7.x86_64 (yum安装)

-

Nginx  1.20.1 (yum安装)

-

Nacos 1.1.4 

 github下载

https://github.com/alibaba/nacos/releases/download/1.1.4/nacos-server-1.1.4.tar.gz

百度网盘

nacos-server-1.1.4.tar.gz

-

MySQL 5.7.36(自行安装,我使用的docker安装的,个人测试用)

二、Nacos集群部署

 虚拟机IP:192.168.0.110

将nacos-server-1.1.4.tar.gz上传到虚拟机

1.解压缩

tar -zxvf nacos-server-1.1.4.tar.gz 

 2.移动

mkdir -p /usr/local/mynacos && mv nacos /usr/local/mynacos/

 

3. 创建数据库并执行SQL

CREATE DATABASE nacos_config;
cd /usr/local/mynacos/nacos/conf

 使用mysql-cli source命令或者通过Navicat、SQLyog等工具将nacos-mysql.sql在 nacos-config 数据库执行。

 

4.修改application.properties

- 建议:修改前先备份

cd /usr/local/mynacos/nacos/conf
cp -r application.properties application.properties.bak
vim application.properties

在文件最后添加db信息

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

5.配置集群节点node

cd /usr/local/mynacos/nacos/conf
cp -r cluster.conf.example cluster.conf
vim cluster.conf

清空文件中的内容,并填入一下内容(以你自己的IP为准)

192.168.0.110:3333
192.168.0.110:4444
192.168.0.110:5555

6.修改启动脚本

cd /usr/local/mynacos/nacos/bin
cp -r startup.sh startup.sh.bak
vim startup.sh

   添加脚本启动指定的参数-p端口

while getopts ":m:f:s:p:" opt




        p)
            PORT=$OPTARG;;

shift+g 到文件最后

-Dserver.port=${PORT}

另外,如果当前机器内存较小的话,需要修改服务的启动内存和最大内存

搜索启动内存参数设置(注:nacos-server-1.4.4为2g,其他版本的未测试)

/2g
# 或者使用替换命令
:%s/2g/256m/g

 

 我这里全部设置为256m

 -Xms256m -Xmx256m -Xmn256m

保存退出。

7.复制nacos文件夹

 cp -r nacos/ nacos02
 cp -r nacos/ nacos03

8.启动

/usr/local/mynacos/nacos/bin/startup.sh -p 3333
tail -f /usr/local/mynacos/nacos/logs/start.out

 

 启动其他两个节点

/usr/local/mynacos/nacos02/bin/startup.sh -p 4444
/usr/local/mynacos/nacos03/bin/startup.sh -p 5555

等待启动,使用netstat 命令查看端口

netstat -ntpl

 到这步,如果出错,请查看每个节点的启动日志以及nacos.log

tail -f  /usr/local/mynacos/${不同nacos节点目录}/logs/start.out
tail -f  /usr/local/mynacos/${不同nacos节点目录}/logs/nacos.log

内存不够也会导致无法启动,适当调节虚拟机内存或者修改启动内存参数。

没有任何问题,这台机器先放到这。

三、Nginx安装

Nginx-masterIP:192.168.0.111

3.1 Nginx-master安装

1.yum安装Nginx

yum -y install nginx

 如果没有,需要安装epel包

yum -y install epel-release
yum -y install nginx

 2.修改nginx.conf配置文件

cd /etc/nginx/
cp -r nginx.conf nginx.conf.bak
vim nginx.conf

由于目前仅测试,所以没有创建nginx用户,建议注释,有可能报403;

添加upstream nacoscluster 不要加下划线

upstream nacoscluster {
server 192.168.0.110:3333;
server 192.168.0.110:4444;
server 192.168.0.110:5555;
}

 添加location

location / {
        proxy_pass http://nacoscluster;
}

保存退出

3.启动nginx

nginx

4.访问测试

http://192.168.0.111/nacos

默认用户名:nacos

默认密码:nacos

 添加一个配置文件测试

查看数据库

 

 3.2 Nginx-slave安装

Nginx-slaveIP: 192.168.0.112

Nginx-slave安装与Nginx-master安装配置方式相同,此处不再赘述。

1.访问测试(从机)

http://192.168.0.112/nacos

 四、Keepalived安装

借鉴博客

Nginx的高可用集群_nginx集群_梁萌的博客-优快云博客

在两台Nginx虚拟机上执行

yum -y install keepalived

4.1 Nginx-master配置

cd /etc/keepalived/
cp -r keepalived.conf keepalived.conf.bak
vim keepalived.conf

 - smtp_server 192.168.0.111 本机ip

  - script "/usr/local/src/nginx_check.sh"  nginx检查脚本

touch /usr/local/src/nginx_check.sh
chmod +x /usr/local/src/nginx_check.sh

# nginx_check.sh 内容

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
    /usr/sbin/nginx  # 注意这里需要换成nginx可执行文件的路径,源码包安装的nginx需要修改。
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

  - state MASTER 标识为主机

  - interface ens33 网卡,如果是 eth0 就写 eth0

    virtual_ipaddress {
        192.168.0.115/24  虚拟ip,建议加上prefix
    }

! Configuration File for keepalived
 
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.0.111
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
 
vrrp_script chk_http_port {
 
  script "/usr/local/src/nginx_check.sh"
  interval 2
  weight 2
}
 
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.115/24
    }
}

4.2 Nginx-slave配置

cd /etc/keepalived/
cp -r keepalived.conf keepalived.conf.bak
vim keepalived.conf

- smtp_server 192.168.0.112 本机ip

- script "/usr/local/src/nginx_check.sh"  nginx检查脚本

touch /usr/local/src/nginx_check.sh
chmod +x /usr/local/src/nginx_check.sh

# nginx_check.sh 内容

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
    /usr/sbin/nginx  # 注意这里需要换成nginx可执行文件的路径,源码包安装的nginx需要修改。
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

- state BACKUP 标识为备用机

- interface ens33 网卡,如果是 eth0 就写 eth0

    virtual_ipaddress {
        192.168.0.115/24  虚拟ip,建议加上prefix
    }

! Configuration File for keepalived
 
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.0.112
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
 
vrrp_script chk_http_port {
  script "/usr/local/src/nginx_check.sh"
  interval 2
  weight 2
}
 
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.115/24
    }
}

4.3 启动Nginx和keepalived

# 主机
nginx
# 从机
nginx
#主机
systemctl start keepalived
#从机
systemctl start keepalived

 

 在Nginx-master上查看ip

ip a

 监听两个nginx的access.log文件

tail -f /var/log/nginx/access.log

使用虚拟IP访问测试

http://192.168.0.115/nacos

 发现日志只走了Nginx-master

 将Nginx-master的nginx、keepalived服务停止

pkill -9 nginx
systemctl stop keepalived

再次访问,发现请求到从机了。

http://192.168.0.115/nacos

 五、服务注册测试

1.编辑application.yml

2.查看服务注册状态 

 至此,keepalived+nginx+nacos+mysql,部署高可用nacos完成。

结语

其中很多部分也不是很懂,基本都是在百度上找的,但是最终确实实现了想要的效果(自我感觉)。

还有就是用高版本的nacos会报错,而且每个版本还都报不一样的错,可能还是哪里没配置太对。

但至少有一个版本可以跑通了 :)

希望可以帮到你!

微服务三章 第一节之Nacos配置管理、nginx反向代理,nacos集群搭建 啦啦啦 阅读详情

相关推荐

nginx详解

nginx简介 nginx概述 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 nginx作为web服务器 Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比...

9.冄2.7.號的博客 1406

Nacos高可用性原理探究

高版本的Nacos服务端需要为每个单独的应用配置,几乎所有应用启动起来都需要配置很麻烦,我这里只讨论distro协议,与其中的配置中心,认证中心等无关,这里我使用旧版的Nacos1.2.0服务端版本,此版本只需要启动一个SpringBoot应用即可,其他应用也随之启动。无法保证C:当Nacos服务端集群有新节点加入时,需要拉取全量的数据,具有最终一致性,但是在启动之后,拉取数据数据的过程中,其他节点的数据可能会有变化,导致短时间内的数据不一致。对这个客户端节点的效果就是AP,采用distro协议实现;

qq_38663602的博客 2037

VMware桥接模式实战:用手机热点给Linux虚拟机共享网络(附WiFi适配技巧)

本文详细介绍了在移动办公场景下,如何为VMware中的Linux虚拟机配置桥接模式,以通过手机热点共享网络。文章深入解析了桥接模式在无线环境下的工作原理,提供了从主机端准备、VMware设置到Linux虚拟机内部配置的完整实战步骤,并针对手机热点的特殊性,分享了MTU优化、DNS配置及常见网络问题的诊断与解决方案,帮助用户实现稳定高效的移动虚拟化办公。

2y3u4i5o6p的博客 1194

Nacos集群高可用性设计

胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优秀作者,获得2023电子工业出版技术成长领路人称号,荣获2024年电子工业出版社博文视点20周年荣誉专家称号。

huxian1234的专栏 2030

QMI8658姿态传感器实战:从校准到自检的完整避坑指南

本文详细解析了QMI8658姿态传感器的校准与自检流程,提供了从硬件环境搭建到高级功能开发的完整避坑指南。通过真实案例揭示电源设计、接口优化、温度补偿等关键细节,帮助开发者提升传感器精度和可靠性,适用于工业级应用场景。

weixin_29184075的博客 455

PostgreSQL 在 Windows操作系统 无管理员权限情况下的部署详解

但是因为使用默认5432端口,我们修改了端口,所以连接报错,需要修改local连接信息,右键-属性修改相应信息即可,方式同上。(也别太任意吧,个人习惯工具放在不包含中文及特殊字符的目录,另外目录名尽量简短,避免不必要的麻烦)图中我解压到了自己的tools\postgresql18。1)如果想修改默认的5432端口,找到初始化目录中的(上面的tools\postgresql18\。此处替换成你的实际目录\tools\postgresql18\pgsql\pgAdmin 4\runtime。

dong_zhi2328的博客 1116

生产环境Nacos高可用集群搭建:从架构选型到实战部署

在微服务架构中,服务注册与配置中心是保障系统稳定性的核心基础设施,其高可用性设计直接决定了整个分布式系统的容错能力与业务连续性。通过集群化部署消除单点故障,是实现服务发现与配置管理高可用的基本原理。这不仅能提升系统的整体可靠性,还能通过负载均衡优化资源利用。在技术实现上,结合负载均衡器(如HAProxy)与虚拟IP(VIP)构建统一访问入口,是当前生产环境的主流方案,它能有效解决客户端配置僵化、缺乏故障自动转移等工程难题。本文聚焦于Nacos这一主流组件,深入剖析其高可用集群的架构设计、部署细节与运维要点,

chaoyv 413

GNSS - PPP软件 - GAMP 在VS2019/2022下完成调试、跑通程序(超详细!)

WIN32;_DEBUG;_CONSOLE;O_WARNINGS;ENAGLO;ENACMP;ENAGAL;ENAQZS;NFREQ=3。

qq_43381998的博客 8247

Nginx + Nacos持久化 + 集群搭建

Nginx + Nacos持久化 + 集群搭建。

张金龙. 2921

学习STM32的无人机控制

设计并实现无人机控制系统,使用STM32单片机进行控制。无人机控制系统主要包括飞行控制、姿态控制、定位导航等功能。以下是一个基于STM32的无人机控制系统的代码案例。以上是一个基于STM32的无人机控制系统的代码案例,包括飞行控制、姿态控制和定位导航等功能。请根据实际情况进行修改和完善。

qq_67153941的博客 837

初探802.11协议(0)——PCF/DCF与CSMA/CA机制

IEEE802.11 CSMA/CA机制与DCF机制

FanFF的博客 4505

Ubuntu上搭建Nacos集群

本文介绍了在Ubuntu系统上搭建Nacos集群并通过Nginx实现负载均衡的详细步骤。首先在/usr/local/nacos目录下解压安装包,配置MySQL数据源并修改application.properties文件。然后通过复制安装包创建三个节点(8858、8868、8878端口),配置cluster.conf集群文件并分别启动。最后安装Nginx,配置upstream实现三个Nacos节点的负载均衡,通过8848端口统一访问。

沐雨橙风ιε的博客 7522

五、实战pxe安装ubuntu 22.04 软raid1(实际生产pxe配置)

这段配置文件是一个cloud-init的自动安装配置,用于自动化部署Ubuntu服务器操作系统。它定义了从系统身份、键盘布局、区域设置到磁盘分区和RAID配置的一系列设置,并且包含了在安装过程的最后阶段执行的一些命令。基础设置version: 1指定了autoinstall配置文件的版本。source定义了安装源,这里是ubuntu-server。identity设置了主机名(hostname)、用户(username)和密码(password注意这里的密码是经过加密的。键盘与语言设置。

jundao1997的专栏 999

Nacos+Nginx集群配置

Springboot启动提示:com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILAB

weixin_54476777的博客 1万+

物理AI重构自动驾驶供应链 | 传统Tier1盈利模式崩塌,纯算法/软硬一体双路线落地对比,助力智驾软件商业化与全场景模型迭代

2026年是自动驾驶物理AI规模化落地元年,行业彻底告别传统感知-预测-规划-控制的模块化分层开发范式,迈入以世界模型、物理规则推演、端到端动作生成为核心的全新技术阶段。不同于传统AI仅完成图像识别、目标检测的浅层感知任务,物理AI能够深度理解道路交通中的动力学约束、路面摩擦、车辆博弈、行人运动规律等真实物理逻辑,实现对复杂路况的时序推演与自主决策,从底层重构自动驾驶技术架构。技术迭代同步引发产业链颠覆性变革,沿用数十年的传统自动驾驶Tier1商业模式全面崩塌。

getusushu的博客 287

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何搭建Nacos高可用集群

如何搭建Nacos高可用集群

混世小魔王 4898

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Nacos高可用集群搭建与使用

Nacos是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态DNS服务三大功能。是SpringCloudAlibaba架构中最重要的组件,能够无缝对接Springcloud、Spring、Dubbo等流行框架。Nacos和Eureka功能对比功能模块NacosEureka功能说明注册中心√√服务治理,服务中心化注册配置中心√×Eureka需要配合Springcloud config实现配置动态刷新√×。

花瓣戏雨 3533

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Nacos高可用集群部署

Nacos高可用部署

weixin_44163059的博客 1009

使用nginx作为nacos集群代理

spring cloud项目中使用nginx作为nacos集群代理

m0_67588718的博客 3227

JAVA面试题分享一百七十三:Nacos的注册中心是怎样实现高可用的?

当我们在聊高可用时,我们在聊什么?系统可用性达到 99.99%在分布式系统中,部分节点宕机,依旧不影响系统整体运行服务端集群化部署多个节点Nacos 高可用,则是 Nacos 为了提升系统稳定性而采取的一系列手段。Nacos 的高可用不仅仅存在于服务端,同时也存在于客户端,以及一些与可用性相关的功能特性中,这些点组装起来,共同构成了 Nacos 的高可用。本文从多个角度出发,总结了一下 Nacos 是如何保障高可用的。

之乎者也·的博客 1789

Nginx + Nacos2.x(集群)部署防踩坑指南

Nacos2.x踩坑指南

weixin_55658418的博客 2241

Nacos高可用如何保证

Nacos 高可用介绍 当我们在聊高可用时,我们在聊什么? 系统可用性达到 99.99% 在分布式系统中,部分节点宕机,依旧不影响系统整体运行 服务端集群化部署多个节点 Nacos 高可用,则是 Nacos 为了提升系统稳定性而采取的一系列手段。 Nacos 的高可用不仅仅存在于服务端,同时也存在于客户端,以及一些与可用性相关的功能特性中,这些点组装起来,共同构成了 Nacos 的高可用。 客户端高可用 先统一一下语义,在微服务架构中一般会有三个角色: Consumer Provider Regis

琦彦 5199

nacos集群模式+keepalived搭建高可用服务

keepalived搭建nacos高可用集群

u010797364的博客 1463

Nacos实现高可用

Nacos实现高可用

Leon_Jinhai_Sun的博客 2538

Springcloud nacos集群和持久化配置+nginx动态代理框架搭建

Linux版Nacos+MySQL生产环境配置,详细步骤!!!!

monkey_yuan19的博客 2236

Nacos配置管理-nacos集群搭建

Nacos集群搭建 1.集群结构图 官方给出的Nacos集群图: 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构: 三个nacos节点的地址: 节点 ip port nacos1 192.168.150.1 8845 nacos2 192.168.150.1 8846 nacos3 192.168.150.1 8847 2.搭建集群 搭建..

Leon_Jinhai_Sun的博客 4112
上一篇: 【接口测试】Postman 连接数据库MySQL
下一篇: 【Java】Java调用powershell JPowershell的使用
一zhi小白
博客等级 码龄7年 126粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值