官网链接: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html.
部署手册:https://nacos.io/zh-cn/docs/deployment.html.
高可用 Nginx 集群
Nacos 集群(至少三个实例)
高可用数据库集群(取代 Nacos 内嵌数据库)
环境要求:
请确保是在环境中安装使用:
默认的Nacos使用嵌入式数据库实现数据的存储,所以启动多个默认配置下的Nacos节点,数据存储存在一致性的问题,为了解决这个问题,Nacos采用了集中存储的方式来支持集群化部署,目前只支持Mysql的存储(5.6.5+)。
Nacos支持三种部署模式:
单机模式 - 用于测试和单机试用。
集群模式 - 用于生产环境,确保高可用。
多集群模式 - 用于多数据中心场景。
单机模式支持mysql
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
1.安装数据库,版本要求:5.6.5+
2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
(1)Windows版下载Nacos:
nocos官网下载:https://nacos.io/zh-cn/index.html
到了下载页面拉到页面最底下进行下载:
(2)Windows版下解压安装Nacos:
使用我们的Windows的解压工具将nacos的zip文件进行解压。(这里解压就可以运行了,免安装的)
(3)windows单机模式下运行Nacos:
在任意目录解压后的文件内,找到nacos的bin目录,然后输入cmd:
Windows单机运行命令:
startup.cmd -m standalone
如图所示表示启动成功:
这样我们的nacos单机模式就正常启动了,我们就可以在项目中引入nacos的pom和使用它了。这里不再介绍使用项目。
(1)Linux版下载Nacos:
(2)Linux版下解压安装Nacos:
(2.1)打开虚拟机,使用xftp上传到linux并解压:
将我们的tar压缩包直接上传到/usr/local 文件夹下,
然后切换到nacos压缩包所在的目录:
cd /usr/local
(2.2)然后使用命令去解压:
tar -zxvf nacos-server-1.4.2.tar.gz
解压后有一个nacos文件夹,如果不是文件夹不是nacos名字,则使用命令改成nacos;
(3)linux单机启动:
解压完毕后,我们可以在local文件夹看到一个解压后的nacos文件夹,然后我们进入bin目录:
cd /usr/local/nacos/bin
ll
sh startup.sh -m standalone
查看启动日志:cat /usr/local/nacos/logs/start.out
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
不论是windows还是linux都有自带的数据库初始化文件:nacos-mysql.sql ,和conf/application.properties文件,我们分别修改他们自带的即可。
1.安装数据库,版本要求:5.6.5+
mysql8.0.22安装请参考:https://blog.csdn.net/weixin_38568503/article/details/120636556.
#以下两个配置请往下拉,找配置。
2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql
请确保是在环境中安装使用:
linux安装maven: 需要先安装maven环境:
先测试本机linux有没有安装maven : mvn -v
链接: https://blog.csdn.net/weixin_38568503/article/details/120639472.
Linux安装JDK::
链接: https://blog.csdn.net/weixin_38568503/article/details/120234708.
Linux安装mysql8.0.xx:
链接: https://blog.csdn.net/weixin_38568503/article/details/120636556.
你可以通过两种方式来获取 Nacos:
方式一:从 Github 上下载源码方式:
unzip nacos-source.zip
cd nacos/
mvn -Prelease-nacos clean install -U
cd nacos/distribution/target/nacos-server-1.3.0/nacos/bin
方式二:下载压缩包方式:
官网下载:gz是linux版本,zip是windows版本。
解压方式:
#解压方式
unzip nacos-server-1.3.0.zip 或者 tar -xvf nacos-server-1.3.0.tar.gz
#进入运行目录
cd nacos/bin
这里 下载nacos-server-1.4.2.tar.gz
(1)百度nacos官网,然后下载linun版本的nacos(生产环境的集群部署都在linux机器上)
(2)打开虚拟机,上传到linux并解压:
将我们的tar压缩包直接上传到/usr/local 文件夹下,
然后切换到nacos压缩包所在的目录:
cd /usr/local
然后使用命令去解压:
tar -zxvf nacos-server-1.4.2.tar.gz
解压完毕后,我们可以在local文件夹看到一个解压后的nacos文件夹,然后我们进入配置文件:
cd /usr/local/nacos/conf
ll
(3)初始化 nacos 必须的数据库表并配置:
mysql8.0.22安装请参考:https://blog.csdn.net/weixin_38568503/article/details/120636556.
(2) 解压说明:解压命令: tar.xz:tar xvJf ***.tar.xz
比如:tar xvJf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
(3) 解压并按照上面链接教程安装mysql.
使用外置数据源
生产使用建议至少主备模式,或者采用高可用数据库。
(1) 安装完成后,先启动运行linux版本的mysql:
systemctl start mysqld.service
或者:service mysql start
会提示启动成功
mysql常用命令:
查看mysql进程:ps aux |grep mysqld
杀掉mysql进程:kill -9 进程号
查看MySQL服务是否启动:systemctl status mysql
停止服务:service mysql stop
重启mysql:service mysql restart
(2)连接数据库:
mysql -uroot -p
然后输入密码
(3)创建并使用数据库:
创建数据库:create database nacos_config;
显示数据库:mysql> show databases;
使用数据库:mysql> use nacos_config;
(4)执行sql脚本:即初始化 MySQL 数据库
mysql> source /usr/local/nacos/conf/nacos-mysql.sql
还有一个更好的方法:
使用navicat来连接linux下的mysql数据库
然后再navicat中运行sql文件!
(5)然后查看所有的表:
show tables;
打开config_info表,会发现目前为空。
exit命令退出mysql;
使用内置数据源,无需进行任何配置
使用外置数据源,生产使用建议至少主备模式,或者采用高可用数据库。
application.properties 配置:即数据源的配置项
1.拷贝文件作为备份使用:
进入配置文件目录,找到cluster.conf文件和application.properties文件,并拷贝
cd /usr/local/nacos/conf
cp cluster.conf.example cluster.conf
cp application.properties application.properties.bk
在文件的最后,写明nacos集群需要使用的数据库地址,以及账号密码:,要拉到文件的最后去添加:
application.properties文件中进行数据库的配置:
vim application.properties
# 指定数据源为 MySQL
spring.datasource.platform=mysql
### Count of DB:
# 数据库实例数量
db.num=1
# 数据库连接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=root
1、查看linux的ip信息:
先分别在自己的三台linux主机上查看自己的linux主机ip:使用命令ifconfig
我的三台linux主机的ip为:192.168.211.202 192.168.211.203 192.168.211.204
2、在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点):
然后 在cluster.conf文件中进行集群环境配置:
vim cluster.conf
内容如下:将其他没用的删掉或者注释掉。注意三台linux机器的nacos都要配置cluster.conf成如下:
192.168.211.202:8848
192.168.211.203:8848
192.168.211.204:8848
分别启动三个nacos的指令:
cd /usr/local/nacos/conf
cd ../bin
ls
cp startup.sh startup.sh.bk
//集群启动命令:
sh startup.sh
三个linux主机的nacos启动后,分别在windows电脑网页访问:
http://192.168.211.202:8848/nacos
http://192.168.211.203:8848/nacos
http://192.168.211.204:8848/nacos
访问地址: http://您的主机IP:8848/nacos
默认账户:nacos
默认密码:nacos
启动有问题可以使用此命令查看启动日志:
cat /usr/local/nacos/logs/start.out
遇到问题;java.sql.SQLNonTransientConnectionException:无法创建数据库服务器连接。 尝试重新连接3次。 放弃。
一般情况下我们的每一台linux主机安装并初始化了数据库后就没有问题,那只能是连接配置信息出现问题,发现我的linux主机上安装了nacos服务,同时也安装了mysql数据库,这样我们的url一定要写127.0.0.1而不能写linux端口号。
在本地配置多个nacos实例(伪集群),一般就是配置多个nacos端口,并启动多个startup.sh脚本。网上一些博客通过修改startup.sh脚本来指定不同nacos端口,比如:./startup.sh -p 3333,但是这种方式启动,nacos版本应该是1.2.x以前的版本号
而在nacos-1.4.x后的版本中,startup.sh脚本中已经对参数 p 有了自己的定义:
方案:启动一个linux机器,然后在这个机器上布置三个nacos服务(复制出来三分nacos文件夹),来实现伪集群。这里是一个linux机器的ip和三个不同的nacos端口。
复制nacos之前的准备工作:建库/导表:(如果已经有表了,则不需要创建了):
第1步:先启动mysql服务:进入数据库:
service mysql start
mysql -uroot -p
然后输入密码即可
第2步:然后创建相应的数据库和表:
mysql> create database nacos_config;
mysql> use nacos_config;
mysql> source /usr/local/nacos/conf/nacos-mysql.sql
Query OK, 0 rows affected (0.01 sec)
...
mysql> show tables;
+------------------------+
| Tables_in_nacos_config |
+------------------------+
| config_info |
| config_info_aggr |
| config_info_beta |
| config_info_tag |
| config_tags_relation |
| group_capacity |
| his_config_info |
| roles |
| tenant_capacity |
| tenant_info |
| users |
+------------------------+
11 rows in set (0.00 sec)
#退出mysql输入exit回车即可.
第3步:配置数据库:因为我们的数据库在我们的本地linux机器上,所以用127.0.0.1
vim /usr/local/nacos/conf/application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=root
注意:在本地启动多个实例时候,一定要查看nacos所分配的内存大小,不然启动要么非常慢,要么会失败,所以我们提前修改如下启动项配置:
cd /usr/local/nacos/bin
vim startup.sh
复制出三份nacos实例副本:
第4步:在linux中拷贝三份nacos
cd /usr/local
cp -r nacos nacos1
cp -r nacos nacos2
第5步:分别修改它们的端口,三个端口号:8848,8858,8868,将server.port=进行修改成需要的
cd /usr/local/nacos/conf
vim application.properties
cd /usr/local/nacos1/conf
vim application.properties
cd /usr/local/nacos2/conf
vim application.properties
第6步:每个nacos的cluster.conf都写上它们的 ip+端口信息
cd /usr/local/nacos/conf
cp cluster.conf.example cluster.conf
vim cluster.conf
cluster.conf配置文件内容如下:192.168.211.205为我启动的那台linux的ip地址
192.168.211.205:8848
192.168.211.205.8858
192.168.211.205.8868
第7步:分别启动每台 Nacos Server:
cd /usr/local/nacos/bin
./startup.sh
cd /usr/local/nacos1/bin
./startup.sh
cd /usr/local/nacos2/bin
./startup.sh
#如果不能访问网页,请查看启动日志:
cat /usr/local/nacos/logs/start.out
第7步:网页访问测试:
注意关闭linux防火墙
widows浏览器访问地址:
http://192.168.211.205:8848/nacos
http://192.168.211.205:8858/nacos
http://192.168.211.205:8868/nacos
如果是在linux机器上网页访问,则使用:
localhost:8848/nacos
localhost:8858/nacos
localhost:8868/nacos
nginx教程请参考链接: https://blog.csdn.net/qq_41974199/article/details/108832665.
cd /nginx-1.18.0/conf
cp nginx.conf nginx.conf.bk
vim nginx.conf
启动nginx:
cd /usr/local/nginx/sbin/
ll
./nginx -c /nginx-1.18.0/conf/nginx.conf
ps -ef|grep nginx
新建一个配置测试:
mysql -uroot -p
show databases;
use nacos_config;
show tables;
select * from config_info;