专属MirrorMaker 2集群分布式模式任务分配不均及API异常求助
Kafka MirrorMaker 2.0(3.5.1版本)分布式部署异常问题
环境背景
- 在Kubernetes中部署MirrorMaker 2.0集群,使用Kafka 3.5.1版本
- 配置基于KIP-710文档,启用了
dedicated.mode.enable.internal.rest参数(该参数属于JIRA #10586,Kafka 3.5.0及以上版本支持)
当前状态与问题
主题/偏移量复制功能正常,但存在以下异常:
- 所有主题复制任务均运行在单个Pod中,其余Pod完全空闲,该状态已持续数小时
- 日志显示节点已通过公告的leader URI加入集群,但调用REST API验证时返回404,无法正常访问
所用MirrorMaker配置
clusters = source, destination source.bootstrap.servers = <SOURCE_BOOTSTRAP_SERVERS> destination.bootstrap.servers = <TARGET_BOOTSTRAP_SERVERS> source->destination.enabled = true source->destination.topics = <TARGET_TOPIC_WHITELIST> groups=.* topics.blacklist = .*[\-\.]internal emit.heartbeats.enabled = true source->destination.sync.group.offsets.enabled = true # Auth config security.protocol=SASL_SSL source.security.protocol=SASL_SSL destination.security.protocol=SASL_SSL source.sasl.mechanism=SCRAM-SHA-512 destination.sasl.mechanism=SCRAM-SHA-512 source.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<SOURCE_USERNAME>" password="<SOURCE_PASSWORD>"; destination.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<TARGET_USERNAME>" password="<TARGET_PASSWORD>"; replication.policy.class=org.apache.kafka.connect.mirror.IdentityReplicationPolicy # rest API - new since 3.5.0 dedicated.mode.enable.internal.rest=true
相关日志信息
节点启动日志(其中一个副本)
[2023-07-27 12:36:10,825] INFO Advertised URI: http://<advertised_IP>:8083/ (org.apache.kafka.connect.runtime.rest.RestServer:394) [2023-07-27 12:36:10,826] INFO REST server listening at http://<advertised_IP>:8083/, advertising URL http://<advertised_IP>:8083/ (org.apache.kafka.connect.runtime.rest.RestServer:202)
节点加入组日志(所有副本均输出)
[2023-07-27 12:36:34,719] INFO [Worker clientId=source->destination, groupId=source-mm2] Joined group at generation 44 with protocol version 2 and got assignment: Assignment{error=0, leader='source->destination-224a6033-361f-426b-9840-fc078eb87333', leaderUrl='http://<advertised_IP>:8083/', offset=705, connectorIds=[MirrorHeartbeatConnector], taskIds=[MirrorHeartbeatConnector-0], revokedConnectorIds=[], revokedTaskIds=[], delay=0} with rebalance delay: 0 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:2394)
排查尝试
尝试从任意节点通过公告IP(或leader节点的localhost)调用leaderUrl的根路径或/connectors路径,均返回:
{"error_code":404,"message":"HTTP 404 Not Found"}
同时观察到繁忙Pod的CPU使用率因处理所有消息复制居高不下,其余Pod处于空闲状态。
内容的提问来源于stack exchange,提问作者LVillaca
相关产品推荐
相关产品推荐

