Linux上搭建高可用nacos集群详细步骤
该文章是本人在学习Spring Cloud Alibaba过程中的记录,其中详细记录了如何完成服务注册和配置中心nacos的集群搭建、以及如何完成配置信息的持久化。
如果文章有误,还请各位看官不吝指正。同时也渴望与各路大神的交流,本人的联系方式:jenson_97@163.com
一、集群环境和架构模式
1、集群环境
我的环境如下:
CentOS 7 64 bit、Java 8 、Nginx-1.10.1、Nacos-1.1.4、MySQL-5.7.32
关于nginx和mysql的安装问题,可以看我的另外两篇文章。
Linux下安装配置MySQL及过程问题排查
在Linux上安装Nginx详解
2、结构模式
我总共使用两台机器来模拟整个集群,具体角色分配情况如下:
机器地址 | 角色 |
---|---|
192.168.43.184 | nginx,nacos节点1 |
192.168.43.11 | nacos节点2,mysql数据库 |
192.168.43.10 | nacos节点3 |
示意图如下:
nginx作为访问门户,承担了对nacos集群的负载均衡策略;nacos集群则有效的预防了单点故障的问题,保证了集群的高可用。MySQL数据库作为配置信息的持久化中心,在配置中心的所有配置信息都是从MySQL数据库中完成读写操作。在生产环境中,MySQL建议至少主备模式,高可用MySQL更佳。
二、初始化数据库
使用navicat连接虚拟机上的数据库,然后进入到nacos安装目录/conf,执行nacos-mysql.sql脚本(数据库名为nacos_config)
三、配置数据库连接
找到nacos安装目录下的conf/application.properties文件(建议修改之前先做好备份),向其中添加系列配置信息,其他两个节点做相同配置:
spring.datasource.platform=mysql
#表明有多少个mysql实例
db.num=1
db.url.0=jdbc:mysql://192.168.43.11:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
更具一般性的配置为:
spring.datasource.platform=数据库提供商
#表明有多少个数据库实例
db.num=total
db.url.0=jdbc:数据库://IP:Port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:数据库://IP:Port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
...
db.url.total=jdbc:数据库://IP:Port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=数据库用户名
db.password=对应的密码
到这里我们就完成了nacos配置中心对配置信息的持久化。
四、集群配置cluster.conf
首先复制出一个cluster.conf(这仅仅是为了安全,实际可以为任意名字,然后在启动时指定这个配置文件即可),然后在cluster.conf中配置集群的地址。
我的配置信息为:
192.168.43.10:8848
192.168.43.11:8848
192.168.43.184:8848
这一步就向nacos说明了,你去找192.168.43.10;192.168.43.11;192.168.43.184下端口号为8848的服务,你们三是一个集群,不要单干。
五、配置nginx
nginx作为负载均衡器,我们需要将nacos集群配置到nginx中。
首先cd到nginx的安装目录下的conf文件夹,备份nginx.conf。
cp nginx.conf nginx.conf.bk
添加upstream,修改代理信息,让nginx走我们自己指定的机器。
到这里为止,我们就完成了nginx的配置。
七、启动所有服务并测试
1、启动nacos集群
分别去每个机器去启动nacos服务
./startup.sh
启动结果如下图所示:
2、启动nginx
cd到sbin目录下,启动nginx,同时使用-c参数去指定某一个配置文件。
./nginx -c /usr/local/nginx/conf/nginx.conf
3、浏览器测试
在地址栏输入192.168.43.184/nacos
可以看到,成功的通过nginx访问到了nacos集群。
假设现在我模拟192.168.43.11节点宕机,经过测试整个集群仍然可以工作,这就保证了服务的高可用性。
用户名和密码都是nacos,我们登陆进去,然后新建一个DataID,测试是否在数据库中做了持久化。
发布之后,进入MySQL中查看:
最后一个题外话,如果你需要将自己的微服务注册进nacos,就不能在配置文件中填写具体的虚拟机地址了,而是通过nginx去完成注册。比如我的配置如下:
spring.cloud.nacos.discovery.server-addr=192.168.43.184:80
到这里,我们就成功的完成了Nacos集群的搭建和测试了,如果对你有帮助,还希望你能够点个赞在离开哦 ~ ( ̄▽ ̄) ~*
参考资料:
nacos官方文档
Linux上搭建高可用nacos集群详细步骤相关推荐
- Linux系统搭建Solr和Redis集群详细步骤
1 搭建Solr集群(SolrCloud) 1.1 Zookeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoo ...
- 搭建高可用mongodb集群(二)—— 副本集
2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能 ...
- 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务
使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务 一.基于于NAT的LVS的安装与配置. 1. 硬件需求和网络拓扑 ...
- Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo
随笔 - 70 文章 - 0 评论 - 88 Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo 近期为了分析国内航空旅游业常见安全漏洞,想到 ...
- linux搭建spark集群,详解Spark+Zookeeper搭建高可用Spark集群
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎:现在形成一个高速发展应用广泛的生态系统. Spark三种分布式部署方式比较 目前Apache Spark支持三种分布式部署方式, ...
- centos系统 用kubeadm 搭建高可用k8s集群
官网教程(部分国外镜像源下载会超时) 1. 安装前调整系统配置 主机规划 主节点1 hostnamectl set-hostname k8s-master01 && bash 主节点2 ...
- K3S系列文章-使用AutoK3s在腾讯云上安装高可用K3S集群
开篇 <K3s 系列文章> <Rancher 系列文章> 方案 在腾讯云上安装 K3S 后续会在这套 K3S 集群上安装 Rancher 方案目标 高可用 3 台master ...
- 搭建高可用 RocketMQ 集群
RocketMQ发展历史 RocketMQ是一个由阿里巴巴开源的消息中间件, 2012年开源,2017年成为apache顶级项目.RocketMQ在阿里内部应用是非常广泛的,阿里内部的几千个应用都运行 ...
- 大数据学习笔记30:搭建高可用Hadoop集群
文章目录 一.准备工作 1.由CentOS7克隆三个虚拟机 2.设置虚拟机主机名 (1)设置虚拟机master主机名 (2)设置虚拟机slave1主机名 (3)设置虚拟机slave2主机名 (4)重启 ...
最新文章
- paddle deepspeech v2 转 pytorch
- CMake 条件判断
- Linux磁盘分区及文件系统管理之基础概念
- Applese 的取石子游戏
- 剑网三缘起应老玩家要求调整规则,几分钟就能搞定,获得足够声望
- PHPcms框架的Webshell
- 基于matlab的频域辨识,基于Lab VIEW的控制系统频域分析研究
- http是不是中间件_等保2.0涉及的Apache Tomcat中间件(上)
- RadAsm + OD 搭配编写和调试汇编程序
- arm-linux 看门狗,S3C6410看门狗源码实例
- 视频:使用FFMpeg实现视频录制与压缩
- 联想服务器系统如何备份软件,联想笔记本如何使用系统自带备份/还原功能进行备份与还原系统...
- win远程桌面连接无显示器Ubuntu(22.04.1 LTS)
- MyCobot六轴机械臂开箱及开发前的准备工作(一)
- CSUOJ--1633 	 Landline Telephone Network
- 华中师范大学计算机学院学分绩,华中师范大学学生学业成绩表(模板)
- OracleP6机场工程进度控制系列15:总进度综合管控报告
- Java字符串去重的几种实现
- Ubuntu 20.04防火墙 UFW做NAT转换,IP伪装,端口重定向,端口映射
- [SQL Server] Northwind and pubs Sample Databases安装