centOS上Nacos Server 单机版完整启动流程
Nacos依赖jdk所以首先必须保证centOS上安装JDK 版本根据Nacos要求版本安装
下载Nacos Server
Nacos github链接:https://github.com/alibaba/nacos
1、点击Releases下的Nacos的版本进行下载,小白使用的是2.3.1
2、找到Assets
如果单纯使用不研究源码直接选择(*.tar.gz)点击 进行下载(注意国外网,不是很好下载,小白祝大家自求多福吧!)自己想想办法
3、关注自己的jdk版本是否符合Nacos2.3.1这个版本最低要求JDK是1.8的
下载JDK
1、oracle官网https://www.oracle.com/ 下载JDK 注意(.tar.gz)版本的
2、进入官网选择product–>java
3、Dowload
4、选择版本进行下载
安装JDK
1、小白使用的是SecureCRT工具将包上传到linux上
2、使用FTP(快捷键:ALT+P)上传JDK、Nacos Server的包上传至虚拟机上
3、上传JDK
4、将jdk移动到自己想要安装包的位置
mv jdk-21_linux-x64_bin.tar.gz /usr/local/etc
5、将jdk安装包解压
tar -zxvf jdk-21_linux-x64_bin.tar.gz
解压完成
删除jdk包
rm -i jdk-21_linux-x64_bin.tar.gz
6、删除自带的JDK
6.1查看java文件
rpm -qa | grep java
6.2删除java
yum -y remove java-1.8.0-openjdk-headless-1.8.0.362.b09-4.el9.x86_64
yum -y remove javapackages-filesystem-6.0.0-4.el9.noarch
yum -y remove tzdata-java-2023c-1.el9.noarch
7、配置环境变量
cd /
vim /etc/profile
7、1 点击英文字母 i
进入写入模式
找到:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
7.2在下方写入环境变量
# setting java evironment then reloading source etc/profile
JAVA_HOME=/usr/local/etc/jdk-21.0.2
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
7.3
ESC
:wq
写入并退出
7.4 更新 profile
cd /
source /etc/profile
7.5 查看java版本(有时候会显示 Command not found)吓一跳吧!哈哈哈
java -version
cd /usr/local/etc/jdk-21.0.2/bin
./java -version
诶!如果在不对了就检查一次 profile吧!
安全起见:Linux上JDK版本要与 主机上的JDK的版本保持一致,避免不必要的麻烦
安装Nacos Server
1、使用Secure CRT 上传 Nacos
2、移动 nacos-server-2.3.0.tar.gz
mv nacos-server-2.3.0.tar.gz /usr/local/etc/
cd /usr/local/etc
3、解压Nacos包
tar -zxvf nacos-server-2.3.0.tar.gz
4、删除包
rm -i nacos-server-2.3.0.tar.gz
5、启动Nacos Server
cd /
cd /usr/local/etc/nacos/bin
ls
sh startup.sh -m standalone # 单机模式
6、查看后台运行面板
cat /usr/local/etc/nacos/logs/start.out
console:会有一个地址 http://000.000.000.000/nacos/index.html
7、访问 Nacos Server
是因为没有开启端口号
关闭Nacos
sh shutdown.sh
8、开启8848 指定端口
8.1、查看防火墙状态
firewall-cmd --state #显示防火墙状态
8.2、开放端口号
firewall-cmd --add-port=8848/tcp #设置临时端口
firewall-cmd --add-port=8848/tcp --permanent #设置永久开放此端口
8.3、重新加载并查看端口号
firewall-cmd --reload
firewall-cmd --list-port
重启Nacos Server并访问
成功访问!
如果程序运行出现连接超时
看控制台提示使用的是grpc通道进行访问的,这与传统的访问并不相同的是grpc的端口号会向前移动1000或者向后移动1000举例说明8848端口号 8848 + - 1000 就是7848 – 8848 – 9848
导致连接超时(因为根本连接不上)
解决问题:CentOS Stream9 添加端口号
## 8848端口已经添加完了
firewall-cmd --add-port=7848/tcp --permanent
firewall-cmd --add-port=9848/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
## 删除端口(举例说明)
firewall-cmd --remove-port=8080/tcp --permanent
已经可以注册了
Nacos集群
相信你们都应搭建起来自己单机版的Nacos了,下面我们搭建集群,嘎嘎简单!
准备CentOS
克隆我们单机的Nacos的CentOS就行,用几个克隆几个,小白认为服务器个数要是奇数的(不要忘记修改IP地址,反正吧!不修改也不会报错的,但是公司服务器肯定不是同个IP的,模拟也要像一点儿)
不会修改的小白主页中找CentOS Stream 9 修改静态IP就行
修改配置
进入到Nacos的bin目录中
编辑 startup.sh
vi startup.sh
修改 运行内存(如果自己的虚拟机空间够大的话,不用修改,其实小白喜欢内存大的,但是我的虚拟机空间小)
上面说如果是standalong内存是。。。。else(就是说不是单机状态的内存是2g/2g/1g)
修改,必须修改!我内存一共才设置成2G呀
i
写入模式
ESC
:
wq
写入
编辑Nacos config
cd ../conf
修改application.properties
vi application.properties
对了还要准备一个mysql,一般本地都有开放端口就行了,然后还要在MySQL中创建一个Nacos数据库;创建表
此表有迹可循啊
打开它,赋值它的所有吧!在MySQL中粘贴运行!
修改cluster.conf文件
发现没有吧!
cp cluster.conf.example cluster.conf
编辑cluster.conf
添加Nacos集群ip、端口号
Nacos服务的IP地址:端口号
开放端口(关键所在
)
每个Nacos服务都要开放Nacos集群成员中的每个Nacos服务的端口(grpc
)
我搭建三个Nacos服务,端口号为 8848、8849、8850
所以每个Nacos服务开放的端口加上grpc限制所以端口号为:
Nacos1端口号:7848、8848、9848
Nacos2端口号:7849、8849、9849
Nacos3端口号:7850、8850、9850
Nacos1开放的端口号为:
firewall-cmd --add-port=7848/tcp --permanent
firewall-cmd --add-port=8848/tcp --permanent
firewall-cmd --add-port=9848/tcp --permanent
firewall-cmd --add-port=7849/tcp --permanent
firewall-cmd --add-port=8849/tcp --permanent
firewall-cmd --add-port=9849/tcp --permanent
firewall-cmd --add-port=7850/tcp --permanent
firewall-cmd --add-port=8850/tcp --permanent
firewall-cmd --add-port=9850/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
# 批量添加
firewall-cmd --add-port=7847-7851/tcp --permanent
firewall-cmd --add-port=8847-8851/tcp --permanent
firewall-cmd --add-port=9847-9`851/tcp --permanent
飞起来!
每台Nacos服务器在不开放所有端口号的情况下,只有本机是在线状态,其他Nacos均是Down机状态
每台Nacos开启所有Nacos端口号
看我,给你们写的很简单,但是这个问题困扰了小白3天时间,网上各种答案都有,各种试,最后败给了grpc
四个字母。对了grpc不知道是啥,其实我也不知道,网上差的就跟http一样的。一种通信协议。
查看Windows端口号:netstat -ano|findstr 端口号
小白走的每一步都挺坎坷的,所以分享给前进的你们。