Nacos+mysql集群部署
Nacos+mysql集群部署
一、简介
1、环境准备
参考连接:https://www.cnblogs.com/larscheng/p/11427733.html
· JDK8安装在各台机器上,此处不再赘述。
· Ubuntu16.04(ip:192.168.227.84/85/86)
· MySQL 5.6.5+
· Nacos-server:1.4.1
请提前下载Nacos-server:1.4.1压缩包并解压至相应目录
本次的Nacos-server在linux服务器上进行启动。
2、集群部署模式
http://ip1:port/openAPI 直连ip模式:
· ip+端口进行部署,客户端直接连接Nacos的ip
当然ip+端口也有多种部署方式
· 1ip+n端口+Nginx:普通玩家部署方式,没有过多服务器,单台服务器启动多个nacos实例,仅适合测试使用
· nip+n端口+Nginx:RMB玩家部署方式,服务器资源充足,组建完美集群,实现更好的容灾与隔离
无论怎么部署,部署方式都是一样的,这里我以nip+3端口+Nginx的方式进行集群搭建
ip | 服务 | 说明 | 备注 |
---|---|---|---|
192.168.227.83 | nginx | 转发,简单负载均衡,提供统一入口 | 可部署在node上 |
192.168.227.84 | nacos-node1 | 节点服务 | |
192.168.227.85 | nacos-node2 | ||
192.168.227.86 | nacos-node3 | ||
192.168.227.87 | mysql | nacos外部数据源,保证数据统一性 | 可部署在node上 |
3、安装修改配置(三台机器都操作)
(1)添加外部数据源
修改Nacos-server目录conf/下的application.properties文件,底部添加mysql数据源
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.3.156:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=bang
注释:3306后的nacos为你创建的数据库
(2)修改集群配置(三台机器都操作)
cd /data/nacos/nacos/conf && mv cluster.conf.example cluster.conf
vi cluster.conf
192.168.227.84:8848
192.168.227.85:8848
192.168.227.86:8848
4、初始化数据库(只在数据库机器操作)
将192.168.227.87机器的mysql启动并指定可以远程,创建数据库nacos。
运行初始化/data/nacos/nacos/conf/nacos-mysql.sql
二、运行nacos(三台机器都操作)
1、以集群模式启动nacos
进入/data/nacos/nacos/bin执行sh start.sh
2、启动查看是否正常启动
3、查看端口是否监听:netstat -ntlp | grep 8848
4、启动nginx进行负载线性轮询
这里不再赘述nginx的安装,只配置使用,也可以将nginx安装在三台其中一台机器上,数据库也可以在三台机器其中一台的,端口服务不冲突即可。
upstream nacos-server {
server 192.168.227.84:8848;
server 192.168.227.85:8848;
server 192.168.227.86:8848;
}
server {
listen 8849;
server_name localhost;
location /nacos/ {
proxy_pass http://nacos-server/nacos/;
}
}
三、验证集群
1、使用nginx的8849端口登录。
http://47.112.97.xx:8849/nacos/
这边使用了端口公网映射,直接内网打开也是可以的。默认账号密码:nacos/nacos
2、查询集群状况:
3、插入数据验证集
这边以创建用户为例:创建了一个admin用户
去数据库验证:查看已经成增加对应用户
至此,部署完毕,其他使用方式自行研究。
注意:
nacos下的/bin/logs日志文件,如图会一直产生占用跑满磁盘,一个文件就400多M了
1、可以设置配置将其关闭:
nacos/conf/application.properties的103行样子
server.tomcat.accesslog.enabled=false ##true改为false即可
2、也可以设置logrotate定时清理删除保存几天的日志,看了这日志和nginx没啥区别,对我没意义就直接是关闭的。