nacos集群部署安装
集群模式部署
这个快速开始手册是帮忙您快速在你的电脑上,下载安装并使用Nacos,部署生产使用的集群模式。
集群部署架构图
因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面
http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。
http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。
http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式
为了实现第三种方式,先得将nacos集群安装,后面再增加一个域名,用nginx来做负载,才能实现。
安装步骤:
1、 预备环境准备
请确保是在环境中安装使用:
- 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
- 64 bit JDK 1.8+;
- 3个或3个以上Nacos节点才能构成集群。
- maven安装,在3.2以上,这个主要是用来若下载源码的打包,若是直接下载安装压缩包,则可以不用
2、下载源码或者安装包
你可以通过两种方式来获取 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
下载编译后压缩包方式
下载地址
https://github.com/alibaba/nacos/releases/tag/1.3.2
我是下载编译安装包来测试的,刚开始下载了2.0版本,测试时为最新版本,后面发现有些问题,查询网上说建议安装稳定版本,故调整为1.3.2版本,1.4.0版本也是可以。
3. 配置集群配置文件
我现在是计划用三台虚拟机来实现集群,IP分别为:192.168.31.50;192.168.31.51;192.168.31.52
下载的压缩文件为:nacos-server-1.3.2.tar.gz,使用解压命令解压:
cd /software/ tar -zxvf nacos-server-1.3.2.tar.gz
cd /nacos/
解压后进入nacos目录内容以下:
进入nacos/conf/目录下,将文件
cluster.conf.example
,拷贝一份命名为cluster.conf
,添加集群内容如下
然后,将这份文件拷贝到三台服务器上
因为我的数据库是使用外部服务器的数据库,故需修改数据库配置,修改内容以下:
进入nacos/conf目录下,修改application.properties文件,开启以下内容:
在修改以上配置后,需根据nacos/conf/nacos-mysql.sql文件,在数据库服务器上创建数据库nacos_conf后,执行这个SQL文件
这些修改成功后,保存退出编辑配置文件,将这个配置文件拷贝到其它集群机器上。
最后就是启动服务了,进入nacos/bin目录下,启动startup.sh
这样就启动成功,结果如下:
日志内容以下图所示表示启动正常:
注意事项:
1、我集群用到的服务端口是8847,所以需在防火墙中开放这个端口
firewall-cmd --zone=public --add-port=8847/tcp --permanent
2、对于数据库服务器也要开放3306端口:以下为linux数据库服务器的处理,若是windows,则是在防火墙中添加端口允许即可
firewall-cmd --zone=public --add-port=3306/tcp --permanent
或下图:
3、在开放8847端口后,但发现日志文件/nacos/logs/naming-server.log文件一起在增加,内容是提示“找不到主机的路由”,在网上核查原因说是防火墙关闭就可以解决,我尝试关闭防火墙后,确实解决了问题,说明是端口未开放引起的问题,因为我更改了默认服务端口:8848,所以我又在集群各服务器上开放了商品8848,这个问题就消失了,具体原因还没查清,但遇到这个问题可以这样处理。
firewall-cmd --zone=public --add-port=8848/tcp --permanent
4、开启集群一台机器后,数据库提示:“too many connections",原因是数据库服务器开启一台nacos服务后,会有20多个服务器连接到数据库,而自己数据库服务器默认连接才20,所以提示这个问题,
修改数据库服务器配置:
另外查询数据库的现有连接,可以使用以下命令:show status like like '%Threads%';
现在每个nacos集群结点都可以正常访问了,下一步就开始安装nginx
1、找一台服务器用于安装nginx服务器,我的是IP:192.168.31.60
2、安装java环境
3、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
4、安装PCRE 作用是让 Nginx 支持 Rewrite 功能
- 下载PCRE,地址:https://sourceforge.net/projects/pcre/files/pcre/,下载最新版本的,当前是8.44版本,下载页面以下:
下载成功后,上传到服务器的目录:/usr/local/src/
- 进入这个目录后解压文件:tar -zxvf pcre-8.44.tar.gz
- 进入安装包目录:cd pcre-8.44
- 编译安装: ./configure make && make install
- 安装成功后,可以查看相应的版本:pcre-config --version
5、下载nginx文件,下载地址:http://nginx.org/en/download.html,我下载的是最新版本:nginx-1.19.6
6、下载的文件上传到服务器的目录:/usr/local/src/nginx-1.19.6.tar.gz
7、解压文件:tar -zxvf /usr/local/src/nginx-1.19.6.tar.gz
8、解压成功后,进入安装包目录:cd nginx-1.19.6
9、编译安装
[root@bogon nginx-1.19.6]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.44 [root@bogon nginx-1.19.6]# make [root@bogon nginx-1.19.6]# make install
10、安装成功后,就可以进入目录: cd /usr/local/webserver/nginx/sbin,再使用下面命令进行启动或停止nginx:
命令如下:
[root@nginx1_64 sbin]# ./nginx -s stop [root@nginx1_64 sbin]# ./nginx [root@nginx1_64 sbin]# ./nginx -s reload [root@nginx1_64 sbin]# ./nginx -s reopen [root@nginx1_64 sbin]#
11、因为我们的nacos是集群,所以对配置文件需调整:
调整内容有:
upstream cluster{ server 192.168.31.50:8847; server 192.168.31.51:8847; server 192.168.31.52:8847; } location / { proxy_pass http://cluster; }
截图如下:
再使用命令:进入目录 :/usr/local/webserver/nginx/sbin,使用命令:./nginx -s reload,重新加载配置文件
12、现在通过IP就可以访问nacos的集群信息,若有自己的域名就可以将上面的server_name换成域名即可,再通过域名访问就可以了,我是使用了www.123.com来测试,当然自己访问的电脑要给这个域名设置映射,即修改hosts文件;
现在nacos的集群配置就全部配置完成了,接下来就是在springcloud项目中使用的内容了。