当前位置: 首页 > 知识库问答 >
问题:

ConFluent模式注册表无法连接到Kafka容器

易烨磊
2023-03-14

我试图运行Kafka服务与Zookeper,Kafdrop和模式注册表,我使它的工作安装Kafka,Zookeper和Kadrop在一个容器,然后安装合流模式注册表在另一个(与自己的Kafka,Zoowatch,Ksql服务器和Rest代理),然而尝试要使kafdrop读取模式注册表不工作,所以现在我想只安装一个容器与Kafka,Zoowatch,Kafdrop和模式注册表,即使一切都成功安装,模式注册表是重新启动每10秒左右,我不能联系服务(localhost:8085)来添加我的模式,所以我想知道是否有可能在融合服务套件之外运行融合模式注册表,这是我的YAML文件:

version: '2'
services:
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=127.0.0.1
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=INTERNAL://:29092,EXTERNAL://:9092
      - KAFKA_ADVERTISED_LISTENERS=INTERNAL://kafka:29092,EXTERNAL://localhost:9092
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=INTERNAL
      - KAFKA_SCHEMA_REGISTRY_URL=schemaregistry:8085
    depends_on:
      - zookeeper

  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=zookeeper
   
  schemaregistry:
    image: confluentinc/cp-schema-registry:6.2.0
    restart: always
    depends_on:
      - zookeeper
    environment:
      SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: "zookeeper:2181"
      SCHEMA_REGISTRY_HOST_NAME: schemaregistry
      SCHEMA_REGISTRY_LISTENERS: "http://0.0.0.0:8085"
    ports:
      - 8085:8085

  kafdrop:
    image: obsidiandynamics/kafdrop
    container_name: kafdrop
    restart: "no"
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "kafka:29092"
      JVM_OPTS: "-Xms16M -Xmx48M -Xss180K -XX:-TieredCompilation -XX:+UseStringDeduplication -noverify"
      SCHEMAREGISTRY_CONNECT: schemaregistry:8085
    depends_on:
      - "kafka"

共有2个答案

薛钧
2023-03-14

你的两个YAML是不正确的你有在动物园管理员:KAFKA_ADVERTISED_HOST_NAME

在模式注册表中,您在kafkastore中提供zookeeper端口2181。。。。

刘焱
2023-03-14

因此,事实证明,架构注册表无法连接,因为Kafka没有使用PLAINTEXT作为内部代理侦听器名称,以下是与Kafdrop一起工作的YAML版本,在反序列化消息到AVRO时也在工作:

version: '2'
services:
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=127.0.0.1
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=PLAINTEXT://:29092,EXTERNAL://:9092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:29092,EXTERNAL://localhost:9092
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      - KAFKA_SCHEMA_REGISTRY_URL=schemaregistry:8085

    depends_on:
      - zookeeper

  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=zookeeper
   
  schemaregistry:
    image: confluentinc/cp-schema-registry:6.2.0
    restart: always
    depends_on:
      - zookeeper
    environment:
      SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: "zookeeper:2181"
      SCHEMA_REGISTRY_HOST_NAME: schemaregistry
      SCHEMA_REGISTRY_LISTENERS: "http://0.0.0.0:8085"
    ports:
      - 8085:8085

  kafdrop:
    image: obsidiandynamics/kafdrop
    container_name: kafdrop
    restart: "no"
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "kafka:29092"
      JVM_OPTS: "-Xms16M -Xmx48M -Xss180K -XX:-TieredCompilation -XX:+UseStringDeduplication -noverify"
      SCHEMAREGISTRY_CONNECT: http://schemaregistry:8085
    depends_on:
      - "kafka"
 类似资料:
  • 下载confluent open source 3.3后在命令行做一个简单的实验: 合流启动-启动所有服务时不会出现任何可见错误:

  • 我有一个Kafka主题,我想用AVRO数据(目前是JSON)来填充它。我知道“正确”的方法是使用模式注册表,但出于测试目的,我想让它在没有它的情况下工作。 因此,我将AVRO数据作为数组[字节]发送,而不是常规的Json对象: 模式是在每个数据中启动的;我如何使它与kafka-connect一起工作?kafka-connect配置目前表现出以下属性(数据作为json.gz文件写入s3),我想编写P

  • 我无法将模式注册表连接到MSK。我在一个单独的实例中运行Docker,并启用了到MSK服务的连接。 尝试了confluent docker.io/confluentinc/cp模式注册表中的docker映像:最新。 使用低于以下SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL连接时遇到的错误 还尝试用SCHEMA _ REGISTRY _ KAFKASTORE _

  • 分布式服务已成功启动:[2021 10月17日18:04:29693]信息已启动o.e.j.s.ServletContextHandler@1422ac7f{/,null,AVAILABLE}(org.eclipse.jetty.server.handler.ContextHandler:916)[2021 10月17日18:04:29693]初始化信息REST资源;服务器已启动并准备好处理请求(

  • 我试图用函数编程(和spring cloud stream)转换来自输入主题的输入AVRO消息,并在输出主题上发布新消息。下面是我的转换函数: 我的spring boot应用程序是以这种方式声明的,并激活了模式注册表客户机: 谢谢你能给我带来的任何帮助。 视CG

  • 我试图从REST代理发布json模式,但遇到异常 curl-k-x post-h“content-type:application/vnd.schemaregistry.v1+json”--数据“{”schema“:”{“type”:“object”,“properties”:{“firstname”:{“type”:“string”},“lastname”:{“type”:“string”},“