一、Nacos下载
linux下载tar包,window下载zip包。source源码可自学。
- 本文以linux版本进行。
- 附nacos官方学习文档:https://nacos.io/zh-cn/docs/quick-start.html
二、Nacos安装环境准备
- gcc编译器安装
yum -y install gcc gcc-c++ kernel-devel
网上命令很多,没深入研究,这个命令是ok的。 - 基于上一步,可能会出现yum.pid被锁定的报错,删除该pid即可。
rm -f /var/run/yum.pid
- JDK安装,推荐8或以上版本。这里我使用了yum方式安装。
yum install java-1.8.0-openjdk
参考:https://blog.csdn.net/dhr201499/article/details/81626466
yum安装完成后无序配置环境变量,根目录下严重是否安装成功。
java -version
- JAVAC安装,同样安装完成后进行验证。
yum install java-devel
- MAVEN安装
https://www.jianshu.com/p/753a8bb51258 - MYSQL安装
https://blog.csdn.net/wohiusdashi/article/details/89358071 - 防火墙及端口策略该关闭关闭
三、Nacos单机模式安装
- 将tar包通过sftp传入到服务器。并解压。
tar -zxvf nacos-server-1.3.2.tar.gz
-
将解压后的文件夹移动到自己想设定的文件目录。这里我放在了/usr/local/
mv nacos /usr/local/
- bin目录存放启动停止等脚本。
- conf为各种配置文件。
- 初始没这么多文件,为启动后生成。
- 将conf目录下的nacos-mysql.sql在mysql中执行,是否需要创建用户记不清了。
- 修改conf目录下application.properties,若没有这个文件复制一个例子即可。
cp application.properties.example application.properties
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
# Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.126.129:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
单机模式不使用数据库也成,但为了一致性,集群模式必须使用数据库。
- 单机模式启动nacos。切换到bin目录下执行。
sh startup.sh -m standalone
- 验证 http://ip:8848/nacos
四、Nacos伪集群模式安装
同一虚拟机内设置不同的端口,组成伪集群模式。有条件的可以来几台服务器搞。
-
同单机模式,解压三次tar包,并重新命名移动到/usr/local
同单机模式,配置三台nacos的application.properties
- mysql部分配置数据库信息。
- server.prot ,三台服务器配置不同的端口。
- 配置集群文件。将三台服务器的ip及端口配置进集群文件。每台配置相同。
cp cluster.conf.example cluster.conf`
vi cluster.conf`
#2020-09-29T22:20:50.519
192.168.126.129:8847
192.168.126.129:8848
192.168.126.129:8849
- 配置完成,启动三台。
sh startup.sh
- 验证http://ip:三台/nacos,内置的集群列表,出现三台up状态即为成功。
五、注意
nacos占用内存较大,一台大概三四百M,初始在启动第三台时发现抱错。后根据报错信息发现为内存不足,free -h 查看内存使用,仅剩十几M。解决:
进入bin目录下,编辑 startup.sh启动文件。初始设置较大,根据自身服务器进行调节。这里我进行了减半操作。深入的jvm知识还有待提高。
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"