nacos高可用集群搭建

0 架构介绍

0.1 官方指导文档

https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

0.2 个人推荐

如果生产环境至少需要2个nignx +3个nacos+1个mysql集群环境,如果小厂或者小公司那就随意了。

0.3 架构图

在这里插入图片描述

1 下载nacos 我这里演示的是1.14版本

1.1 github地址

https://github.com/alibaba/Nacos

1.2 下载地址

https://github.com/alibaba/nacos/releases/tag/1.4.0

在这里插入图片描述

Nginx下载地址;http://nginx.org/en/download.html

1.3 上传并解压


[root@localhost ~]# yum install lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.aliyun.com
base                                                                                                                                             | 3.6 kB  00:00:00     
extras                                                                                                                                           | 2.9 kB  00:00:00     
updates                                                                                                                                          | 2.9 kB  00:00:00     
软件包 lrzsz-0.12.20-36.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# rz

[root@localhost ~]# ll
总用量 50904
-rw-------. 1 root root     1601 11月 10 10:42 anaconda-ks.cfg
-rw-r--r--. 1 root root     1649 11月 10 11:05 initial-setup-ks.cfg
-rw-r--r--. 1 root root 52115827 11月 11 10:57 nacos-server-1.1.4.tar.gz
drwxr-xr-x. 2 root root        6 11月 10 11:09 公共
drwxr-xr-x. 2 root root        6 11月 10 11:09 模板
drwxr-xr-x. 2 root root        6 11月 10 11:09 视频
drwxr-xr-x. 2 root root        6 11月 10 11:09 图片
drwxr-xr-x. 2 root root        6 11月 10 11:09 文档
drwxr-xr-x. 2 root root        6 11月 10 11:09 下载
drwxr-xr-x. 2 root root        6 11月 10 11:09 音乐
drwxr-xr-x. 2 root root        6 11月 10 11:09 桌面
[root@localhost ~]# rz

[root@localhost ~]# ll
总用量 51916
-rw-------. 1 root root     1601 11月 10 10:42 anaconda-ks.cfg
-rw-r--r--. 1 root root     1649 11月 10 11:05 initial-setup-ks.cfg
-rw-r--r--. 1 root root 52115827 11月 11 10:57 nacos-server-1.1.4.tar.gz
-rw-r--r--. 1 root root  1032630 11月 11 11:07 nginx-1.16.1.tar.gz
drwxr-xr-x. 2 root root        6 11月 10 11:09 公共
drwxr-xr-x. 2 root root        6 11月 10 11:09 模板
drwxr-xr-x. 2 root root        6 11月 10 11:09 视频
drwxr-xr-x. 2 root root        6 11月 10 11:09 图片
drwxr-xr-x. 2 root root        6 11月 10 11:09 文档
drwxr-xr-x. 2 root root        6 11月 10 11:09 下载
drwxr-xr-x. 2 root root        6 11月 10 11:09 音乐
drwxr-xr-x. 2 root root        6 11月 10 11:09 桌面
[root@localhost ~]# mkdir mynacos
[root@localhost ~]# cp nacos-server-1.1.4.tar.gz  nginx-1.16.1.tar.gz  mynacos/
[root@localhost ~]# cd mynacos/
[root@localhost mynacos]# ll
总用量 51908
-rw-r--r--. 1 root root 52115827 11月 11 11:08 nacos-server-1.1.4.tar.gz
-rw-r--r--. 1 root root  1032630 11月 11 11:08 nginx-1.16.1.tar.gz
[root@localhost mynacos]# tar -zxvf nacos-server-1.1.4.tar.gz 
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
...
[root@localhost mynacos]# tar -zxvf nginx-1.16.1.tar.gz 
nginx-1.16.1/
nginx-1.16.1/auto/
nginx-1.16.1/conf/
nginx-1.16.1/contrib/
nginx-1.16.1/src/
nginx-1.16.1/configure
nginx-1.16.1/LICENSE
nginx-1.16.1/README

...
[root@localhost mynacos]# ll
总用量 51908
drwxr-xr-x. 5 root root       72 11月 11 11:08 nacos
-rw-r--r--. 1 root root 52115827 11月 11 11:08 nacos-server-1.1.4.tar.gz
drwxr-xr-x. 8 1001 1001      158 8月  13 2019 nginx-1.16.1
-rw-r--r--. 1 root root  1032630 11月 11 11:08 nginx-1.16.1.tar.gz
[root@localhost mynacos]# cd nginx-1.16.1/

[root@localhost nginx-1.16.1]# 


1.4 安装nginx
#先安装环境
#yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
#编译安装
#./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#make && install
[root@localhost conf]# cd ..
[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ll
总用量 7472
-rwxr-xr-x. 1 root root 3825512 11月 11 11:18 nginx

[root@localhost sbin]# ./nginx
[root@localhost sbin]# systemctl stop firewalld
[root@localhost sbin]# ./nginx stop
nginx: invalid option: "stop"
[root@localhost sbin]# ./nginx stop


在这里插入图片描述

1.5 修改nginx 配置文件

       upstream nacos {
            server 192.168.85.10:3333;
            server 192.168.85.10:4444;
            server 192.168.85.10:5555;
    }
    
    
        location / {
            #root   html;
           # index  index.html index.htm;
           proxy_pass http://nacos;
        }
    #修改配置后记得重启nginx    
    #./nginx -s stop 
    #./nginx -c ../conf/nginx.conf
  
1.6 nacos安装
1.6.1 创建mysql 数据库

首先将nacos/conf/nacos—mysql.sql文件下载:然后放到数据库中执行


[root@localhost nacos]# cd conf
[root@localhost conf]# sz nacos-mysql.sql 

在这里插入图片描述

1.6.2 nacos配置数据库 application.properties
[root@localhost nacos]# cd conf/
[root@localhost conf]# vim application.properties

# 在配置文件底部添加如下文件
spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://192.168.85.198:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
1.6.7 nacos 修改集群文件
[root@localhost conf]# cp cluster.conf.example  cluster.conf
[root@localhost conf]# vim cluster.conf


#it is ip
#example
192.168.85.10:3333
192.168.85.10:4444
192.168.85.10:5555

1.6.8 nacos 修改启动文件

在这里插入图片描述

在这里插入图片描述

修改地方用红色圈出来了

1.6.9 启动
[root@localhost bin]# ./startup.sh -p 3333
/usr/local/jdk/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/mynacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/usr/local/jdk/jre/lib/ext:/usr/local/jdk/lib/ext:/root/mynacos/nacos/plugins/cmdb:/root/mynacos/nacos/plugins/mysql -Xloggc:/root/mynacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dnacos.home=/root/mynacos/nacos -Dloader.path=/root/mynacos/nacos/plugins/health -jar /root/mynacos/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/root/mynacos/nacos/conf/ --logging.config=/root/mynacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /root/mynacos/nacos/logs/start.out
[root@localhost bin]# ./startup.sh -p 4444
/usr/local/jdk/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/mynacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/usr/local/jdk/jre/lib/ext:/usr/local/jdk/lib/ext:/root/mynacos/nacos/plugins/cmdb:/root/mynacos/nacos/plugins/mysql -Xloggc:/root/mynacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dnacos.home=/root/mynacos/nacos -Dloader.path=/root/mynacos/nacos/plugins/health -jar /root/mynacos/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/root/mynacos/nacos/conf/ --logging.config=/root/mynacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /root/mynacos/nacos/logs/start.out
[root@localhost bin]# ./startup.sh -p 5555
/usr/local/jdk/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/mynacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/usr/local/jdk/jre/lib/ext:/usr/local/jdk/lib/ext:/root/mynacos/nacos/plugins/cmdb:/root/mynacos/nacos/plugins/mysql -Xloggc:/root/mynacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dnacos.home=/root/mynacos/nacos -Dloader.path=/root/mynacos/nacos/plugins/health -jar /root/mynacos/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/root/mynacos/nacos/conf/ --logging.config=/root/mynacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /root/mynacos/nacos/logs/start.out
[root@localhost bin]# 

1.7 启动报错
[root@localhost logs]# cat start.out 

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
	at sun.reflect.GeneratedConstructorAccessor75.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
	at com.mysql.jdbc.Util.getInstance(Util.java:360)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870)
	at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2144)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
	at sun.reflect.GeneratedConstructorAccessor73.newInstance(Unknown Source)

发现启动不了,后来查了下,因为我用的数据库版本问题。导致nacos不能连接数据库;

解决方案:

nacos/plugins/mysql目录下放入mysql8.0的驱动包问题解决;

1.8 启动访问

http://192.168.85.10:1111/nacos

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐