nacos集群部署遇到的问题总结

文章介绍了在初始化Nacos集群时遇到内存不足的问题,提供了解决方案,即调整集群模式下的内存配置。同时,针对Nacos连接数据库报错的情况,建议在application.properties中正确配置数据库连接信息。此外,还指出JDK版本可能影响Nacos启动,推荐使用特定版本的JDK以确保兼容性。
摘要由CSDN通过智能技术生成

问题一:内存不足

问题描述:

"nacos is starting with cluster" Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap

解决方案:

以编辑模式打开bin目录下startup.cmd,找到下面一段

**单节点模式内存配置**
rem if nacos startup mode is standalone
if %MODE% == "standalone" (
    echo "nacos is starting with standalone"
	  set "NACOS_OPTS=-Dnacos.standalone=true"
    set "NACOS_JVM_OPTS=-Xms512m -Xmx512m -Xmn256m"
)

**集群模式内存配置**
rem if nacos startup mode is cluster
if %MODE% == "cluster" (
    echo "nacos is starting with cluster"
	  if %EMBEDDED_STORAGE% == "embedded" (
	      set "NACOS_OPTS=-DembeddedStorage=true"
	  )
set "NACOS_JVM_OPTS=-server -Xms2g -Xmx2g -Xmn1g 
                     -XX:MetaspaceSize=128m 
                     -XX:MaxMetaspaceSize=320m 
                     -XX:-OmitStackTraceInFastThrow 
                     -XX:+HeapDumpOnOutOfMemoryError
                     -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof 
                     -XX:-UseLargePages"
)

为了使得nacos集群可以正常的启动,我们可以将集群模式的内存配小一些,例如:

rem if nacos startup mode is cluster
if %MODE% == "cluster" (
    echo "nacos is starting with cluster"
	  if %EMBEDDED_STORAGE% == "embedded" (
	      set "NACOS_OPTS=-DembeddedStorage=true"
	  )
set "NACOS_JVM_OPTS=-server -Xms512m -Xmx512m -Xmn256m 
                     -XX:MetaspaceSize=128m 
                     -XX:MaxMetaspaceSize=320m 
                     -XX:-OmitStackTraceInFastThrow 
                     -XX:+HeapDumpOnOutOfMemoryError
                     -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof 
                     -XX:-UseLargePages"
)

其中参数的含义如下:

-Xms512m   启动时分配的内存为512M
-Xmx512m   运行过程中分配的最大内存为512M
-Xmn256m   新生代的大小为256M
-XX:MetaspaceSize=128m    元空间的大小为128M
-XX:MaxMetaspaceSize=320m    MetaspaceSize容量触发FGC的阈值为320M
-XX:-OmitStackTraceInFastThrow   关闭堆栈异常信息的抛出
-XX:+HeapDumpOnOutOfMemoryError   运行过程中发生OOM(Out Of Memory)时,生成DUMP文件。
-XX:HeapDumpPath   指定DUMP文件生成的目录
-XX:-UseLargePages   起用大内存储器页支持

问题二:mysql配置问题

为了使nacos集群中每个节点可以共享数据,我们需要将nacos的节点与数据库相连。

问题描述:

java.io.IOException: java.lang.IllegalArgumentException: db.num is null
Caused by: java.lang.IllegalArgumentException: db.num is null

解决方案:

打开conf目录下的application.properties。
1、正确配置数据库,要填入自己数据库对应的username、password和数据库名称。
2、把spring.datasource.platform=mysql和db.num=1的注释打开。

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql  # 指定数据源

### Count of DB:
db.num=1 # 指定mysql的数量

### Connect URL of DB:
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
db.user.0=root
db.password.0=123456

### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

问题三:JDK版本问题

问题描述:

org.springframework.context.ApplicationContextException: Unable to start web server;
nested exception is org.springframework.boot.web.server.WebServerException: 
Unable to start embedded Tomcat at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initializ
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'trafficReviseFilterRegistration' defined in class path resource 

解决方案:

我使用的nacos版本是1.4.1,用jdk1.8.0_281 nacos集群模式不能正常启动,换成jdk1.8.0_191就可以正常启动了
jdk下载路径:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html


技术小白,有错欢迎指正!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值