Kafka制作人说“未知的主题或分区”

lhcgjxsq  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(405)

我已经试着让Kafka Docker 工作了几天了,我不知道我做错了什么。现在,我无法使用ruby kafka客户端访问任何主题,因为节点“不存在”。这是我的docker-compose.yml文件:

version: '2'
services:
  zookeeper:
   image: wurstmeister/zookeeper
   ports:
     - "2181:2181"
  kafka:
    image: wurstmeister/kafka:0.9.0.1
    ports:
      - "9092:9092"
    links:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  kafka2:
    image: wurstmeister/kafka:0.9.0.1
    ports:
      - "9093:9092"
    links:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
      KAFKA_ADVERTISED_PORT: 9093
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  kafka3:
    image: wurstmeister/kafka:0.9.0.1
    ports:
      - "9094:9092"
    links:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
      KAFKA_ADVERTISED_PORT: 9094
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

我指定“kafka\u auto\u create\u topics\u enable:'false'”是因为我想手动创建主题,所以我在第一个代理容器中输入以下内容:
./kafka-topics.sh--create--zookeeper 172.19.0.2:2181--topic test1--partitions 4--复制因子3
一切似乎都很好:
./kafka-topics.sh--list--zookeeper 172.19.0.2:2181->test1
但是,当我尝试这样做时:
./kafka-console-producer.sh—代理列表localhost:9092 --topic 测试1
上面写着:
获取相关id为24的元数据时出现警告错误:{test1=unknown\u topic\u or\u partition}(org.apache.kafka.clients.networkclient)
如果我再创建一次主题,它会说它已经存在了,所以我不知道发生了什么。

fcwjkofz

fcwjkofz1#

您需要正确地进行网络配置,因为kafka可以跨主机工作,并且需要能够访问所有主机。
这篇文章对此进行了详细的解释。
您可能还想引用https://github.com/confluentinc/cp-docker-images/blob/5.0.0-post/examples/cp-all-in-one/docker-compose.yml 例如一个正在工作的docker compose。

xt0899hw

xt0899hw2#

所以我们在与Kafka连线合作时遇到了这个问题。有多种解决办法。删除所有docker映像,或者在connect映像的connect配置中更改组id,如下所示below:-

image: debezium/connect:1.1
    ports:
      - 8083:8083
    links:
      - schema-registry
    environment:
      - BOOTSTRAP_SERVERS=kafkaanalytics-mgmt.fptsinternal.com:9092
      - GROUP_ID=1
      - CONFIG_STORAGE_TOPIC=my_connect_configs
      - OFFSET_STORAGE_TOPIC=my_connect_offsets
      - STATUS_STORAGE_TOPIC=my_connect_statuses
      - INTERNAL_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter
      - INTERNAL_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter

相关问题