目录
前言
一、Nacos是什么?
二、使用步骤
1.下载解压
2.启动方式
2.1单机启动--standalone
2.2集群启动--cluster
总结
学习微服务-SpringCloud搭建nacos注册中心,使用集群启动
部署环境:阿里云轻量云服务器+Centos8
参考博客:(35条消息) nacos在linux上启动时报内存不足怎么办_Catalina_yep的博客-CSDN博客_nacos启动内存不足
官方:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
nacos下载:https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-server-1.4.2.tar.gz
用xftp将下载好的文件存入 /usr/lib 文件下
解压:
tar -xzvf nacos-server-1.4.2.tar.gz
进入nacos文件
bin:可执行文件,启动文件在这儿
conf:相关配置文件 nacos默认端口是8848 在当前目录下的application.properties文件中配置
进入bin文件夹
cd /usr/lib/nacos/bin
个人尝试: windows下启动startup.sh linux下启动startup.sh
单机启动
./startup.sh -m standalone
注意:在阿里云服务器中有内网和外网两个IP 在服务器中使用的IP均为内网 通过外网IP访问
访问:外网IP:8848/nacos
账号密码均为nacos
到这儿就可以修改idea中服务的端口,使其启动被nacos发现了
application.yml:
spring cloud: nacos: server-addr: 外网IP:8848
集群配置标准是起码开放三个端口,然后用nginx做负载均衡
这里开放8845,8846,8847三个端口 -----可直接通过阿里云控制台开放
1.创建文件夹nacos1
mkdir nacos1
2.解压压缩包到指定的文件夹nacos1
tar -zxvf nacos-server-1.4.2.tar.gz -C nacos1
3.配置nacos1/nacos/conf 下的两个文件(如下图)
3.1 修改cluster.conf(第一次做完只有这三个参数)
内网ip:8845
内网ip:8846
内网ip:8847
3.2修改application.properties(下图已给出)
4.执行nacos-mysql.sql
方式一:Linux 本地创建数据库nacos_config 数据库 并执行这个sql语句
方式二:通过windows的可视化客户端连接(结果都一样,第二种容易操作表结构)
5.将nacos1 复制两份,分别修改其中的application.properties 文件中的端口为8846,8847
复制命令:cp -r nacos1 nacos2, cp -r nacos1 nacos3
6.启动集群--分别在nacos1,nacos2,nacos3中的bin文件夹中执行启动命令
./startup.sh
对于第六点可能出现OOP文件的解决方式
调整startup.sh文件夹中的三个参数 Xms,Xmx,Xmn
Xms 是指设定程序启动时占用内存大小
Xmx 是指设定程序运行期间最大可占用的内存大小
Xmn 新生代的大小
个人配置的:
8845:-Xms64m -Xmx64m -Xmn40m
8846:-Xms64m -Xmx64m -Xmn40m
8847:-Xms32m -Xmx64m -Xmn40m
7.安装nginx
wget http://nginx.org/download/nginx-1.13.6.tar.gz
tar -zvxf nginx-1.13.6.tar.gz -C /usr/local/
cd /usr/local/nginx-1.13.6
./configure --with-http_ssl_module --with-http_gzip_static_module
make
make install8.使用nginx做集群配置和监听
修改nginx conf文件夹下的nginx.conf文件
#172.26.61.23 内网ip upstream nacos-cluster { server 172.26.61.23:8845; server 172.26.61.23:8846; server 172.26.61.23:8847; } server { listen 80; server_name 172.26.61.23; location /nacos { proxy_pass http://nacos-cluster; } }
9.启动nginx
/usr/local/nginx-1.13.6/sbin/nginx
或者
cd /usr/local/nginx-1.13.6/sbin
./nginx
10.查看nginx是否启动成功 ----出现master 标识 表示启动成功
ps -ef | grep nginx
11.l浏览器访问公网ip/nacos
12.修改idea中的application.yml文件 修改对应端口
application.yml:
spring cloud: nacos: server-addr: 外网IP:8013.用上数据库--前面配置的 -----nacos中发布新配置将会被记录到数据库中
注意:可能出现的问题
<1>第4步中的执行sql,出现sql执行失败,具体是MySQL版本低不支持datetime设置默认值(版本不对)
解决方法:1>升级
2>本地navicat连接linux中的数据库后,手动修改为null(doge)
3>去掉nacos-mysql.sql中所有关于datetime类型的默认值初始化-----(临时的,会出现下面这个问题)
`gmt_create` datetime NOT NULL
DEFAULT CURRENT_TIMESTAMPCOMMENT '创建时间',
`gmt_modified` datetime NOT NULLDEFAULT CURRENT_TIMESTAMPCOMMENT '修改时间',<2>nacos发布新配置失败
解决方法:1>升级
2>本地navicat连接linux中的数据库后,手动修改为null(doge)
修改conf文件夹下的application.properties
修改nginx中的nginx.conf文件
配置集群和监听端口
集群部署成功图
nacos发布新配置持久化到数据库中
以上就是我个人的一些心得,在这个过程中也遇到了很多问题,花费了很多时间,但庆幸的是都一一解决了。
当然其中还有很多问题是我不太知其所以然的,譬如内存泄漏,nginx的一些配置
总而言之,言而总之,加油~