# nacos高可用集群搭建
nacos高可用集群搭建文章目录nacos高可用集群搭建0 架构介绍0.1 官方指导文档0.2 个人推荐0.3 架构图1 下载nacos 我这里演示的是1.14版本1.1 github地址1.2下载地址1.3 上传并解压1.4 安装nginx1.5 修改nginx 配置文件1.6 nacos安装1.6.1 创建mysql 数据库1.6.2 nacos配置数据库 application.proper
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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)