该文章是本人在学习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集群详细步骤相关推荐

  1. Linux系统搭建Solr和Redis集群详细步骤

    1 搭建Solr集群(SolrCloud) 1.1 Zookeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoo ...

  2. 搭建高可用mongodb集群(二)—— 副本集

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能 ...

  3. 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务

    使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务 一.基于于NAT的LVS的安装与配置. 1. 硬件需求和网络拓扑                       ...

  4. Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

    随笔 - 70  文章 - 0  评论 - 88 Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo 近期为了分析国内航空旅游业常见安全漏洞,想到 ...

  5. linux搭建spark集群,详解Spark+Zookeeper搭建高可用Spark集群

    Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎:现在形成一个高速发展应用广泛的生态系统. Spark三种分布式部署方式比较 目前Apache Spark支持三种分布式部署方式, ...

  6. centos系统 用kubeadm 搭建高可用k8s集群

    官网教程(部分国外镜像源下载会超时) 1. 安装前调整系统配置 主机规划 主节点1 hostnamectl set-hostname k8s-master01 && bash 主节点2 ...

  7. K3S系列文章-使用AutoK3s在腾讯云上安装高可用K3S集群

    开篇 <K3s 系列文章> <Rancher 系列文章> 方案 在腾讯云上安装 K3S 后续会在这套 K3S 集群上安装 Rancher 方案目标 高可用 3 台master ...

  8. 搭建高可用 RocketMQ 集群

    RocketMQ发展历史 RocketMQ是一个由阿里巴巴开源的消息中间件, 2012年开源,2017年成为apache顶级项目.RocketMQ在阿里内部应用是非常广泛的,阿里内部的几千个应用都运行 ...

  9. 大数据学习笔记30:搭建高可用Hadoop集群

    文章目录 一.准备工作 1.由CentOS7克隆三个虚拟机 2.设置虚拟机主机名 (1)设置虚拟机master主机名 (2)设置虚拟机slave1主机名 (3)设置虚拟机slave2主机名 (4)重启 ...

最新文章

  1. paddle deepspeech v2 转 pytorch
  2. CMake 条件判断
  3. Linux磁盘分区及文件系统管理之基础概念
  4. Applese 的取石子游戏
  5. 剑网三缘起应老玩家要求调整规则,几分钟就能搞定,获得足够声望
  6. PHPcms框架的Webshell
  7. 基于matlab的频域辨识,基于Lab VIEW的控制系统频域分析研究
  8. http是不是中间件_等保2.0涉及的Apache Tomcat中间件(上)
  9. RadAsm + OD 搭配编写和调试汇编程序
  10. arm-linux 看门狗,S3C6410看门狗源码实例
  11. 视频:使用FFMpeg实现视频录制与压缩
  12. 联想服务器系统如何备份软件,联想笔记本如何使用系统自带备份/还原功能进行备份与还原系统...
  13. win远程桌面连接无显示器Ubuntu(22.04.1 LTS)
  14. MyCobot六轴机械臂开箱及开发前的准备工作(一)
  15. CSUOJ--1633 Landline Telephone Network
  16. 华中师范大学计算机学院学分绩,华中师范大学学生学业成绩表(模板)
  17. OracleP6机场工程进度控制系列15:总进度综合管控报告
  18. Java字符串去重的几种实现
  19. Ubuntu 20.04防火墙 UFW做NAT转换,IP伪装,端口重定向,端口映射
  20. [SQL Server] Northwind and pubs Sample Databases安装

热门文章

  1. ZOJ3775:?(_o)!
  2. Mac adb操作设备与电脑文件传输及Apk安装启动
  3. 关于VTOL垂直起降模式的参数很详细的介绍
  4. Scala的变量声明和数据类型详解
  5. 小程序 快递100查询查看物流
  6. Custom Elements详解
  7. 【干货】机器学习中的五种回归模型及其优缺点
  8. Hadoop集群(第9期)_MapReduce初级案例
  9. python 数据分析课程改革网_计算思维培养视域下《Python程序设计》课程的教学改革实践...
  10. (填坑)tarjan