首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >feign.RetryableException:连接拒绝(连接拒绝)执行GET

feign.RetryableException:连接拒绝(连接拒绝)执行GET
EN

Stack Overflow用户
提问于 2022-03-22 12:48:36
回答 1查看 4.1K关注 0票数 1

我正在研究一个核心的银行解决方案。我有两个微服务,叫做帐户-cmd服务和客户服务。我一直在尝试使用FeignClient从客户服务中获取用户id .开发环境没有问题,但码头方面有问题。

我一直试图将docker-come.yml文件中的spring.feign.customer.client属性重写为http://customer-service:5000/.

我如何连接客户服务?

代码语言:javascript
运行
复制
    {
      "message": "Error while processing - feign.RetryableException: Connection refused (Connection refused) executing GET http://localhost:5000/api/v1/customer/get/1.",
      "id": "21d65b99-c85f-44ff-9763-ed82ff1c39cc"
    }

这是我的ICustomerService,用来找一个客户。

代码语言:javascript
运行
复制
    @Service
    @FeignClient(name = "customer-service", url = "${spring.feign.customer.client}")
    public interface ICustomerService {

        @GetMapping("/api/v1/customer/get/{customerId}")
        Object getCustomerById(@PathVariable Long customerId);
    }

这是帐户-cmd-服务的application.properties。

代码语言:javascript
运行
复制
    server.port=5002

    #Mongo Config
    spring.data.mongodb.host=localhost
    spring.data.mongodb.port=27017
    spring.data.mongodb.database=accountcmdb

    # RabbitMQ Setup
    spring.rabbitmq.host=localhost
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=guest
    spring.rabbitmq.password=guest

    feign.client.config.default.connectTimeout=160000000
    feign.client.config.default.readTimeout=160000000

    spring.feign.customer.client = http://localhost:5000/

下面是docker-compose.yml文件实现。

代码语言:javascript
运行
复制
    version: "3.4"

    services:

      customerdb:
        container_name: customerdb
        image: postgres
        environment:
         POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
         POSTGRES_USER: ${POSTGRES_USER:-postgres}
        volumes:
          - ./customer/postgres_init.sql:/docker-entrypoint-initdb.d/postgres_init.sql
        ports:
          - "5432:5432"
        restart: unless-stopped

      querydb:
        container_name: querydb
        image: postgres
        environment:
          POSTGRES_USER: ${POSTGRES_USER:-postgres}
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
        volumes:
          - ./account.query/postgres_init.sql:/docker-entrypoint-initdb.d/postgres_init.sql
        ports:
          - "5433:5432"
        restart: unless-stopped

      rabbitmq:
        container_name: "bank_rabbitmq"
        image: "rabbitmq:3.8-management"
        hostname: "rabbitmq"
        environment:
          RABBITMQ_DEFAULT_USER: "guest"
          RABBITMQ_DEFAULT_PASS: "guest"
          RABBITMQ_DEFAULT_VHOST: "/"
        ports:
          - "15672:15672"
          - "5672:5672"

      cmddb:
        container_name: "cmddb"
        image: mongo
        restart: always
        ports:
            - "27017:27017"

      customer-service:
        image: bank/customer-service-api
        container_name: customer-service
        build:
          context: ./customer
          dockerfile: Dockerfile
        ports:
          - "5000:5000"
        depends_on:
          - customerdb
        environment:
          - SPRING_DATASOURCE_URL=jdbc:postgresql://customerdb:5432/customerdb
          - SPRING_DATASOURCE_USERNAME=postgres
          - SPRING_DATASOURCE_PASSWORD=postgres

      account-cmd:
        image: bank/account-cmd-service-api
        container_name: account-cmd-service
        build:
          context: ./account.cmd
          dockerfile: Dockerfile
        ports:
          - "5002:5002"
        depends_on:
          - cmddb
          - rabbitmq
        environment:
          - SPRING_DATA_MONGODB_HOST=cmddb
          - SPRING_DATA_MONGODB_PORT=27017
          - SPRING_DATA_MONGODB_DATABASE=accountcmdb
          - SPRING_RABBITMQ_HOST=rabbitmq
          - SPRING_RABBITMQ_PORT=5672
          - SPRING_RABBITMQ_USERNAME=guest
          - SPRING_RABBITMQ_PASSWORD=guest
          - SPRING_FEIGN_CUSTOMER_CLIENT=http://customer-service:5000/

      account-query:
        image: bank/account-query-service-api
        container_name: account-query-service
        build:
          context: ./account.query
          dockerfile: Dockerfile
        ports:
          - "5003:5003"
        depends_on:
          - querydb
          - rabbitmq
        environment:
          - SPRING_DATASOURCE_URL=jdbc:postgresql://querydb:5433/accountingdb
          - SPRING_DATASOURCE_USERNAME=postgres
          - SPRING_DATASOURCE_PASSWORD=postgres
          - SPRING_RABBITMQ_HOST=rabbitmq
          - SPRING_RABBITMQ_PORT=5672
          - SPRING_RABBITMQ_USERNAME=guest
          - SPRING_RABBITMQ_PASSWORD=guest

    volumes:
      customerdb:
      cmddb:
      querydb:
EN

回答 1

Stack Overflow用户

发布于 2022-03-23 08:23:21

这个问题已经解决了,通过将容器放在同一个网络中的码头-合成文件。

代码语言:javascript
运行
复制
    version: "3.4"

    services:

      customerdb:
        container_name: customerdb
        image: postgres
        environment:
         POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
         POSTGRES_USER: ${POSTGRES_USER:-postgres}
        volumes:
          - ./customer/postgres_init.sql:/docker-entrypoint-initdb.d/postgres_init.sql
        ports:
          - "5432:5432"
        restart: unless-stopped
        networks:
          - host

      querydb:
        container_name: querydb
        image: postgres
        environment:
          POSTGRES_USER: ${POSTGRES_USER:-postgres}
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
        volumes:
          - ./account.query/postgres_init.sql:/docker-entrypoint-initdb.d/postgres_init.sql
        ports:
          - "5433:5432"
        restart: unless-stopped
        networks:
          - host

      rabbitmq:
        container_name: "bank_rabbitmq"
        image: "rabbitmq:3.8-management"
        hostname: "rabbitmq"
        environment:
          RABBITMQ_DEFAULT_USER: "guest"
          RABBITMQ_DEFAULT_PASS: "guest"
          RABBITMQ_DEFAULT_VHOST: "/"
        ports:
          - "15672:15672"
          - "5672:5672"
        networks:
          - host

      cmddb:
        container_name: "cmddb"
        image: mongo
        restart: always
        ports:
            - "27017:27017"
        networks:
          - host

      customer-service:
        image: bank/customer-service-api
        container_name: customer-service
        build:
          context: ./customer
          dockerfile: Dockerfile
        ports:
          - "5000:5000"
        depends_on:
          - customerdb
        environment:
          - SPRING_DATASOURCE_URL=jdbc:postgresql://customerdb:5432/customerdb
          - SPRING_DATASOURCE_USERNAME=postgres
          - SPRING_DATASOURCE_PASSWORD=postgres
        networks:
          - host

      account-cmd:
        image: bank/account-cmd-service-api
        container_name: account-cmd-service
        build:
          context: ./account.cmd
          dockerfile: Dockerfile
        ports:
          - "5002:5002"
        depends_on:
          - cmddb
          - rabbitmq
        environment:
          - SPRING_DATA_MONGODB_HOST=cmddb
          - SPRING_DATA_MONGODB_PORT=27017
          - SPRING_DATA_MONGODB_DATABASE=accountcmdb
          - SPRING_RABBITMQ_HOST=rabbitmq
          - SPRING_RABBITMQ_PORT=5672
          - SPRING_RABBITMQ_USERNAME=guest
          - SPRING_RABBITMQ_PASSWORD=guest
          - SPRING_FEIGN_CUSTOMER_CLIENT=http://customer-service:5000/
        networks:
          - host

      account-query:
        image: bank/account-query-service-api
        container_name: account-query-service
        build:
          context: ./account.query
          dockerfile: Dockerfile
        ports:
          - "5003:5003"
        depends_on:
          - querydb
          - rabbitmq
        environment:
          - SPRING_DATASOURCE_URL=jdbc:postgresql://querydb:5432/accountingdb
          - SPRING_DATASOURCE_USERNAME=postgres
          - SPRING_DATASOURCE_PASSWORD=postgres
          - SPRING_RABBITMQ_HOST=rabbitmq
          - SPRING_RABBITMQ_PORT=5672
          - SPRING_RABBITMQ_USERNAME=guest
          - SPRING_RABBITMQ_PASSWORD=guest
        networks:
          - host

      k6:
        container_name: k6_container
        image: loadimpact/k6:latest
        volumes:
          - ./load-testing:/scripts
        ports:
          - "6565:6565"
        networks:
          - host

    networks:
      host:
        driver: bridge

    volumes:
      customerdb:
      cmddb:
      querydb:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71572351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档