连接nacos异常[NA] failed to update serviceName: UAT_GROUP@@**-** NacosException: Request Exception

这篇具有很好参考价值的文章主要介绍了连接nacos异常[NA] failed to update serviceName: UAT_GROUP@@**-** NacosException: Request Exception。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


com.alibaba.nacos.api.exception.NacosException: Request nacos server failed:)

子服务异常信息:

[2023-04-05 19:33:09.205] [ERROR] [com.alibaba.nacos.client.remote.worker] c.a.n.c.r.c.g.GrpcClient.printIfErrorEnabled [LoggerUtils.java:99
] - Server check fail, please check server **.*.*.*** ,port 9848 is available , error ={}
java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 133573 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.Cl
ientCalls$GrpcFuture@68226c97[status=PENDING, info=[GrpcFuture{clientCall={delegate={delegate=ClientCallImpl{method=MethodDescriptor{fullMet
hodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=com.alibaba.nacos.shaded.io
.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@7add5b19, responseMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUt
ils$MessageMarshaller@a1c659e, schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpc$RequestMethodDescriptorSupplier@2517bae6}}}}}]]
        at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:508)
        at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.serverCheck(GrpcClient.java:192)
        at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.connectToServer(GrpcClient.java:302)
        at com.alibaba.nacos.common.remote.client.RpcClient.reconnect(RpcClient.java:521)
        at com.alibaba.nacos.common.remote.client.RpcClient.lambda$start$2(RpcClient.java:369)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(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:748)
        [2023-04-05 19:33:09.206] [INFO ] [com.alibaba.nacos.client.remote.worker] c.a.n.c.r.client.printIfInfoEnabled [LoggerUtils.java:60] - [d6f69698-6284-4758-9812-163aea9a1cd6] Fail to connect server, after trying 5 times, last try server is {serverIp = '**.*.*.***', server main port = 8848}, error = unknown
[2023-04-05 19:33:10.828] [ERROR] [com.alibaba.nacos.client.naming.updater.1] c.a.n.c.r.client.printIfErrorEnabled [LoggerUtils.java:99] - Send request fail, request = ServiceQueryRequest{headers={app=unknown}, requestId='null'}, retryTimes = 0, errorMessage = Client not connected, current status:UNHEALTHY
[2023-04-05 19:33:10.928] [ERROR] [com.alibaba.nacos.client.naming.updater.1] c.a.n.c.r.client.printIfErrorEnabled [LoggerUtils.java:99] - Send request fail, request = ServiceQueryRequest{headers={app=unknown}, requestId='null'}, retryTimes = 1, errorMessage = Client not connected, current status:UNHEALTHY
[2023-04-05 19:33:11.029] [ERROR] [com.alibaba.nacos.client.naming.updater.1] c.a.n.c.r.client.printIfErrorEnabled [LoggerUtils.java:99] - Send request fail, request = ServiceQueryRequest{headers={app=unknown}, requestId='null'}, retryTimes = 2, errorMessage = Client not connected, current status:UNHEALTHY
[2023-04-05 19:33:11.029] [WARN ] [com.alibaba.nacos.client.naming.updater.1] c.a.n.client.naming.run [ServiceInfoUpdateService.java:198] - [NA] failed to update serviceName: UAT_GROUP@@dfcg-contract
com.alibaba.nacos.api.exception.NacosException: Request nacos server failed: 
[NA] failed to update serviceName: UAT_GROUP@@dfcg-contract
com.alibaba.nacos.api.exception.NacosException: Request nacos server failed: 
        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:288)
        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.queryInstancesOfService(NamingGrpcClientProxy.java:168)
        at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.queryInstancesOfService(NamingClientProxyDelegate.java:110)
        at com.alibaba.nacos.client.naming.core.ServiceInfoUpdateService$UpdateTask.run(ServiceInfoUpdateService.java:185)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(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:748)
Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:UNHEALTHY
        at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:651)
        at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:631)
        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:278)
        ... 10 common frames omitted    

nacos服务异常信息:

[devuser@dev-cg-platform logs]$ grep 'Thread starvation or clock leap detected' nacos.log.2023-04-05.0 
2023-04-05 19:33:42,633 WARN HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m8s776ms847µs171ns).
[devuser@dev-cg-platform logs]$ grep 'Thread starvation or clock leap detected' nacos.log.2023-04-04.0 
2023-04-04 06:38:02,534 WARN HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m46s556ms115µs835ns).
[devuser@dev-cg-platform logs]$ grep 'Thread starvation or clock leap detected' nacos.log.2023-04-03.0 
2023-04-03 13:00:45,036 WARN HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=45s336ms970µs889ns).
[devuser@dev-cg-platform logs]$ grep 'Thread starvation or clock leap detected' nacos.log.2023-04-02.0 
2023-04-02 23:30:59,155 WARN HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m20s824ms191µs759ns).
[devuser@dev-cg-platform logs]$ grep 'Thread starvation or clock leap detected' nacos.log.2023-04-01.0
2023-04-01 20:07:07,371 WARN HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m12s612ms153µs480ns).

起初一天的异常信息没留意,然后连续查了几天发现都有一个共同点,每当nacos日志出现 Thread starvation or clock leap detected 时,子服务就会出现服务连接超时

出现问题的原因:

Nacos 是一个基于服务发现和配置管理的平台,它会定期进行一些任务,如清理无效配置等,这些任务通常是由一个叫做“housekeeper”的线程执行的。当该线程因为某些原因被阻塞或者被长时间占用时,就可能会出现 Thread starvation 或者 clock leap detected 的问题,导致 Nacos 的运行出现异常。

解决方案:

增加 housekeeper 线程数:可以通过修改 Nacos 的配置文件(如 application.properties)来增加 housekeeper 线程数,让它们能够更快地完成任务,从而减少阻塞时间。

调整 housekeeper 的执行间隔:可以根据实际情况调整 housekeeper 的执行间隔,让它们能够更加高效地执行任务,从而减少占用时间。

检查系统资源:如果系统资源(如 CPU、内存等)不足,也会导致 housekeeper 线程被阻塞或者占用过长时间。因此,可以通过监控系统资源使用情况,及时增加资源,避免出现这种问题。

升级 Nacos 版本:Nacos 的新版本通常会修复一些已知问题,因此,如果出现 Thread starvation 或者 clock leap detected 的问题,可以尝试升级 Nacos 版本,看看是否能够解决问题。

总之,避免 Thread starvation 或者 clock leap detected 的关键是确保 housekeeper 线程能够高效地执行任务,同时保证系统资源充足

配置housekeeper

在 Nacos 中,housekeeper 是用来执行定期任务的线程,如删除过期的配置信息、清理无效的缓存等。默认情况下,Nacos 中只有一个 housekeeper 线程,如果系统中的配置信息比较多,这个线程可能会出现阻塞,导致 Nacos 的性能下降。

为了解决这个问题,可以通过修改 Nacos 的配置文件(如 application.properties)来配置 housekeeper 线程的数量和执行时间间隔。具体操作如下:

配置 housekeeper 线程数量:可以通过配置项 nacos.core.thread.count 来指定 housekeeper 线程的数量。例如,将其设置为 10,则会启动 10 个 housekeeper 线程来执行定期任务。默认情况下,该值为 1,也就是只有一个 housekeeper 线程。

# 设置 housekeeper 线程数量
nacos.core.thread.count=10

配置 housekeeper 执行时间间隔:

可以通过配置项 nacos.core.task.maxTime 来指定 housekeeper 执行任务的时间间隔。例如,将其设置为 30 分钟,则每隔 30 分钟会执行一次定期任务。默认情况下,该值为 15 分钟。

# 设置 housekeeper 执行时间间隔
nacos.core.task.maxTime=30m

除了以上两个配置项外,还可以通过其他配置项来调整 housekeeper 的行为,例如:

nacos.cmdb.dumpTaskTimeInterval:dump 定时任务执行时间间隔,用于打印出定时任务执行的时间情况。
nacos.core.task.check.maxDelta:检查系统时间与 NTP 时间的最大差距,用于检测系统时间是否被篡改。
nacos.core.task.delete.task.interval:删除任务执行的时间间隔。

总之,配置 housekeeper 可以帮助优化 Nacos 的性能和稳定性,避免出现线程阻塞和性能下降等问题。文章来源地址https://www.toymoban.com/news/detail-539480.html

nacos.cmdb.dumpTaskTimeInterval 配置

# 转储外部CMDB的间隔(以秒为单位):
 nacos.cmdb.dumpTaskInterval=3600

nacos.core.task.check.maxDelta 配置

# 设置检查系统时间与 NTP 时间的最大差距
nacos.core.task.check.maxDelta=600000

nacos.core.task.delete.task.interval配置

# 设置定期清理过期数据的时间间隔
nacos.core.task.delete.task.interval=2h

到了这里,关于连接nacos异常[NA] failed to update serviceName: UAT_GROUP@@**-** NacosException: Request Exception的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nacos作为注册中心: Application failed to connect to Nacos server: “xxxx“

    1、首先排查nacos是否启动成功 2、排查nacos映射的地址是哪个 3、如果是服务之间互相引用,nacos有公共地址的,排查连接nacos配置文件的ip是否正确 4、如果nacos配置文件正确,则需要对公共的服务进行install,这样新服务才会引用到 上述问题中我遇到的是第四个情景,按照自己

    2024年01月21日
    浏览(55)
  • Nacos报错,failed to req API:/nacos/v1/ns/instance after all servers([localhost:8848]) tried: failed to

    引入依赖 application.yml 主启动类加上@EnableDiscoveryClient注解 开启Nacos服务 再次检查yml文件配置,注意缩进 我查询了很多网上的文章,最后都没有解决,后来我决定先访问 http://localhost:8848/nacos/#/login 试一下,发现Nacos报错,是跟数据库相关的,“No DataSource set”,然后我想起来之

    2024年02月15日
    浏览(35)
  • HttpClient 出现 failed to respond 异常解决

    今天碰到一个问题,httpclient 在使用线程池时,偶尔出现 NoHttpResponseException 异常。 httpclient org.apache.http.NoHttpResponseException: host:端口 failed to respond 经过一轮排查可能的原因是两个:我们属于第二个 直接原因:服务器收到请求以后,不处理直接丢弃。 实际情况: 1.当服务端由于

    2024年02月08日
    浏览(33)
  • nacos注册服务时网卡ip有误导致[网关异常处理]finishConnect(..) failed: 没有到主机的路由:

    今天本地机器测试微服务时,连接的是服务器的nacos注册本地服务,调试时报 登nacos服务台看了一下服务地址居然与ip不一致  后来看了下,原来nacos注册服务时机器如果有多个网卡,会随机使用一个网卡的ip,由于我电脑装了vmware,导致nacos注册了VMware Network Adapter VMnet1 的ip地

    2024年02月06日
    浏览(35)
  • com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance

     网上说出现的问题是由于两种原因 1、nocos未启动  我本地的nacos已经启动 2、未导入依赖 找了很久发现上边的两种情况都不是原因,而是我的配置文件中多了一个空格  

    2024年02月12日
    浏览(32)
  • docker 启动 nacos Failed to bind properties under ‘server.tomcat.basedir‘ to java.io.File 解决

    配置文件中默认为 server.tomcat.basedir= 启动时出错,解决方案给该值赋予一个存在的路径 server.tomcat.basedir=/ 重新启动即可解决问题 来源docker 按住nacos启动Failed to bind properties under \\\'server.tomcat.basedir\\\' to java.io.File: · Issue #8960 · alibaba/nacos · GitHub

    2024年02月13日
    浏览(34)
  • K8S异常之Unable to update cni config err=no vaild network found in /etc/cni/net.d

    我们在初始化k8s节点的时候,可能会遇到类似如下问题 Unable to update cni config err=no vaild network found in /etc/cni/net.d ,一般表示网络不通。 网上很多方法经过尝试都不好使。最后出现了 /opt/cni/bin/flannel permission denied (无权限读取flannel文件)的异常。 查看kubelet的状态 systemctl sta

    2024年02月17日
    浏览(44)
  • nacos报错:failed to req API:/nacos/v1/ns/instance after all servers([192.168.43.148:8848])解决方案

    前一段时间,由于宕机导致nacos服务停止,然后一直重启失败报错: failed to req API:/nacos/v1/ns/instance after all servers([192.168.43.148:8848]) tried: ErrCode:503, ErrMsg:server is DOWN now, please try again later!  贴上这个报错信息:  找了很久原因,是以为nacos服务过载。 最终使用下面的方式解决了这

    2024年02月11日
    浏览(63)
  • Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI

    详细错误信息如下: 复制代码 19/03/19 11:04:18 INFO util.log: Logging initialized @5402ms 19/03/19 11:04:18 INFO server.Server: jetty-9.3.z-SNAPSHOT 19/03/19 11:04:18 INFO server.Server: Started @5604ms 19/03/19 11:04:18 WARN util.Utils: Service ‘SparkUI’ could not bind on port 4040. Attempting port 4041. 19/03/19 11:04:18 WARN util.Utils: Se

    2024年02月13日
    浏览(28)
  • nacos服务注册地址配置(server-addr)failed to req API:/nacos/v1/ns/instance after all servers([xxxxxx])

    先贴报错 java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([http://xxxxxx.viphk.91tunnel.co]) tried: failed to req API:http://xxxxxx.viphk.91tunnel.co/nacos/v1/ns/instance. code:500 msg: java.net.UnknownHostException: xxxxxx.viphk.91tunnel.co 因为遇到上面的报错,所以才深究了一下nacos服务注册的

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包