【问题标题】:Setup kafka and zooker with Docker for development使用 Docker 设置 kafka 和 zooker 进行开发
【发布时间】:2021-07-21 05:31:49
【问题描述】:

我正在尝试设置 Kafka 和 zookeeper 以进行开发,我正在关注this tutorial

version: "3"
services:
  zookeeper:
    image: 'bitnami/zookeeper:latest'
    ports:
      - '2181:2181'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
  kafka-src:
    image: 'bitnami/kafka:latest'
    ports:
      - '9092:9092'
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_LISTENERS=PLAINTEXT://:9092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
    depends_on:
      - zookeeper
  kafka-dst:
    image: 'bitnami/kafka:latest'
    ports:
      - '9093:9093'
    environment:
      - KAFKA_BROKER_ID=2
      - KAFKA_LISTENERS=PLAINTEXT://:9093
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9093
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
    depends_on:
      - zookeeper

但是当我执行docker-compose up 时,我收到了错误Connection to node 2 (/127.0.0.1:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

我的总体目标是能够为开发环境设置 kafka。

谢谢

【问题讨论】:

  • 不清楚返回该错误的原因。只有一个经纪人可以吗?

标签: docker apache-kafka docker-compose apache-zookeeper


【解决方案1】:

似乎在重命名变量时,README 的那部分没有更新(我不知道他们为什么这样做)

变量现在以KAFKA_CFG 开头,如页面的其他部分所示,这可能解释了为什么您从默认值覆盖的侦听器属性不起作用。

This section 我写的是正确的

注意,repo 中已经有一个集群文件 - https://github.com/bitnami/bitnami-docker-kafka/blob/master/docker-compose-cluster.yml

但是,单台机器是单点故障,因此在一个组合文件中包含两个代理不会有助于提高弹性或吞吐量。特别是因为您尚未将内部主题配置为具有超过 1 的默认复制因子

【讨论】:

    【解决方案2】:

    我认为 zookeeper 找不到 kafka 和 kafka 找不到 zookeeper 因为 localHost 名称冲突 如果使用这种方式使用 Ubuntu OS?如果 Ubuntu 我认为您需要从 /etc/hosts 更改设置主机

    看这个链接http://manpages.ubuntu.com/manpages/bionic/man5/hosts.5.html

    这就是灵魂

    [your ip Address] [local Host]
    140...1           localhost
    140...1           abed-Inspiron-5593
    140...1           release.gitkraken.com
    140...1           mysql
    140...1           eurekaserver
    140...1           keycloak
    140...1           kafka
    140...1           zookeeper
    

    【讨论】:

    • 请不要建议编辑hosts文件来解决这个问题。正确的方法是了解 Kafka 如何在网络上宣传自己
    • 您必须更新主机文件,因为 Zookeeper 无法显示 kafka 的 localhost
    • 在这种情况下,我有很多本地主机并且具有相同的名称本地主机如果不更新本地主机名称,动物园管理员如何选择正确的本地主机
    • 不,伙计。那没有意义。如果我删除两个 kafka 实例之一,一切都会得到解决而无需触及主机文件
    • 听起来你不明白advertised.listeners正确@Abdalrhman
    猜你喜欢
    • 2019-11-03
    • 2023-04-06
    • 2019-06-27
    • 2020-07-19
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多