首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我要用码头形象“合流/卡夫卡”到卡夫卡集群?

为什么我要用码头形象“合流/卡夫卡”到卡夫卡集群?
EN

Stack Overflow用户
提问于 2020-01-06 09:35:39
回答 1查看 2.5K关注 0票数 1

我做到了

代码语言:javascript
复制
docker-compose up

因为卡夫卡聚集在我的本地。

每当我想要制作主题时,检索我拥有的主题或搜索存储在我使用的主题中的数据。

代码语言:javascript
复制
docker run --net=host --rm confluentinc/cp-kafka:latest kafka-topics --describe --topic bar --zookeeper localhost:32181

这是在官方的kafka集群部署站点上。

不过,我真的很想在我当地的仓库里使用卡夫卡,而不是卡夫卡码头的形象。

代码语言:javascript
复制
kafka-topics --describe --topic bar --zookeeper localhost:32181

如果我使用上面的代码,我将面临这个错误。

代码语言:javascript
复制
Exception in thread "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
        at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:258)

此外,如果我检查netstat -anp tcp,就没有来自集群的侦听端口。

我该怎么办?请让我知道我现在对码头缺少了什么(因为我对码头很陌生)。

这是yaml配置

代码语言:javascript
复制
---
version: '2'
services:
  zookeeper-1:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_CLIENT_PORT: 22181
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
      ZOOKEEPER_SERVERS: localhost:22888:23888;localhost:32888:33888;localhost:42888:43888
    network_mode: host
    extra_hosts:
      - "moby:127.0.0.1"

  zookeeper-2:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_SERVER_ID: 2
      ZOOKEEPER_CLIENT_PORT: 32181
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
      ZOOKEEPER_SERVERS: localhost:22888:23888;localhost:32888:33888;localhost:42888:43888
    network_mode: host
    extra_hosts:
      - "moby:127.0.0.1"

  zookeeper-3:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_SERVER_ID: 3
      ZOOKEEPER_CLIENT_PORT: 42181
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
      ZOOKEEPER_SERVERS: localhost:22888:23888;localhost:32888:33888;localhost:42888:43888
    network_mode: host
    extra_hosts:
      - "moby:127.0.0.1"

  kafka-1:
    image: confluentinc/cp-kafka:latest
    network_mode: host
    depends_on:
      - zookeeper-1
      - zookeeper-2
      - zookeeper-3
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: localhost:22181,localhost:32181,localhost:42181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:19092
    extra_hosts:
      - "moby:127.0.0.1"

  kafka-2:
    image: confluentinc/cp-kafka:latest
    network_mode: host
"docker-compose.yml" 83L, 2321C
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-06 20:05:26

如果你是运行卡夫卡(和动物园管理员)在你的主机,那么,不,你根本不需要码头。

您不应该在容器的任何连接字符串中使用localhost,而应该使用容器的外部服务名称并从配置中删除network_mode

注意:一台机器上的多个代理/动物园管理员帮不了什么忙。

主题中存储的

或搜索数据

你不应该让动物园管理员这么做

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

https://stackoverflow.com/questions/59609677

复制
相关文章

相似问题

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