• [Nacos][Rancher][微服务] 容器化Docker部署的Nacos拒接连接


    问题

    2022-11-21 16:16:37.836 |-ERROR [main] com.alibaba.nacos.client.naming [552] -|   request: /nacos/v1/ns/instance failed, servers: [localhost:8848], code: 500, msg: Connection refused (Connection refused)
    2022-11-21 16:16:37.837 |-ERROR [main] com.alibaba.cloud.nacos.registry.NacosServiceRegistry [80] -|   nacos registry, quick-user-service register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='localhost:8848', endpoint='', namespace='aef02670-f003-419a-b20b-496f2536dd1d', watchDelay=30000, logName='', service='quick-user-service', weight=1.0, clusterName='DEFAULT', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='61.52.197.170', networkInterface='', port=5720, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null, failFast=true}},
    com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance after all servers([localhost:8848]) tried: java.net.ConnectException: Connection refused (Connection refused)
    
    
    • 1
    • 2
    • 3
    • 4
    2022-11-21 16:16:37.815 |-ERROR [main] com.alibaba.nacos.client.naming [617] -|   [NA] failed to request
    java.net.ConnectException: Connection refused (Connection refused)
    
    • 1
    • 2

    项目背景

    微服务项目部署
    有gateway项目、user-service项目和公共common项目
    通过打包jar文件,在build成镜像,最后通过rancher启动服务

    问题分析

    1、遇到此问题百度说nacos未启动造成的。

    排查了服务器的端口8848启动着。
    又有说Docker 部署的nacos没有使用宿主机网段。
    我使用的以下命令部署的

    docker run --env MODE=standalone --name
    docker-nacos -d -p 8848:8848  nacos/nacos-
    server
    
    • 1
    • 2
    • 3

    并且nacos使用外网(公网网段)能够访问到nacos服务,并且能够正常操作。因此排除此问题。问应该出现在微服务上面。
    在这里插入图片描述

    2、当时初步怀疑是我的Maven子项目打包之后并未加载common包项目引用的nacos配置包

    参考】(因为我的spring nacos引包在common中)。所以一路开始找“Maven父子模块相互引用问题”上面。

    参考1
    参考2
    参考3
    最后发现并不是这样的。所以我怀疑是不是我的boostrap.yml出问题了

    3、boostrap.yml 文件

    初始版本的

    spring:
      application:
        name: quick-user-service
      main:
        allow-bean-definition-overriding: true
      cloud:
        nacos:
          config:
            server-addr: 120.212.92.71:8848 #Nacos配置中心地址
            file-extension: yaml #文件拓展格式
            password: 123456
            username: nacos
            group: DEFAULT_GROUP
            extension-configs: ${spring.application.name}.yaml
            namespace: aef02670-f003-419a-b20b-496f2536dd1d
            shared-configs: application.yaml
          # 因为是Docker容器化部署的,所以改成本机对外ip(百度搜索”ip查询“复制查询到的ip地址)
          discovery:
            ip: 61.52.197.170
            namespace: aef02670-f003-419a-b20b-496f2536dd1d
    
      profiles:
        active: prod
    server:
      port: 5720
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    然后还是会报nacos拒绝链接的问题

    2022-11-21 16:16:37.815 |-ERROR [main] com.alibaba.nacos.client.naming [617] -|   [NA] failed to request
    java.net.ConnectException: Connection refused (Connection refused)
    
    
    2022-11-21 16:16:40.788 |-ERROR [com.alibaba.nacos.client.naming.updater] com.alibaba.nacos.client.naming [552] -|   request: /nacos/v1/ns/instance/list failed, servers: [localhost:8848], code: 500, msg: Connection refused (Connection refused)
    2022-11-21 16:16:40.788 |-WARN  [com.alibaba.nacos.client.naming.updater] com.alibaba.nacos.client.naming [488] -|   [NA] failed to update serviceName: DEFAULT_GROUP@@quick-user-service
    com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance/list after all servers([localhost:8848]) tried: java.net.ConnectException: Connection refused (Connection refused)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    正确版本:

    spring:
      application:
        name: quick-user-service
      main:
        allow-bean-definition-overriding: true
      cloud:
        nacos:
          server-addr: 120.212.92.71:8848 #Nacos配置中心地址
          password: 123456
          username: nacos
          config:
            file-extension: yaml #文件拓展格式
            group: DEFAULT_GROUP
            extension-configs: ${spring.application.name}.yaml
            namespace: aef02670-f003-419a-b20b-496f2536dd1d
            shared-configs: application.yaml
          # 因为是Docker容器化部署的,所以改成本机对外ip(百度搜索”ip查询“复制查询到的ip地址)
          discovery:
            ip: 61.52.197.170
            namespace: aef02670-f003-419a-b20b-496f2536dd1d
    
      profiles:
        active: prod
    server:
      port: 5720
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • server-addr
    • password
    • username

    放到nacos下层和config上层的位置。
    具体的我也不清楚。。。。
    初始版本的情况下,使用本地的nacos链接没啥问题的。

  • 相关阅读:
    MySQL运维10-Mycat分库分表之一致性哈希分片
    如何清理mac的存储空间
    【小程序】页面跳转
    PostgreSQL 10.23 安装图文教程
    神经网络的三种训练方法,神经网络训练速度
    SpringBoot项目创建
    HTML期末学生大作业:中华传统文化【苏绣手工艺】带psd设计图(15页)
    【ROS2要素】xml、GDF、URDF的关系
    Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)
    【11】使用透视投影建立一个3D空间的测试
  • 原文地址:https://blog.csdn.net/qq_27695659/article/details/127967222