nacos常见问题之集群异常如何解决

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
可观测可视化 Grafana 版,10个用户账号 1个月
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。

问题一:nacos有支持postgresql版本吗?


nacos有支持postgresql版本吗?


参考回答:

Nacos支持PostgreSQL数据库。自Nacos 2.0版本以来,Nacos增加了对PostgreSQL数据库的支持。用户可以使用PostgreSQL作为Nacos的持久化存储数据库,替代默认的MySQL数据库。在部署Nacos时,可以通过配置相关环境变量或修改配置文件来指定连接到PostgreSQL数据库。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/582901


问题二:Nacos默认的maxLifeTime数值是多少啊?


Nacos默认的maxLifeTime数值是多少啊?

2023-12-19 23:29:25,810 WARN HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@150eee61 (Communications link failure

The last packet successfully received from the server was 20,009 milliseconds ago. The last packet sent successfully to the server was 20,010 milliseconds ago.). Possibly consider using a shorter maxLifetime value. 日志显示是nacos的maxLifeTime过大。。


参考回答:

看下这个:https://blog.csdn.net/weixin_43159975/article/details/112644122

另外你看看是不是数据库压力太大了,升级数据库配置缓解一下试试。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/582566


问题三:Nacos上述集群模式下告警,是因为连接mysql异常导致整个集群异常了吗?


Nacos上述集群模式下告警,是因为连接mysql异常导致整个集群异常了吗?

2023-12-19 23:29:25,810 WARN HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@150eee61 (Communications link failure

The last packet successfully received from the server was 20,009 milliseconds ago. The last packet sent successfully to the server was 20,010 milliseconds ago.). Possibly consider using a shorter maxLifetime value.

2023-12-19 23:29:27,179 INFO [Cluster-nacos1:8848] Server healthy check fail, currentConnection = 1702958250987_10.11.1.11_58150

2023-12-19 23:29:27,180 INFO [Cluster-nacos1:8848] Try to reconnect to a new server, server is not appointed, will choose a random server.

2023-12-19 23:29:28,039 INFO [Cluster-nacos3:8848] Server healthy check fail, currentConnection = 1702958241223_10.11.1.11_39560

2023-12-19 23:29:28,039 INFO [Cluster-nacos3:8848] Try to reconnect to a new server, server is not appointed, will choose a random server.

2023-12-19 23:29:28,273 WARN HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@2eb23bbc (Communications link failure

The last packet successfully received from the server was 152,630 milliseconds ago. The last packet sent successfully to the server was 152,631 milliseconds ago.). Possibly consider using a shorter maxLifetime value.

2023-12-19 23:29:30,181 ERROR Server check fail, please check server nacos1 ,port 9849 is available , error ={}

java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 86087 nanoseconds delay) for io.grpc.stub.ClientCallsGrpcFuture@37bda231[status=PENDING, info=[GrpcFuture{clientCall=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=io.grpc.protobuf.lite.ProtoLiteUtilsGrpcFuture@37bda231[status=PENDING, info=[GrpcFuture{clientCall=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=io.grpc.protobuf.lite.ProtoLiteUtilsGrpcFuture@37bda231[status=PENDING, info=[GrpcFuture{clientCall=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=io.grpc.protobuf.lite.ProtoLiteUtilsMessageMarshaller@794b08c8, responseMarshaller=io.grpc.protobuf.lite.ProtoLiteUtilsMessageMarshaller@82645e5,schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpcMessageMarshaller@82645e5,schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpcMessageMarshaller@82645e5, schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpcRequestMethodDescriptorSupplier@61a8356c}}}]]

at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:508)

at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.serverCheck(GrpcClient.java:196)

at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.connectToServer(GrpcClient.java:307)

at com.alibaba.nacos.common.remote.client.RpcClient.reconnect(RpcClient.java:498)

at com.alibaba.nacos.common.remote.client.RpcClient.lambdastartstartstart2(RpcClient.java:339)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ScheduledThreadPoolExecutorScheduledFutureTask.accessScheduledFutureTask.accessScheduledFutureTask.access201(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:750)

2023-12-19 23:29:31,041 ERROR Server check fail, please check server nacos3 ,port 9849 is available , error ={}


参考回答:

最后一句说的很明白,检查下nacos3的9849端口。

2023-12-19 23:29:31,041 ERROR Server check fail, please check server nacos3 ,port 9849 is available , error ={}


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/582565


问题四:prometheus 能从nacos 拉取微服务监控指标吗?跟eureka一样。


prometheus 能从nacos 拉取微服务监控指标吗?跟eureka一样。


参考回答:

可以的,看看这个文档。

https://nacos.io/zh-cn/docs/monitor-guide.html


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/582564


问题五:请教一个问题。nacos2.2.3版本。发布配置的时候。是不是少了什么配置?


请教一个问题。nacos2.2.3版本。发布配置的时候。获取不到 ENCRYPTED_DATA_KEY 导致 入库 HIS_CONFIG_INFO 失败。是不是少了什么配置?


参考回答:

在Nacos 2.2.3版本中,如果在发布配置时获取不到ENCRYPTED_DATA_KEY,并且因此导致无法成功入库到HIS_CONFIG_INFO表,可能存在以下几种情况:

  1. 加密功能未启用或配置不正确
    确保你在Nacos服务端已经启用了配置的加密功能,并且在客户端也正确配置了加密相关的设置。这可能涉及到在Nacos的配置文件中设置加密算法、密钥等信息。
  2. 缺少加密Key的生成或传递
    在发布配置时,如果使用了加密,Nacos服务端应该会生成一个ENCRYPTED_DATA_KEY并将其与配置内容一起返回给客户端。检查你的发布配置代码或者调用过程,确保在请求中包含了生成或获取加密Key的步骤,并且这个Key被正确地用于加密配置内容。
  3. 数据库表结构不匹配
    根据之前的知识库信息,Nacos 2.1及以后的版本需要HIS_CONFIG_INFO表包含encrypted_data_key字段。确认你的数据库表结构是否与Nacos 2.2.3版本的要求相匹配,包括字段名称、类型和注释。
  4. 升级或迁移问题
    如果你是从之前的Nacos版本升级到2.2.3,可能存在数据库表结构未正确更新的问题。确保在升级过程中执行了所有必要的数据库迁移脚本,包括添加encrypted_data_key字段的ALTER TABLE语句。
  5. 服务端 bug 或兼容性问题
    尽管这种情况相对较少,但也不能完全排除Nacos服务端存在bug或与特定环境的兼容性问题


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/581944

相关文章
|
30天前
|
Kubernetes 关系型数据库 MySQL
k8s部署nacos集群
k8s部署nacos集群
|
1月前
|
应用服务中间件 Nacos 数据库
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
52 1
|
1月前
|
SQL 关系型数据库 MySQL
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
50 1
|
1月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
62 0
|
1月前
|
网络安全 Nacos 开发者
【Nacos】神操作!节点提示暂时不可用?别急!7步排查法+实战代码,手把手教你解决Nacos服务实例状态异常,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心,虽广受好评,但仍可能遇到“节点提示暂时不可用”的问题。本文解析此现象及其解决之道。首先需理解该提示意味着服务实例未能正常响应。解决步骤包括:检查服务状态与网络、审查Nacos配置、调整健康检查策略、重启服务及分析日志。通过系统化排查,可有效保障服务稳定运行。
52 0
|
1月前
|
关系型数据库 MySQL Nacos
Nacos 1.2.1 集群搭建(一)环境准备
Nacos 1.2.1 集群搭建(一)环境准备
66 0
|
2月前
|
Java 数据库连接 Nacos
nacos配置管理拉取不到配置异常
在搭建Nacos配置时遇到异常,因配置了`file-extension: yaml`,服务尝试拉取`shared-jdbc.yaml`, `shared-log.yaml`, `shared-swagger.yaml`,但Nacos中这些共享配置的Data ID无后缀。修正方法是确保Data ID与预期文件名一致,包括.yaml扩展名。在验证中,修改了部分Data ID并导致服务因找不到未加后缀的`jdbc`配置而报错,提示在配置Data ID时应包含文件扩展名。
76 1
|
2月前
|
Nacos 数据中心 Docker
Docker 部署 Nacos 集群
Docker 部署 Nacos 集群
|
3月前
|
Prometheus 监控 Cloud Native
Nacos集群监控搭建
Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态。
54 1
|
4月前
|
Linux Nacos 数据库
【微服务】生产部署nacos集群(三个节点)
【微服务】生产部署nacos集群(三个节点)
134 1