linux环境搭建nacos集群详解

目录

    • 一、集群部署说明
    • 二、环境准备
    • 三、搭建Nacos集群
    • 四、调整Nginx的配置
    • 五、测试访问

一、集群部署说明

官网集群部署:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

集群架构如下:

linux环境搭建nacos集群详解_第1张图片

二、环境准备

搭建集群首先要具备JDK环境,其次需要,1个Nginx+3个nacos注册中心+1个mysql,集群按正常来说应该要具备三台服务器,我这里设备有限,就在一台机器上来搭建集群了!Nginx主要用他作为负载均衡。如果您也是一台Linux机器,Linux内存最少要4个G左右,不然可能会内存爆满,然后会导致Nacos启动不成功等问题!

  1. jdk环境:https://blog.csdn.net/weixin_43888891/article/details/126810947?spm=1001.2014.3001.5501
  2. 基于docker安装mysql:https://blog.csdn.net/weixin_43888891/article/details/113577006
  3. 创建Nacos数据库,并执行脚本(Nacos数据持久化到mysql),脚本文件:https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
  4. 安装Nginx:https://blog.csdn.net/weixin_43888891/article/details/122831636
  5. Nacos下载地址:https://github.com/alibaba/nacos/releases

linux环境搭建nacos集群详解_第2张图片
6. 查看nginx是否启动成功:ps -ef | grep nginx

在这里插入图片描述

三、搭建Nacos集群

我这里用的是一台机器,假如你是三台机器,那么每一台都需要这么操作,切记每个nacos的cluster.conf要保持一致,并且application.properties当中指定的mysql数据库也都要是一致的。

第一步:上传解压:

  1. 创建存放nacos的文件夹:mkdir /opt/nacos
  2. 通过xftp上传tar包到/opt/nacos
  3. 解压:tar -zxvf nacos-server-2.1.1.tar.gz

第二步:修改application.properties,指定mysql持久化

  1. 修改配置文件:vi /opt/nacos/nacos/conf/application.properties ,Esc进入编辑状态
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
  1. :wq保存application.properties配置

第三步:指定集群的IP和端口

  1. 进入/opt/nacos/nacos/conf复制出cluster.conf:cp cluster.conf.example cluster.conf
  2. cluster.conf内容如下,在文件最下方修改即可(这里我用本机真实ip地址或者127.0.0.1,在后面均可正常启动,但还是推荐使用本机真实ip地址,如果使用127.0.0.1,在nacos页面的集群管理当中会出现两个节点,一个是127.0.0.1,一个是真实ip的!):vi cluster.conf 改完后 :wq保存cluster.conf配置

linux环境搭建nacos集群详解_第3张图片

第四步:由于用的一台机器,而startup.sh并没有传入端口号的参数,所以手动加一个

编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口(如果本身就是三台机器,可以跳过这一步)

  • /opt/nacos/nacos/bin:目录下有startup.sh,平时单机版的启动,都是./startup.sh即可。
  • 集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。命令:./startup.sh -t 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。

一共需要修改两个地方,如下:vi startup.sh

linux环境搭建nacos集群详解_第4张图片linux环境搭建nacos集群详解_第5张图片

linux环境搭建nacos集群详解_第6张图片

修改后:-Dserver.port=${PORT} 一定不要放错地方了,放到"$JAVA"后面

linux环境搭建nacos集群详解_第7张图片

第五步:copy两个nacos

由于我们没有多台机器,只有一台,那我们一台机器启动多个nacos,在低版本当中支持一个nacos安装包多个启动,但是2.0以后版本是不支持的,不然会报错:Fail to init node, please see the logs to find the reason.,所以一切配置好之后直接copy两个文件: cp -r /opt/nacos/nacos /opt/nacos/nacos2

在这里插入图片描述

第六步:启动执行

sh /opt/nacos/nacos/bin/startup.sh -t 3333
sh /opt/nacos/nacos1/bin/startup.sh -t 4444
sh /opt/nacos/nacos2/bin/startup.sh -t 5555 
  1. 查看启动日志:tail -f /opt/nacos/nacos/logs/start.out
  2. 出现报错(没有出现报错的话忽略这一步):
    linux环境搭建nacos集群详解_第8张图片
    • (1)查看哪个安装包包含该库:yum provides libstdc++.so.6
      linux环境搭建nacos集群详解_第9张图片

    • (2)安装:yum install libstdc+±4.8.5-44.el7.i686

    • (3)停止nacos:ps -ef | grep nacos然后再kill -9 进程id 这时候再启动就不报错了!

四、调整Nginx的配置

在实际开发当中是可以使用Nginx集群的,当然我这里用的是单机Nginx

  1. 修改配置文件:vi /usr/local/nginx/conf/nginx.conf
  2. 在nginx.conf的http块加如下配置:
upstream cluster {
     server 127.0.0.1:3333;
     server 127.0.0.1:4444;
     server 127.0.0.1:5555;
 }

server {
     listen       1111;
     server_name  localhost;
     #charset koi8-r;
     #access_log  logs/host.access.log  main;
     location / {
         #root   html;
         #index  index.html index.htm;
         proxy_pass http://cluster;
	 }
}
  1. cd /usr/local/nginx/sbin
  2. 让配置生效:./nginx -s reload

防火墙相关设置:

  1. 查看是否开启防火墙:systemctl status firewalld
  2. 如果开启了,需要开放1111端口: firewall-cmd --zone=public --add-port=1111/tcp --permanent
  3. 重启防火墙:systemctl restart firewalld.service
  4. 查看已经开放的端口号:firewall-cmd --list-all

如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估:systemctl stop firewalld.service

五、测试访问

http://192.168.1.104:1111/nacos

linux环境搭建nacos集群详解_第10张图片

新建一个配置测试:

linux环境搭建nacos集群详解_第11张图片

查看数据库:

在这里插入图片描述

微服务注册:

server:
  port: 9002

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        #配置Nacos地址
        #server-addr: localhost:8848
        # 换成nginx的1111端口,做集群
        server-addr: 192.168.111.144:1111


management:
  endpoints:
    web:
      exposure:
        include: '*'

你可能感兴趣的:(SpringCloud,linux,服务器,nginx,nacos)