搭建nacos集群,并通过nginx实现负载均衡

nacos、eureka、consul、zookeeper等都是常用的微服务注册中心,这篇文章详细介绍一下在Ubuntu操作系统上搭建一个nacos的集群,以及通过nginx的反向代理功能实现nacos的负载均衡。

目录

一、安装nacos

1、安装nacos

2、修改nacos配置文件

3、创建nacos的数据源

二、搭建nacos集群

1、修改nacos的集群配置文件

2、创建nacos集群节点

3、安装nginx服务器

4、通过nginx的反向代理功能实现nacos的负载均衡


在此之前,需要一台安装了Ubuntu系统的服务器或者虚拟机。

一、安装nacos

1、安装nacos

把下载下来的nacos压缩包上传到Ubuntu的一个目录下,这篇文章选择在/usr/local下创建一个nacos目录来保存安装的多个nacos服务器。

上传压缩包后解压:

tar -zxvf nacos-server-1.4.2.tar.gz

2、修改nacos配置文件

上面已经完成了nacos的安装,接下来修改一下nacos的配置文件,由于nacos默认把数据保存到derby数据库(这是一个内存数据库),为了保证数据的一致性,需要修改一下,把配置信息保存到mysql。

修改nacos安装目录下的conf/application.properties配置文件

修改nacos数据源配置,也就是红框内的配置

修改之后的配置内容(先取消注释,删除前面的# ,然后修改配置)

3、创建nacos的数据源

第二步已经修改了nacos的数据源配置,接下来需要在服务器的mysql数据库上创建一个nacos数据库

然后,在nacos数据库上执行下面的nacos-mysql.sql

执行完成后,数据库下面有以下几张表:

二、搭建nacos集群

1、修改nacos的集群配置文件

首先,复制一份cluster.conf.example并命名为cluster.conf

修改配置文件的内容,把所有nacos服务器的地址都编辑上去。

192.168.60.128:8858
192.168.60.128:8868
192.168.60.128:8878

2、创建nacos集群节点

把nacos的目录名修改为nacos8858,作为集群的一个节点。

重复之前的解压操作,然后重命名。

创建节点2

创建节点3

然后把nacos8858的conf/application.properties以及cluster.conf复制一份,覆盖掉nacos8868和nacos8878两个节点原来的配置文件。

最后一步:修改三个节点的端口号,修改conf/application.properties

最后,依次启动三个节点(注意:这里其实只需要启动任意节点即可,其余节点会一起启动)

启动节点1

访问一下三个节点(用户名/密码初始都是nacos)

访问节点1

在节点1创建一个命名空间test

访问节点2

访问节点3,在集群管理中可以看到三个节点都在线

至此,nacos集群搭建完成~

3、安装nginx服务器

可以参考博主的另外一篇文章完成nginx的安装:

ubuntu上安装nginxicon-default.png?t=N7T8https://blog.csdn.net/heyl163_/article/details/132549969

4、通过nginx的反向代理功能实现nacos的负载均衡

修改niginx的配置文件nginx.conf

upstream nacosserver {server 192.168.60.128:8858;server 192.168.60.128:8868;server 192.168.60.128:8878;
}server {listen       8848;server_name  localhost;location /nacos/ {proxy_pass http://nacosserver/nacos/;}
}

通过nginx访问nacos

好了,文章就分享到这里了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MIT 6.858 计算机系统安全讲义 2014 秋季(二)

译者:飞龙 协议:CC BY-NC-SA 4.0 本地客户端 注意: 这些讲座笔记略有修改,来自 2014 年 6.858 课程网站。 本文的目标是什么? 当时,浏览器只允许任何网页运行 JS(Flash)代码。 希…

【C++】6-13 学生成绩的快速录入(构造函数)分数 10

6-13 学生成绩的快速录入(构造函数) 分数 10 全屏浏览 切换布局 作者 何振峰 单位 福州大学 现在需要录入一批学生的成绩(学号,成绩)。其中学号是正整数,并且录入时,后录入学生的学号会比前…

学习JAVA的第十九天(基础)

目录 File 成员方法(判断和获取) 成员方法(创建和删除) 成员方法(获取并遍历) IO流 FileOutputStream FileInputStream 文件拷贝 前言:学习JAVA的第十八天(基础)…

如果实现了BeanFactoryPostProcessor接口,则@PostConstruct和@PreDestroy和@Value将不起作用

如果实现了BeanFactoryPostProcessor接口,则PostConstruct和PreDestroy和Value将不起作用 如果实现了BeanFactoryPostProcessor接口,则PostConstruct和PreDestroy和Value将不起作用 BeanFactoryPostProcessor BeanFactoryPostProcessor是Spring框架中的一个接口,用…

【C语言】Linux内核pci_read_config_和pci_write_config_

一、pci_read_config_讲解 这些函数是Linux内核中用于从PCI设备的配置空间读取信息的函数。配置空间是PCI设备的一小块内存,它存储了关于该设备的重要信息,例如设备ID、供应商ID、中断设置等。 pci_read_config_byte、pci_read_config_word、pci_read_c…

算法刷题day27:日期问题

目录 引言概念一、日期差值二、日期问题三、回文日期 I四、回文日期 II五、日期计算 引言 日期问题在蓝桥杯中只要把常见的题型掌握明白了,把逻辑给写清楚明白,基本上是很简单的,再就是多做题,题型多见,做熟练&#x…

章六、集合(1)—— 概念、API、List 接口及实现类、集合迭代

零、 关闭IDEA调试时自动隐藏空元素 一、 集合的概念 存储一个班学员信息,假定一个班容纳20名学员 当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器。 数组有什么缺…

记录一下el-table的tooltip换行

一些需求场景下,需要保持el-table中tooltip出现的时机,并且当前代码编写时完全不能通过js控制tooltip禁用属性时,可以通过以下方法实现tooltip换行。 1、对应单元格的 showOverflowTooltip 属性设置为true,tooltip出现时机依然使…

一文读懂:公网IP地址证书

公网IP证书是一种SSL证书,用于验证和确认特定的公网IP地址是否实际属于申请者。如果验证通过,证书颁发机构将向该IP地址持有人颁发一个以IP地址为主题的SSL证书。使用公网IP证书可以有效提升IP身份的辨识度,减少网站链接被假冒的风险&#xf…

学会这7种SQL进阶用法,让你少走99%的弯路!

引言 在日常业务开发中,熟练掌握SQL语言是至关重要的。除了基础的增删改查操作外,了解和掌握一些进阶的SQL用法能够让你更高效地处理各种复杂的数据操作。本文将介绍几种SQL进阶用法,让你少走99%的弯路,提高数据处理效率。 自定…

【Idea】八种Debug模式介绍

1.行断点 在对应的代码行左侧边栏点击鼠标左键,会出现一个红色圆圈,以debug模式执行时当代码运行到此处则会停止,并可以查询相关上下文参数 2.方法断点 在方法左侧点击创建断点,在方法进入时会停止,同时可以右键断点,…

vite vue3 路由配置@找不到文件问题描述

问题描述 在vite.config.js文件中配置路由的时候,添加路由界面,找不到指定的文件,提示错误,如图所示: 但是换成 ./ 或者 ../ 就正常了,也没有报错问题 解决办法 1.安装一个path的插件 npm install --sav…

风车IM即时通讯系统APP源码DJ2403版完整苹果安卓教程

关于风车IM,你在互联网上能随便下载到了基本都是残缺品, 经过我们不懈努力最终提供性价比最高,最完美的版本, 懂货的朋友可以直接下载该版本使用,经过严格测试,该版本基本完美无缺。 1.宝塔环境如下: Ngin…

第二十四章 跨域

一、跨域 1. 什么是跨域 跨域,是指当前浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。跨域问题也可以具体描述为:请求方使用XMLHttpRequest请求没有遵守同源策略且没有设置CORS规则的被…

什么是Git引用和分支?

一. 引言 什么是Git引用和分支?比如我在 Github 上一个项目的 .git/refs目录下: ├─heads │ dev │ master │ ├─remotes │ └─origin │ master │ └─tags refs 目录下包含了 heads、remote、tags 三个子目录&#xff0…

openCV制作九宫格图片

我想将任意九张图片按照九宫格排列方式合并成一张大图,使用openCV实现。 如果用画图工具来实现的话,需要事先准备一个600 X 600像素的画布。用openCV实现也是同理,准备一张600 X 600的图片。然后将图片划分成9份,每一份替换成小图…

《Ubuntu20.04环境下的ROS进阶学习0》

一、逛ROS应用商店 在上一专栏http://t.csdnimg.cn/oGlcu,我们了解了ROS的基本功能。这一专栏将会在此基础上做出进一步拓展学习。那么首先我们要学会下载并阅读别人的代码。常用的两个应用商店一个是ROS的官方应用商店ROS index,另一个就是我们熟知的gi…

11---数字温度 OR 湿度传感器电路设计

视频链接 数字温度or湿度传感器电路设计02_哔哩哔哩_bilibili 数字温度 OR 湿度传感器电路设计 1、温湿度传感器 DHT11 DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度-5%RH, 温度-2℃,量程湿度20-90%RH, 温度0~50℃。 D…

MySQL临时表创建出错(OS errno 13 - Permission denied)

一个客户向我抱怨:在MySQL查询小表没有问题,查询大表出错,下面是他发给我的出错的部分截屏(客户的表名被我隐藏了)。 这里的给出的信息已经比较明显了,是向/tmp目录中创建临时表失败(临时表的路…

【嵌入式——QT】Splash与登录窗口

一般的大型应用程序在启动时会显示一个启动画面,即Splash窗口,Splash窗口是一个无边对话框,一般显示一个图片,展示软件信息,Splash窗口显示时,程序在后台做一些比较耗时的启动准备工作,Splash窗…