首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KafkaJS:尝试生成主题消息时的ECONNREFUSED

KafkaJS:尝试生成主题消息时的ECONNREFUSED
EN

Stack Overflow用户
提问于 2020-10-25 00:32:53
回答 1查看 1.2K关注 0票数 2

我正在使用KafkaJS生成一条关于卡夫卡主题的消息。为此,我使用wurstmeister镜像将Kafka服务器放在Docker中。

我想做的是:Poll容器向Poll主题生成一条消息,并使用来自responsePoll主题的消息。但我在尝试生成消息时出现错误

错误:poll | {"level":"ERROR","timestamp":"2020-10-24T15:21:27.113Z","logger":"kafkajs","message":"[Connection] Connection error: connect ECONNREFUSED 127.0.0.1:9092","broker":"127.0.0.1:9092","clientId":"BlueOriginX","stack ":"Error: connect ECONNREFUSED 127.0.0.1:9092\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1145:16)"}

下面是docker-compose.yml文件:

代码语言:javascript
复制
version: '3.4'
services:
  poll:
    container_name: poll
    build: ./Services/Poll
    ports:
      - "4003:4003"
    networks:
      - blueorigin

  zookeeper:
    image: wurstmeister/zookeeper:latest
    ports:
      - "2181:2181"
    networks:
      - blueorigin
  kafka:
    image: wurstmeister/kafka:2.11-1.1.1
    ports:
      - "9092:9092"
    links:
      - zookeeper
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_DELETE_TOPIC_ENABLE: 'true'
      KAFKA_CREATE_TOPICS: "Poll:1:1,responsePoll:1:1"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - blueorigin

networks:
  blueorigin:

我想这个错误来自我的docker设置,但我不知道:/

编辑:以下是生成消息的代码:

代码语言:javascript
复制
const startPoll = async () =>{
    const producer = kafka.producer()

    await producer.connect()
    await producer.send({
        topic: 'Poll',
        messages: [
            { value: 'New Poll' },
        ],
    })

    await producer.disconnect()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-25 02:26:05

我没有你的投票应用程序,所以我用Confluent Rest代理替换了它,但这个设置可以工作。我可以在这里看到http://localhost:8086/topics的主题。

代码语言:javascript
复制
version: '3.4'
services:
  restproxy:
    image: confluentinc/cp-kafka-rest:latest
    ports:
      - "8086:8086"
    environment:
      KAFKA_REST_HOST_NAME: restproxy
      KAFKA_REST_BOOTSTRAP_SERVERS: PLAINTEXT://kafka:9092
      KAFKA_REST_LISTENERS: http://0.0.0.0:8086

  zookeeper:
    image: wurstmeister/zookeeper:latest
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka:2.11-1.1.1
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_DELETE_TOPIC_ENABLE: 'true'
      KAFKA_CREATE_TOPICS: "test:1:1"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

你不需要链接和网络,它们是遗留的。此外,当您尝试从一个服务连接到另一个服务时,使用localhost将不起作用,这可能就是它对您无效的原因。

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

https://stackoverflow.com/questions/64515647

复制
相关文章

相似问题

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