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

2023-11-19

问题一:内存不足

问题描述:

"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


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nacos集群部署遇到的问题总结 的相关文章

  • Oracle Java 教程 - 回答问题时可能出现错误

    我是 Java 新手 正在阅读 Oracle 教程 每个部分之后都有问题和答案 我不明白一个答案中的一句话 见下面的粗体线 来源是https docs oracle com javase tutorial java javaOO QandE
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • 将SQL数据引入jquery availabletag

    我正在尝试制作自动完成文本框 但如何将 SQL 数据包含到 jquery 可用标记并循环它 我无法根据以下代码执行该功能 任何帮助 将不胜感激 谢谢 这是我的预期输出 预期结果演示 http jsfiddle net VvETA 71 jq
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • 为什么Iterator接口没有add方法

    In IteratorSun 添加了remove 方法来删 除集合中最后访问的元素 为什么没有add方法来向集合中添加新元素 它可能对集合或迭代器产生什么样的副作用 好的 我们开始吧 设计常见问题解答中明确给出了答案 为什么不提供 Iter
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • 虽然我的类已加载,但 Class.forName 抛出 ClassNotFoundException

    代码如下 它的作用是加载我放在主目录中的 jar 文件中的所有类 import java io File import java util jar JarFile import java util jar JarEntry import j
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • Java 的 PriorityQueue 与最小堆有何不同?

    他们为什么命名PriorityQueue如果你不能插入优先级 它看起来与堆非常相似 有什么区别吗 如果没有区别那为什么叫它PriorityQueue而不是堆 默认的PriorityQueue是用Min Heap实现的 即栈顶元素是堆中最小的
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有

随机推荐

  • 网络基础知识

    网络编程 2 网络的体系结构 七层模型 四层模型 因为网络通信比较麻烦 所以网络采用分层思想 OSI开放系统互联网模型 七层模型 高层 应用层 表示层 会话层 低层 传输层 网络层 数据链路层 物理层 驱动 网卡 仅仅是一种理想状态 现实中
  • 文本情感分析竞赛(首次提交排名第6)

    之前花了半个小时做了个DataCastle上的基础竞赛题 然后提交结果后直接第六名 因此来分享一下 该文章之前记录在我的公众号上 原文链接 https mp weixin qq com s nIJ2begF2 5i WnT1PEM3w 数据
  • 变量的存储类型 auto register extern static

    说明 在C语言中 变量和函数都有数据类型和存储类型两个属性 数据类型规定了取值范围和运算 存储类型规定了占用内存的方式 变量的存储类型可分为静态存储和动态存储 静态存储 生命周期为程序的运行时间 动态存储 动态分配内存 用完就放 内存的区域
  • 每日一问:你想如何破坏单例模式?

    前言 1 单例是什么 单例模式 是一种创建型设计模式 目的是保证全局一个类只有一个实例对象 分为懒汉式和饿汉式 所谓懒汉式 类似于懒加载 需要的时候才会触发初始化实例对象 而饿汉式正好相反 项目启动 类加载的时候 就会创建初始化单例对象 1
  • ThreadLocal的理解和使用

    1 ThreadLocal初步 早在JDK 1 2的版本中就提供java lang ThreadLocal ThreadLocal为解决多线程程序的并发问题提供了一种新的思路 使用这个工具类可以很简洁地编写出优美的多线程程序 ThreadL
  • LightGBM算法详解(教你一文掌握LightGBM所有知识点)

    LightGBM Light Gradient Boosting Machine 是一款基于决策树算法的分布式梯度提升框架 为了满足工业界缩短模型计算时间的需求 LightGBM的设计思路主要是两点 减小数据对内存的使用 保证单个机器在不牺
  • Ubuntu 切换工作区快捷键失效

    首先安装 Compiz Config Settings Manager sudo apt get install compizconfig settings manager 在 桌面 板块下勾选Desktop Wall 以启用 点开Desk
  • 信息安全管理(CISP)—— 部分重点内容总结

    目录 一 风险评估方法 定量分析计算 原理 公式 例题 二 风险评估要素之间的关系 三 GB Z 24364 2009信息安全风险管理指南 四阶段 两过程 四 能力成熟度模型SSE CMM 域维 能力维 五 等级保护2 0的工作流程 系统定
  • 利用Intellij IDEA创建Spring的Helloworld

    引言 Spring 作为一款轻量级的框架 自然会赢得大多数开发者的信赖 笔者今天也开始学习Spring框架了 那么如何利用当今非常火的IDEA来开发Spring呢 按照国际惯例 先从Spring的HelloWorld开始吧 准备环境 Int
  • validation query

    public static void mySQLConfigPlugin Plugins me C3p0Plugin dbplugin createC3p0Plugin DruidPlugin dbplugin createDruidPlu
  • sql优化

    SQL总结 优化部分 1 应尽量避免在 where 子句中使用 或 lt gt 操作符 否则将引擎放弃使用索引而进行全表扫描 2 对查询进行优化 应尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 3 应
  • 模糊数学Python(一)模糊运算

    代码 import numpy as np def istype a 判断模糊矩阵a的类型 a np array a s np eye a shape 0 a shape 1 if a gt s all and a T a all retu
  • 安装12.04lts的两个问题总结

    因为在win7下有很多bug 老师叫我用Linux来完成项目的最后一步 啊啊啊 之前一直是在虚拟机里面搞 安装Ubuntu的过程中遇到了好多个问题 好吧好吧 下面总结一下 让遇到同样问题的朋友少走点弯路吧 1 分区问题 建立 主分区 之后
  • 数据操作之-dataframe常见操作:取行、列、切片、统计特征值

    import numpy as np import pandas as pd from pandas import from numpy import data DataFrame np arange 16 reshape 4 4 inde
  • Spring Boot 学习研究笔记(十八) 添加log4j2日志文件

    Spring Boot 添加log4j2日志文件 对于一个线上程序或者服务而言 重要的是要有日志输出 这样才能方便运维 而日志的输出需要有一定的规划 如日志命名 日志大小 日志分割的文件个数等 在SpringBoot的框架下 会使用log4
  • 栈头文件C语言

    Stack ADT h 栈模型头文件 数据类型定义 typedef char Name typedef struct stack node Name name struct stack node next Stack Node typede
  • GD32450i-EVAL学习笔记 6 - ADC

    目录 1 初始化ADC 1 1 使能RCU 1 2 设置频率 1 3 设置分辨率 1 4 设置数据对齐方式 1 5 使能扫描模式 1 6 设置触发模式 1 6 使能ADC 2 初始化通道规则 3 通道使能 4 软件触发使能 5 获取ADC的
  • C#List类容输出

    将集合中的类容 添加间隔符号后 输出为string List
  • vue之babel自动埋点

    公司项目是vue单页面技术 这天组长对我说 为了凸显我们的作用 做点外行或者新手看起来高深的东西 例如自动埋点 当时我的表情先是 然后摸鱼摸习惯了 就是这种状态 最后组长说领导的态度决定我们的绩效 没办法 为了money 无奈打开了老朋友
  • nacos集群部署遇到的问题总结

    问题一 内存不足 问题描述 nacos is starting with cluster Error occurred during initialization of VM Could not reserve enough space f