マイクロサービス プロジェクトがデプロイされた後、Nacos サービスに接続できず、「サーバー チェックに失敗しました」というエラーが報告されます。

プロジェクトのシナリオ:

docker を使用してマイクロサービスをデプロイして起動すると、nacos に接続できないことが判明し、マイクロサービスが nacos を読み取れずにエラーが報告され、起動に失敗しました。


問題の説明

cancremote.client.grpc.GrpcClient : サーバー チェックに失敗しました。サーバー XXX.X.XXX.XXX を確認してください。ポート XXX は利用可能です。エラー ={}

java.util.concurrent.TimeoutException: com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls$GrpcFuture@442675e1[status=PENDING, info=[GrpcFuture{clientCall={ delegate={delegate=ClientCallImpl{method=MethodDescriptor{fullMethodName=リクエスト/リクエスト、type=UNARY、idempotent=false、safe=false、sampledToLocalTracing=true、requestMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite .ProtoLiteUtils$MessageMarshaller@6166e06f、responseMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@49e202ad、schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpc$RequestMethodDescriptorSupplier@1c72 da34 }}}}}]]


原因分析:

マイクロサービスを起動するとNacosにサービス情報が登録されますが、Nacosサービス登録用IPを選択すると内部ネットワークIPとして登録されるよう選択されるため、マイクロサービスが公開するパブリックIPポートとは通信できません。ホストが存在し、nacos. に接続して登録できないため、サービスの開始に失敗します。


解決:

1. サービス インスタンスがパブリック IP であることを宣言します。

spring:
  cloud:
    nacos:
      discovery:
        #你的服务器公网IP
        ip: XXX.X.X.XXX 

2.ホストモードを採用する

ホストの IP アドレスを使用するには、起動コマンドに--net=hostを追加します。

docker run --name XXXX --net=host 

おすすめ

転載: blog.csdn.net/weixin_40579395/article/details/127009240
おすすめ