【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

Nacos 常见问题及解决方法

  • 2019-10-29
  • 本文字数:2570 字

    阅读完需:约 8 分钟

Nacos 常见问题及解决方法

Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈。在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方法,这篇文章后续也会合并到 Nacos 官网的 FAQ 里。

如何依赖最新的 Nacos 客户端?

很多用户都是通过 Spring Cloud Alibaba 或者 Dubbo 依赖的 Nacos 客户端,那么 Spring Cloud Alibaba 和 Dubbo 中依赖的 Nacos 客户端版本,往往会落后于 Nacos 最新发布的版本。在一些情况下,用户需要强制将 Nacos 客户端升级到最新,此时却往往不知道该升级哪个依赖,这里将 Spring Cloud Alibaba 和 Dubbo 的依赖升级说明如下:

Spring Cloud Alibaba

用户通常是配置以下 Maven 依赖来使用的 Nacos:


<!--Nacos Discovery--><dependency>     <groupId>com.alibaba.cloud</groupId>     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>     <version>[latest version]</version> </dependency>
<!--Nacos Config--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>[latest version]</version> </dependency>
复制代码


这两个 JAR 包实际上又依赖了以下的 JAR 包:


<dependency>  <groupId>com.alibaba.nacos</groupId>  <artifactId>nacos-client</artifactId>  <version>[a particular version]</version></dependency>
复制代码


如果 nacos-client 升级了,对应的 spring-cloud 客户端版本不一定也同步升级,这个时候可以采用如下的方式强制升级 nacos-client(以 nacos-discovery 为例):


<dependency>     <groupId>com.alibaba.cloud</groupId>     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>     <version>[latest version]</version>     <excludes>          <exclude>                 <groupId>com.alibaba.nacos</groupId>                 <artifactId>nacos-client</artifactId>          </exclude>     </excludes> </dependency>
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>[latest version]</version></dependency>
复制代码

Dubbo

Dubbo 也是类似的道理,用户通常引入的是以下的依赖:


<dependency>    <groupId>com.alibaba</groupId>    <artifactId>dubbo-registry-nacos</artifactId>    <version>[latest version]</version></dependency>    <!-- Dubbo dependency --><dependency>    <groupId>com.alibaba</groupId>    <artifactId>dubbo</artifactId>    <version>[latest version]</version></dependency>
复制代码


需要升级 Nacos 客户端时,只需要如下修改依赖:


 <dependency>  <groupId>com.alibaba.nacos</groupId>  <artifactId>nacos-client</artifactId>  <version>[latest version]</version></dependency>
复制代码

客户端 CPU 高,或者内存耗尽的问题

问题的现象是依赖 Nacos 客户端的应用,在运行一段时间后出现 CPU 占用率高,内存占用高甚至内存溢出的现象,可以参考 Issue:


https://github.com/alibaba/nacos/issues/1605


这种情况首先要做的是分析 CPU 高或者内存占用高的原因,常用的命令有 top、jstack、jmap、jhat 等。其中一种情况是 Nacos 客户端实例在 Spring Cloud Alibaba 服务框架中被反复构造了多次,可以参考 Issue:


https://github.com/alibaba/spring-cloud-alibaba/issues/859


这个问题已经得到了修复,预期会在下个 Spring Cloud Alibaba 版本中发布。

日志打印频繁的问题

在老的 Nacos 版本中,往往会有大量的无效日志打印,这些日志的打印会迅速占用完用户的磁盘空间,同时也让有效日志难以查找。目前社区反馈的日志频繁打印主要有以下几种情况:


1、access 日志大量打印,相关 Issue 有:


https://github.com/alibaba/nacos/issues/1510


主要表现是 {nacos.home}/logs/access_log.2019-xx-xx.log 类似格式文件名的日志大量打印,而且还不能自动清理和滚动。这个日志是 Spring Boot 提供的 Tomcat 访问日志打印,Spring Boot 在关于该日志的选项中,没有最大保留天数或者日志大小控制的选项。因此这个日志的清理必须由应用新建 Crontab 任务来完成,或者通过以下命令关闭日志的输出(在生产环境我们还是建议开启该日志,以便能够有第一现场的访问记录):


server.tomcat.accesslog.enabled=false
复制代码


2、服务端业务日志大量打印且无法动态调整日志级别。这个问题在 1.1.3 已经得到优化,可以通过 API 的方式来进行日志级别的调整,调整日志级别的方式如下:


# 调整naming模块的naming-raft.log的级别为error:curl -X PUT '$nacos_server:8848/nacos/v1/ns/operator/log?logName=naming-raft&logLevel=error'# 调整config模块的config-dump.log的级别为warn:curl -X PUT '$nacos_server:8848/nacos/v1/cs/ops/log?logName=config-dump&logLevel=warn'
复制代码


3、客户端日志大量打印,主要有心跳日志、轮询日志等。这个问题已经在 1.1.3 解决,请升级到 1.1.3 版本。

集群管理页面,Raft Term 显示不一致问题

在 Nacos 1.0.1 版本中,Nacos 控制台支持了显示当前的集群各个机器的状态信息。这个功能受到比较多用户的关注,其中一个被反馈的问题是列表中每个节点的集群任期不一样。如下图所示,图片信息来自 Issue:


https://github.com/alibaba/nacos/issues/1786



对于这个任期不一致的问题,原因主要是因为获取这个信息的逻辑有一些问题,没有从对应的节点上获取集群任期。这个问题会在下一个 Nacos 版本中修复。目前一个手动检查集群任期的办法是在每个节点上执行以下命令:


curl '127.0.0.1:8848/nacos/v1/ns/raft/state'
复制代码


然后在返回信息中查找本节点的集群任期。因为每个节点返回的集群任期中,只有当前节点的信息是准确的,返回的其他节点的信息都是不准确的。


作者介绍


朱鹏飞,Github ID @nkorange,Nacos 开源负责人,阿里巴巴云原生应用平台技术专家。


本文转载自公众号阿里巴巴中间件(ID:Aliware_2018)


原文链接


https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&mid=2247487935&idx=3&sn=52aa5368d3e22e20a7a1dbfb50a0304c&chksm=fdeb23dfca9caac9c6b5a568672177f5c0417537adabba6a8f74ac7e2d3ebf4d8f496b5151f7&scene=27#wechat_redirect


2019-10-29 08:003983

评论

发布
暂无评论
发现更多内容

大发一分走势规律出号口诀

闵东升

杭州悦数 2023 年回顾:领航创新,多维突破

悦数图数据库

图数据库

玩大小的平台游戏有哪些软件

闵东升

大发极速大发人工精准全天计划

闵东升

聊聊发版提测和发布评审

老张

质量保障 质量门禁 线上发布

ChatGPT 人工智能助手为你定制测试计划,精准又高效!

测吧(北京)科技有限公司

测试

澜起科技率先试产DDR5时钟驱动器( CKD )芯片

财见

沙丘世界,如何抵抗勒索病毒的入侵?

脑极体

数据安全

表设计的18条军规

苏三说技术

数据库 表设计

贴吧上说带人回血是真的吗

闵东升

倍投方案表50期倍投计划

闵东升

ES6生成器,看似同步的异步流程控制表达风格

华为云开发者联盟

JavaScript 前端 华为云 华为云开发者联盟 企业号2024年4月PK榜

玩大小单双的正规平台推荐视频

闵东升

了解一下 SSE

袁世超

stream kitex sse

专业DVD转换软件:MacX DVD Ripper Pro for Mac

iMac小白

单双最安全的倍投方法图解

闵东升

CST电磁仿真基本单位设置和保存结果【仿真教程】

思茂信息

教程 cst 电磁仿真

中文版 支持M1 :AutoCAD 2024 Mac破解版 附 AutoCAD 2024破解补丁

iMac小白

视频格式转换软件:AnyMP4 Mac Video Converter Ultimate for Mac

iMac小白

导师带人回血上岸是真的吗

闵东升

玩大发最厉害的回血导师

闵东升

macOS Catalina for mac (macos 10.15系统离线安装包) v10.15.7正式版

iMac小白

GoLand 2024 Mac/Win:GO语言开发者的理想选择

iMac小白

200元回血一万技巧真实案例

闵东升

大发回血计划不赚包赔

闵东升

PDF专业制作与编辑软件 Acrobat Pro DC 2024 for mac中文激活版

iMac小白

2024-04-10:用go语言,考虑一个非负整数数组 A, 如果数组中相邻元素之和为完全平方数,我们称这个数组是正方形数组。 现在要计算 A 的正方形排列的数量。 两个排列 A1 和 A2 被认为是

福大大架构师每日一题

福大大架构师每日一题

GPT-4 Turbo 融合视觉能力;Google 新添 AI 视频应用 Vids丨 RTE 开发者日报 Vol.181

声网

500本金每天盈利20详细计算表图

闵东升

搭建外汇交易所系统、海外公司注册、金融牌照代办

一个普通的写作

制造业工厂如何选择QMS质量管理系统?

万界星空科技

质量管理 万界星空科技 QMS 质量管理系统 生产质量

Nacos 常见问题及解决方法_服务革新_朱鹏飞_InfoQ精选文章