ToB企服应用市场:ToB评测及商务社交产业平台
标题:
全网最新的nacos 2.1.0集群多节点部署教程
[打印本页]
作者:
守听
时间:
2022-8-27 07:37
标题:
全网最新的nacos 2.1.0集群多节点部署教程
原文链接:
全网最新的nacos 2.1.0集群多节点部署教程-语雀
基本信息
进度整理中
版本 2.1.0
版本发布日期 2022-04-29
git revision number b584531331cc95054964ba4e33984f4cab9e582d
编写日期 2022-07-04~ 2022-07-14
官网
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
GitHub
https://github.com/alibaba/nacos
源码编译环境
服务器 Alibaba Cloud Linux 3.2104 64位
Maven apache-maven-3.8.4
JDK 1.8.0_291编译成功
java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
复制代码
OpenJDK 11 编译失败
java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
复制代码
编译准备
1、配置JAVA_HOME
通过vim /etc/profile编辑profile文件,配置JAVA_HOME,并通过source /etc/profile刷新配置。示例如下:
[root@aliyun ~]# cat /etc/profile
# jdk8
export JAVA_HOME=/data/source/jdk1.8.0_202
# openjdk11
#export JAVA_HOME=/usr/local/jdk-11
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
复制代码
2、配置maven
通过vim ~/.bash_profile编辑.bash_profile文件,配置MAVEN_HOME,并通过source ~/.bash_profile刷新配置。示例如下:
#JAVA_HOME CONFIG IN /etc/profile
#JAVA_HOME=/usr/local/jdk-11
#JAVA_HOME=/data/source/jdk1.8.0_202
#export JAVA_HOME
MAVEN_HOME=/data/app/apache-maven-3.8.4
PATH=$PATH:$HOME/bin:$MAVEN_HOME/bin
export PATH
复制代码
在/data/app/apache-maven-3.8.4/conf/settings.xml的mirrors节点添加aliyun maven镜像源。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
复制代码
命令
编译打包
cd /data/source
# 从git拉取最新代码
git clone https://github.com/alibaba/nacos.git
cd nacos
# 切换到master主分支,并通过git log确认当前commit为b584531331cc95054964ba4e33984f4cab9e582d
git checkout master
# cherry-pick 74c3355b712e74e8274ac038470dc3db411b7c9e,解决nacosAuthConfig jwtTokenManager之间的circular reference
git cherry-pick 74c3355b712e74e8274ac038470dc3db411b7c9e
# 编译
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
复制代码
打包命令
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U 【推荐】
mvn -Prelease-nacos clean install -U -DskipTests -Drat.skip=true
执行成功时,日志如下:
[INFO] Building tar: /data/source/nacos/distribution/target/nacos-server-2.1.0.tar.gz
[WARNING] Encountered ModuleSet with no sources or binaries specified. Skipping.
[INFO] Building zip: /data/source/nacos/distribution/target/nacos-server-2.1.0.zip
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Alibaba NACOS 2.1.0 2.1.0:
[INFO]
[INFO] Alibaba NACOS 2.1.0 ................................ SUCCESS [ 4.612 s]
[INFO] nacos-api 2.1.0 .................................... SUCCESS [ 12.877 s]
[INFO] nacos-common 2.1.0 ................................. SUCCESS [ 13.351 s]
[INFO] nacos-consistency 2.1.0 ............................ SUCCESS [ 6.605 s]
[INFO] nacos-plugin 2.1.0 ................................. SUCCESS [ 0.228 s]
[INFO] nacos-auth-plugin 2.1.0 ............................ SUCCESS [ 0.979 s]
[INFO] nacos-sys 2.1.0 .................................... SUCCESS [ 2.045 s]
[INFO] nacos-auth 2.1.0 ................................... SUCCESS [ 1.515 s]
[INFO] nacos-core 2.1.0 ................................... SUCCESS [ 13.775 s]
[INFO] nacos-encryption-plugin 2.1.0 ...................... SUCCESS [ 0.533 s]
[INFO] nacos-config 2.1.0 ................................. SUCCESS [ 21.569 s]
[INFO] nacos-cmdb 2.1.0 ................................... SUCCESS [ 0.916 s]
[INFO] nacos-naming 2.1.0 ................................. SUCCESS [ 23.832 s]
[INFO] nacos-address 2.1.0 ................................ SUCCESS [ 0.954 s]
[INFO] nacos-client 2.1.0 ................................. SUCCESS [ 25.395 s]
[INFO] nacos-plugin-default-impl 2.1.0 .................... SUCCESS [ 2.811 s]
[INFO] nacos-istio 2.1.0 .................................. SUCCESS [ 8.047 s]
[INFO] nacos-console 2.1.0 ................................ SUCCESS [ 4.740 s]
[INFO] nacos-test 2.1.0 ................................... SUCCESS [ 0.382 s]
[INFO] nacos-config-test 2.1.0 ............................ SUCCESS [ 0.364 s]
[INFO] nacos-naming-test 2.1.0 ............................ SUCCESS [ 0.340 s]
[INFO] nacos-core-test 2.1.0 .............................. SUCCESS [ 0.433 s]
[INFO] nacos-example 2.1.0 ................................ SUCCESS [ 0.536 s]
[INFO] nacos-distribution 2.1.0 ........................... SUCCESS [ 10.944 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:38 min
[INFO] Finished at: 2022-07-14T22:55:27+08:00
[INFO] ------------------------------------------------------------------------
复制代码
解压部署的jar包
# copy 需要部署的jar包
cp distribution/target/nacos-server-2.1.0.tar.gz /data/app/nacos-server-2.1.0.tar.gz
cd /data/app
# 解压
tar -xvzf nacos-server-2.1.0.tar.gz
复制代码
配置调整
应用配置文件application.properties
修改DB连接串
将nacos/conf/application.properties的第33~41行DB配置信息根据实际情况修改,并取消注释
31 #*************** Config Module Related Configurations ***************#
32 ### If use MySQL as datasource:
33 spring.datasource.platform=mysql
34
35 ### Count of DB:
36 db.num=1
37
38 ### Connect URL of DB:
39 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
40 db.user.0=nacos
41 db.password.0=nacos
复制代码
注意点
DB名称: 名称可由服务器所采用的字符集中任意字母、数字、“_”和“ $”组成。如果需要其他字符,需要使用[`]包裹起来,例如db-nacos。已踩坑未验证
db.url:增加allowPublicKeyRetrieval=true。 已踩坑已验证
修改服务端口
可先跳过,按顺序查看【批量服务端口】章节
启动文件startup.sh
根据硬件资源及实际情况,在nacos/bin/startup.sh文件中调整JVM参数
93 #JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
94 JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn64m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
复制代码
JVM参数
Xss:每个线程的stack大小(栈)
Xmx:JAVA HEAP的最大值、默认为物理内存的1/4
Xms:JAVA HEAP的初始值,server端最好Xms与Xmx一样
Xmn:JAVA HEAP young区的大小
XX:MetaspaceSiz:设定内存的永久保存区域
XX:MaxMetaspaceSiz:设定最大内存的永久保存区域
编码问题
[root@aliyun app]# sh nacos/bin/startup.sh
startup.sh: line 2: $'\r': command not found
startup.sh: line 7: $'\r': command not found
startup.sh: line 15: $'\r': command not found
startup.sh: line 19: syntax error near unexpected token `$'in\r''
'tartup.sh: line 19: `case "`uname`" in
复制代码
则可以执行sed -i 's/\r//g' nacos/bin/*全局替换回车符。
原因
脚本是在Windows下编辑完成后上传Linux上执行的,Windows下的换行是回车符+换行符,也就是\r\n,而Linux下是换行符\n。Linux下不识别\r为回车符,所以导致每行的配置都多了个\r,因此是编码的问题。
日志
启动日志
[root@aliyun app]# sh nacos/bin/startup.sh
/data/source/jdk1.8.0_202/bin/java -Djava.ext.dirs=/data/source/jdk1.8.0_202/jre/lib/ext:/data/source/jdk1.8.0_202/lib/ext -server -Xms128m -Xmx256m -Xmn64m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/app/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Xloggc:/data/app/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/data/app/nacos/plugins/health,/data/app/nacos/plugins/cmdb,/data/app/nacos/plugins/selector -Dnacos.home=/data/app/nacos -jar /data/app/nacos/target/nacos-server.jar --spring.config.additional-location=file:/data/app/nacos/conf/ --logging.config=/data/app/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /data/app/nacos/logs/start.out
复制代码
服务日志
[code][root@aliyun app]# tail -f nacos/logs/start.out nacos/logs/nacos.log ==> nacos/logs/start.out nacos/logs/nacos.log logs/nacos.log logs/start.out logs/nacos.log logs/start.out logs/nacos.log
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4