基于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练习: 用栈实现…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...