You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置双Kafka集群连接同一Schema Registry(Docker场景)

两个独立Kafka集群共用Schema Registry的配置方案

可行性说明

可以实现两个独立Kafka集群共用同一个Schema Registry,但需明确:Schema Registry自身的元数据(存储schema的_registry-schemas topic)只能托管在其中一个Kafka集群中,另一个集群的生产者/消费者通过HTTP接口与Schema Registry交互即可,无需Schema Registry直接连接该集群。

具体配置步骤

  1. 指定Schema Registry的元数据存储集群
    选择其中一个Kafka集群作为Schema Registry的元数据存储载体,比如选择broker1所在的集群,将schemaregistry服务的SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS参数设置为该集群的bootstrap地址:

    SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: broker1:9092
    
  2. 验证集群与Schema Registry的交互配置
    你的docker-compose中已经为两个broker配置了KAFKA_SCHEMA_REGISTRY_URL: schemaregistry:8081,这个配置是正确的——两个集群的生产者/消费者会通过这个HTTP地址访问Schema Registry,完成schema的注册和查询,只要网络可达就能正常工作。

关键注意事项

  • 存储Schema Registry元数据的集群必须保证高可用性,一旦该集群不可用,Schema Registry将无法读取或写入schema元数据,影响所有依赖它的生产者/消费者。
  • 第二个集群不需要被Schema Registry的Kafka Store配置引用,仅需通过HTTP接口访问Schema Registry即可。

修改后的完整schemaregistry服务配置

schemaregistry:
  image: confluentinc/cp-schema-registry:7.5.2
  container_name: schemaregistry
  networks:
    - local_kafka
  environment:
    SCHEMA_REGISTRY_HOST_NAME: schemaregistry
    SCHEMA_REGISTRY_LISTENERS: "http://0.0.0.0:8081"
    SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL: PLAINTEXT
    SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: broker1:9092
    SCHEMA_REGISTRY_DEBUG: "true"
    SCHEMA_REGISTRY_KAFKASTORE_TOPIC: _registry-schemas
  ports:
    - "8081:8081"

内容的提问来源于stack exchange,提问作者J. Snow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:54:52