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

Camel Spring Boot集成Confluent Cloud Kafka遇AdminConfig配置异常求助

问题分析与解决方案

核心问题

Debezium连接器内部用于管理offset存储Topic的AdminClient未加载到Confluent Cloud所需的SASL_SSL安全配置,默认使用PLAINTEXT协议连接,导致无法与Confluent Cloud Broker建立连接,出现Node -1 disconnected错误。而你的Camel Kafka生产者/消费者配置是正确的,所以普通Kafka客户端能正常工作,但Debezium的内部AdminClient不受Camel Kafka组件配置的影响。

解决方案

在routes.debezium节点下添加Debezium内部Kafka客户端的安全配置,确保其AdminClient使用正确的认证方式连接Confluent Cloud:

修改后的application.yml相关配置:

routes:
  debezium:
    allow-public-key-retrieval: true
    bootstrap-servers: ${application.kafka.brokers}
    offset-storage:
      topic-cleanup-policy: compact
    # 新增Debezium内部Kafka客户端安全配置
    kafka:
      sasl-jaas-config: org.apache.kafka.common.security.plain.PlainLoginModule required username="${CONFLUENT_CLOUD_USERNAME}" password="${CONFLUENT_CLOUD_PASSWORD}";
      security-protocol: SASL_SSL
      sasl-mechanism: PLAIN
      ssl.endpoint.identification.algorithm: https
      client.dns.lookup: use_all_dns_ips

camel:
  component:
    debezium-mysql:
      # 保留原MySQL相关配置
    kafka:
      brokers: ${application.kafka.brokers}
      schema-registry-u-r-l: ${application.schema-registry.base-urls}
      value-serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      additional-properties:
        schema.registry.basic.auth.credentials.source: USER_INFO
        schema.registry.basic.auth.user.info: ${SCHEMA_REGISTRY_ACCESS_KEY}:${SCHEMA_REGISTRY_SECRET_KEY}
        ssl.endpoint.identification.algorithm: https
        client.dns.lookup: use_all_dns_ips
      sasl-jaas-config: org.apache.kafka.common.security.plain.PlainLoginModule required username="${CONFLUENT_CLOUD_USERNAME}" password="${CONFLUENT_CLOUD_PASSWORD}";
      security-protocol: SASL_SSL
      retry-backoff-ms: 500
      request-timeout-ms: 20000
      sasl-mechanism: PLAIN

原因说明

  • Debezium连接器在初始化时,会创建独立的AdminClient来处理offset主题的创建、管理等操作,这个客户端的配置来源于routes.debezium.kafka下的参数,而非Camel Kafka组件的camel.component.kafka配置。
  • 本地Kafka环境无需安全认证,所以Debezium的AdminClient用默认的PLAINTEXT协议能正常工作;切换到Confluent Cloud后,必须显式配置SASL认证参数,否则会连接失败。

验证步骤

  1. 重启应用后,观察日志中AdminClient的初始化信息,确认security.protocol已设置为SASL_SSL。
  2. 检查Confluent Cloud控制台的Broker连接日志,确认连接请求已使用正确的认证方式。

内容的提问来源于stack exchange,提问作者Renan Geraldo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:55:39