基于CentOS Stream 9平台搭建Nacos2.0.4集群以及OpenResty反向代理
目录展示
- Nacos2.0.4集群搭建
- 1. 下载
- 2. 解压
- 3.修改配置
- 3.1分别修改下启动类中JDK路径以及启动大小
- 3.2 分别配置数据源
- 3.3 创建nacos数据库
- 3.4 修改cluster.conf配置
- 3.4.1 复制并修改
- 3.4.2 编辑文件,修改三台主机地址
- 3.4.3 分别放入另外两个nacos的conf目录下:
- 4. 启动集群
- 5. 设置服务开机启动
- 5.1 创建脚本:
- 5.2 添加内容:
- 5.3 赋权:
- 5.4 开机自启
- 新建服务文件
- 添加内容:
- 赋权:
- 设置开机自启:
- 重载配置
- 重启尝试脚本可行性(reboot)
- 6. OpenResty
- 6.1 下载
- 6.2 解压
- 6.3 进入目录
- 6.4 执行configure命令
- 6.5 配置nginx.conf文件
- 6.6 重新加载配置文件
- 6.7 设置服务开机自启:
- 6.8 设置开机自启:
准备环境
前提环境准备:
JDK安装及环境配置,参考
MySQL安装及环境配置,参考
Maven安装及环境配置,参考
Nacos2.0.4集群搭建
1. 下载
官网Github:
新建目录
mkdir /usr/local/nacos-cluster
进入目录
cd /usr/local/nacos-cluster
在线下载
wget https://github.com/alibaba/nacos/releases/download/2.0.4/nacos-server-2.0.4.tar.gz
2. 解压
因为在同一台机器,伪集群,所以就改端口,
(1) 解压、重命名区分(也可以先配置好一台,然后再拷贝两份,改下端口就行)
至于为啥没8848,因为集群启动报错,提示8848端口占用....
至于为啥端口设置的这么离谱,问就是官方设置端口占用有偏移量1000±,然后(主要是我看不到到底是那个端口被占用了,去查又没有…搞玄学来的,,之前设置8840、8850、8860这种连续端口,启动的时候报一堆错,差点没把我送走,折腾了好久。后来实在不甘心,随便整个端口跑一下,结果就跑起来了。总结:不要使用连续端口)
Caused by: io.grpc.netty.shaded.io.netty.channel.unix.Errors$NativeIoException: bind(…) failed: Address already in use
tar -zxvf nacos-server-2.0.4.tar.gz
mv nacos nacos8140
(2)
tar -zxvf nacos-server-2.0.4.tar.gz
mv nacos nacos8550
(3)
tar -zxvf nacos-server-2.0.4.tar.gz
mv nacos nacos8960

3.修改配置
3.1分别修改下启动类中JDK路径以及启动大小
vi /usr/local/nacos-cluster/nacos8140/bin/startup.sh
vi /usr/local/nacos-cluster/nacos8550/bin/startup.sh
vi /usr/local/nacos-cluster/nacos8960/bin/startup.sh
ESC状态下
:set number可以显示行号
30行 jdk路径

55 行 默认集群模式启动

93行 启动大小,可以自行修改

ESC :wq保存并退出
3.2 分别配置数据源
vi /usr/local/nacos-cluster/nacos8140/conf/application.properties
vi /usr/local/nacos-cluster/nacos8550/conf/application.properties
vi /usr/local/nacos-cluster/nacos8960/conf/application.properties

#修改端口
server.port=8140
#去掉前面的#注释(修改数据库地址、数据库用户名、密码)
###If use MySQL as datasource:
spring.datasource.platform=mysql
###Count of DB:
db.num=1
###Connect URL of DB:
db.url.0=jdbc:mysql://192.168.20.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
3.3 创建nacos数据库
新建
nacos_config库
sql脚本在对应的conf目录下,放到本地创建数据库,执行一下,导入到新建的数据库中
例如:/usr/local/nacos-cluster/nacos8140/conf


3.4 修改cluster.conf配置
就是将 conf目录下的cluster.conf.example 文件改为cluster.conf文件
然后修改文件里的集群地址
3.4.1 复制并修改
cp /usr/local/nacos-cluster/nacos8140/conf/cluster.conf.example /usr/local/nacos-cluster/nacos8140/conf/cluster.conf
3.4.2 编辑文件,修改三台主机地址
vi /usr/local/nacos-cluster/nacos8140/conf/cluster.conf

ESC :wq保存并退出
3.4.3 分别放入另外两个nacos的conf目录下:
cp /usr/local/nacos-cluster/nacos8140/conf/cluster.conf /usr/local/nacos-cluster/nacos8550/conf
cp /usr/local/nacos-cluster/nacos8140/conf/cluster.conf /usr/local/nacos-cluster/nacos8960/conf
4. 启动集群
记得开放端口或者直接关闭防火墙:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
--zone# 作用域
--add-port=3306/tcp# 添加端口,格式为:端口/通讯协议
--permanent# 永久生效,没有此参数重启后失效
查看开放的端口:
cat /etc/firewalld/zones/public.xml
或者直接
停止防火墙
systemctl stop firewalld
永久关闭防火墙
systemctl disable firewalld
防火墙状态
systemctl status firewalld
sh /usr/local/nacos-cluster/nacos8140/bin/startup.sh
sh /usr/local/nacos-cluster/nacos8550/bin/startup.sh
sh /usr/local/nacos-cluster/nacos8960/bin/startup.sh
可查看对应启动日志:
tail -f /usr/local/nacos-cluster/nacos8140/logs/start.out

访问地址:http://IP:端口/nacos/
例如:http://192.168.20.128:8140/nacos/
相关命令
非集群:
单机启动sh startup.sh -m standalone
集群模式:
使用内置数据源
sh startup.sh -p embedded
使用外置数据源
sh startup.sh
5. 设置服务开机启动
5.1 创建脚本:
vi nacos-cluster.sh
5.2 添加内容:
#!/bin/bash
case $1 in
"start" )#echo ========= 启动nacos集群 =========#echo ========= 启动nacos8140 =========sh /usr/local/nacos-cluster/nacos8140/bin/startup.sh#echo ========= 启动nacos8550=========sh /usr/local/nacos-cluster/nacos8550/bin/startup.sh#echo ========= 启动nacos8960 =========sh /usr/local/nacos-cluster/nacos8960/bin/startup.sh;;"stop" )#echo ========= 停止nacos集群 =========#echo========= 停止nacos8140 =========/usr/local/nacos-cluster/nacos8140/bin/shutdown.sh#echo========= 停止nacos8550=========/usr/local/nacos-cluster/nacos8550/bin/shutdown.sh#echo ========= 停止nacos8960 =========/usr/local/nacos-cluster/nacos8960/bin/shutdown.sh;;
esac
5.3 赋权:
chmod u+x nacos-cluster.sh
脚本单独使用命令
启动:sh nacos-cluster.sh start
停止:sh nacos-cluster.sh stop
5.4 开机自启
准备设置一个.service,开机执行这个脚本文件,以此实现自启效果
系统启动脚本目录 /etc/systemd/system/
新建服务文件
vi /etc/systemd/system/nacos-cluster.service
添加内容:
[Unit]
Description=nacos-cluster
After=network.target remote-fs.target nss-lookup.target mysql8.service zookeeper.service kafka.service[Service]
Type=forking
ExecStart=sh /usr/local/nacos-cluster/nacos-cluster.sh start
ExecStop=sh /usr/local/nacos-cluster/nacos-cluster.sh stop
PrivateTmp=true[Install]
WantedBy=multi-user.target

按ESC :wq保存并退出
赋权:
chmod 754 /etc/systemd/system/nacos-cluster.service
设置开机自启:
systemctl enable nacos-cluster.service
重载配置
systemctl daemon-reload
重启尝试脚本可行性(reboot)
重启后等待一会,nacos启动要点世界
systemctl status nacos-cluster.service

6. OpenResty
通过使用Lua扩展NGINX的可扩展Web平台
中文官网:http://openresty.org/cn/
支持的lua模块: http://openresty.org/cn/components.html
下载页面:http://openresty.org/cn/download.html
下载链接:https://openresty.org/download/openresty-1.21.4.1.tar.gz
6.1 下载
cd /usr/local/
yum install -y wget
wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
6.2 解压
tar -zxvf openresty-1.21.4.1.tar.gz
6.3 进入目录
cd /usr/local/openresty-1.21.4.1
6.4 执行configure命令
默认安装目录
--prefix=/usr/local/openresty
必要环境:
yum -y install gcc gcc-c++ perl make kernel-headers kernel-devel
yum -y install pcre-devel
执行命令:
./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit --with-http_gzip_static_module --with-http_ssl_module

执行命令:
make
make install
6.5 配置nginx.conf文件
vi /usr/local/openresty/nginx/conf/nginx.conf
添加内容:
upstream nacoscluster{server 192.168.20.128:8140;server 192.168.20.128:8550;server 192.168.20.128:8960;}server {# postlisten 8999;server_name localhost;location /nacos/{proxy_pass http://nacoscluster/nacos/;}}

ESC :wq保持并退出
cd /usr/local/openresty/nginx/sbin/
openresty启动命令:
./nginx
6.6 重新加载配置文件
./nginx -s reload
服务调用访问地址:http://192.168.20.128:8999/nacos/

6.7 设置服务开机自启:
vi /etc/systemd/system/open-resty.service
添加:
[Unit]
Description=open-resty
After=network.target remote-fs.target nss-lookup.target mysql8.service zookeeper.service kafka.service nacos-cluster.service[Service]
Type=forking
ExecStart=/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target

ESC :wq保存并退出
6.8 设置开机自启:
systemctl enable open-resty.service

相关命令记录:
禁止开机启动:systemctl disable open-resty.service
启动服务:systemctl start open-resty.service
停止服务:systemctl stop open-resty.service
重启服务:systemctl restart open-resty.service
查看服务状态:systemctl status open-resty.service
查看所有已启动的服务:systemctl list-units --type=service
部署完毕,感谢阅览~
END
相关文章:
基于CentOS Stream 9平台搭建Nacos2.0.4集群以及OpenResty反向代理
目录展示Nacos2.0.4集群搭建1. 下载2. 解压3.修改配置3.1分别修改下启动类中JDK路径以及启动大小3.2 分别配置数据源3.3 创建nacos数据库3.4 修改cluster.conf配置3.4.1 复制并修改3.4.2 编辑文件,修改三台主机地址3.4.3 分别放入另外两个nacos的conf目录下:4. 启动…...
老杜MySQL入门基础 第二天
导入演示数据 1、连接MySQL 2、创建"bjpowernode"数据库 create database bjpowernode;3、选择数据库 use bjpowernode4、导入数据 source D:\bjpowernode.sql(文件的路径)1 去除重复记录(把查询结果去除重复记录)(原表数据不会改变) 使用关键字dist…...
Python深度学习实战:人脸关键点(15点)检测pytorch实现
引言 人脸关键点检测即对人类面部若干个点位置进行检测,可以通过这些点的变化来实现许多功能,该技术可以应用到很多领域,例如捕捉人脸的关键点,然后驱动动画人物做相同的面部表情;识别人脸的面部表情,让机…...
linux简单入门
目录Linux简介Linux目录结构Linux文件命令文件处理命令文件查看命令常用文件查看命令Linux的用户和组介绍Linux权限管理Linux简介 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦兹࿰…...
给准备面试网络工程师岗位的应届生一些建议
你听完这个故事,应该会有所收获。最近有一个23届毕业的大学生和我聊天,他现在网络工程专业大四,因为今年6、7月份的时候毕业,所以现在面临找工作的问题。不管是现在找一份实习工作,还是毕业后找一份正式工作࿰…...
主线程与子线程之间相互通信(HandlerThread)
平时,我们一般都是在子线程中向主线程发送消息(要在主线程更新UI),从而完成请求的处理。那么如果需要主线程来向子线程发送消息,希望子线程来完成什么任务。该怎么做?这就是这篇文章将要讨论的内容。 一、…...
13基于双层优化的电动汽车日前-实时两阶段市场竞标
MATLAB代码:基于双层优化的电动汽车日前-实时两阶段市场竞标 关键词:日前-实时市场竞标 电动汽车 双层优化 编程语言:MATLAB平台 参考文献:考虑电动汽车可调度潜力的充电站两阶段市场投标策略_詹祥澎 内容简介:…...
REDIS19_zipList压缩列表详解、快递列表 - QuickList、跳表 - SkipList
文章目录①. 压缩列表 - zipList②. 快递列表 - QuickList③. 跳表 - SkipList①. 压缩列表 - zipList ①. ZipList是一种特殊的"双端链表",由一系列特殊编码的连续内存块组成。可以在任意一端进行压入/弹出操作,并且该操作的时间复杂度为O(1) (oxff:11111111) type…...
JavaScript 基础 - 第3天
文章目录JavaScript 基础 - 第3天笔记数组数组的基本使用定义数组和数组单元数据单元值类型数组长度属性操作数组JavaScript 基础 - 第3天笔记 数组 数组的基本使用 定义数组和数组单元 <script>// 1. 语法,使用 [] 来定义一个空数组// 定义一个空数组let…...
23.3.26总结
康托展开 是一个全排列与自然数的映射关系,康托展开的实质是计算当前序列在所有从小到大的全排列中的顺序,跟其逆序数有关。 例如:对于 1,2,3,4,5 来说,它的康托展开值为 0*4!0*3!0*2!0*1&…...
【Java学习笔记】37.Java 网络编程
Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题&…...
Azure OpenAI 官方指南03|DALL-E 的图像生成功能与安全过滤机制
2021年1月,OpenAI 推出 DALL-E。这是 GPT 模型在图像生成方面的人工智能应用。其名称来源于著名画家、艺术家萨尔瓦多 • 达利(Dal)和机器人总动员(Wall-E)。DALL-E 图像生成器,能够直接根据文本描述生成多…...
【数据结构】堆
文章目录前言堆的概念及结构堆初始化堆的判空堆的销毁插入数据删除数据堆的数据个数获取堆顶数据用数组创建堆对数组堆排序有关topk问题整体代码展示写在最后前言 🚩前面了解了树(-> 传送门 <-)的概念后,本章带大家来实现一…...
电脑硬盘文件数据误删除/格式化为什么可以恢复? 怎么恢复?谈谈文件删除与恢复背后的原理
Hello 大家好, 我是元存储~ 主页:元存储的博客_CSDN博客 1. 硬盘数据丢失场景 我们在每天办公还是记录数据的时候,文件存储大多数都是通过硬盘进行存储的,因此,使用多了,各种问题就会出现,比如…...
Gateway服务网关
Spring Cloud Gateway为微服务架构提供一种简单有效的统一的 API 路由管理方式。Gateway网关是所有微服务的统一入口。网关的核心功能特性:请求路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则&am…...
K8S + GitLab + Jenkins自动化发布项目实践(一)
K8S GitLab Jenkins自动化发布项目实践(一)发布流程设计安装Docker服务部署Harbor作为镜像仓库部署GitLab作为代码仓库常用Git命令发布流程设计 #mermaid-svg-pe9VmFytb9GmqMvG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-…...
【数据结构篇C++实现】- 堆
文章目录🚀一、堆的原理精讲⛳(一)堆的概念⛳(二)看图识最大堆⛳(三)详解堆是用数组表示的树🚀二、堆的向下调整算法🚀三、堆的向上调整算法🚀四、将任意一棵…...
C++笔试题
作用域运算符(::)的作用:1.存在具有相同名称的局部变量时,访问全局变量。2.在类之外定义类相关函数。3.访问类的静态变量。4.在多重继承的情况下,如果两个基类中存在相同的变量名,可以使用作用域运算符来进行区分。5.限定成员函数…...
【Python】基本语法
数据类型 通过 print(type(x)) 可以输出 x 的数据类型,type() 函数可以获取数据类型 整数 a 10 print(type(a)) 浮点数 a 0.5 print(type(a)) 字符串 a hello print(type(a)) 获取字符串长度 a hello print(len(a))字符串拼接 a hello b world prin…...
用栈实现队列(图示超详解哦)
全文目录引言用栈实现队列题目介绍思路简述实现栈的部分队列的部分创建队列判断队列是否为空在队列尾入在队列头出访问队头元素释放队列总结引言 在上一篇文章中,我们了解了用两个队列实现栈。在这篇问章中将继续介绍用两个栈实现队列的OJ练习: 用栈实现…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...




