SpringCloud集成Nacos:Server check fail, please check server localhost ,port 9848 is available

问题描述

将nacos和微服务都使用docker容器化部署到服务器上时,遇到nacos客户端测不断报连接超时的异常,但服务的功能仍然可以正常实现。大量重复的报错信息充满日志,淹没了正常的日志信息。

报错内容如下:

01-10 23:02:32:732  INFO 13648 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
01-10 23:02:34:815  INFO 13648 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available
01-10 23:02:34:815  WARN 13648 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/adminservice/default": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
01-10 23:02:34:840  INFO 13648 --- [           main] v1no.odfm_admin.AdminApplication         : No active profile set, falling back to default profiles: default
01-10 23:02:35:036 ERROR 13648 --- [t.remote.worker] c.a.n.c.remote.client.grpc.GrpcClient    : Server check fail, please check server localhost ,port 9848 is available , error ={}

java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 8 milliseconds, 358800 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls$GrpcFuture@45e1782d[status=PENDING, info=[GrpcFuture{clientCall=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@b09fac1, responseMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@62df0ff3, schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpc$RequestMethodDescriptorSupplier@61019f59}}}]]
	at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:508) ~[nacos-client-2.2.0.jar:na]
	at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.serverCheck(GrpcClient.java:196) [nacos-client-2.2.0.jar:na]
	at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.connectToServer(GrpcClient.java:307) [nacos-client-2.2.0.jar:na]
	at com.alibaba.nacos.common.remote.client.RpcClient.reconnect(RpcClient.java:498) [nacos-client-2.2.0.jar:na]
	at com.alibaba.nacos.common.remote.client.RpcClient.lambda$start$2(RpcClient.java:339) [nacos-client-2.2.0.jar:na]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_202]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_202]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_202]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_202]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202]

解决方案

废话放在最后,直接先上解决方法:

添加bootstrap.yml文件,禁用spring cloud自带的配置中心,配置nacos配置中心的地址及端口

spring:
  application:
    name: xxxx  # 服务名称
  profiles:
    active: dev

  cloud:
    config:
      enabled: false  # 禁用默认的spring cloud config
    nacos:
      config:
        server-addr: xx.xx.xx.xx:xx  # nacos地址及端口
        file-extension: yml

位置

和application.yml并列

参考链接:服务器已经开放8848、9848、9849端口,依然出现:Server check fail, please check server localhost ,port 9848 is available , error ={} · Issue #7893 · alibaba/nacos · GitHub

分析过程

先以‘nacos连接超时’在网上搜到的相关信息,都是建议检查服务器安全组是否开放9848端口,和我遇到的问题内容并不相符。从报错信息来看,程序是在请求localhost的9848端口时抛出了异常,在application.yml中配置的nacos地址没有完全生效(部分生效了,可以正常提供服务)。

仔细检查报错信息,发现报错实际上是从‘Fetching config from server at : http://localhost:8888’开始的,这一句是spring cloud config的默认执行流程,并不符合我的预期,后续nacos访问localhost:9848并不是在服务注册与发现,而是在向配置中心请求配置文件,说明nacos配置中心没有正常配置。

基于以上结论,可以知道需要在bootstrap.yml文件中禁用默认的spring cloud config并正确配置nacos配置中心的信息。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值