当前位置: 首页 > news >正文

Confluent-Kafka-go 发布超过 1M 消息失败问题解决

问题描述

cp-kafka 4.0.0 集群默认单条消息上限为 1M(message.max.bytes 默认值 1048576),confluent-kafka-go 客户端若未调整对应配置,发布超过 1M 的消息会触发两类报错:

  • 客户端:Local: Message size too large(本地检测超上限);​
  • 集群:Broker: Message size too large(Broker 拒绝接收)。

临时解决方案:客户端与Kafka集群配置对齐

修改发布端的 message.max.bytes 参数,同时同步调整消费端的 fetch.message.max.bytes 参数,避免后续消费时因消息大小超限导致接收失败。示例代码如下:

// Creates a new KafkaClient instance.
func New(cfg MQConfig) *KafkaClient {maxPktBytes := 10485760 // 10Mreturn &KafkaClient{pConfig: &kafka.ConfigMap{"bootstrap.servers": cfg.Brokers,"acks":              "all","retries":           3,// 设置发布端允许的最大消息大小为10M,需与Kafka集群配置对齐"message.max.bytes": maxPktBytes,},cConfig: &kafka.ConfigMap{"bootstrap.servers":                  cfg.Brokers,"group.id":                           cfg.ConsumerGroup,// ...// 消费者需同步调整,避免接收时超上限"fetch.message.max.bytes":            maxPktBytes,},// ...}
}

cp-kafka 集群配置调整

通过环境变量调整集群消息上限,确保与客户端一致:

# cp-kafka 容器环境变量(K8s/Docker部署)​
env:​# 集群接收消息的最大大小,与客户端 message.max.bytes 一致​- name: KAFKA_MESSAGE_MAX_BYTES​value: "10485760" # 示例为10M,需与客户端配置匹配​# 副本同步上限需略大,避免元数据占用空间导致同步失败​- name: KAFKA_REPLICA_FETCH_MAX_BYTES​value: "12582912" # 建议为消息上限的1.2倍

配置修改后,需重启 cp-kafka 集群容器,确保配置生效。​

注: 放大 message.max.bytes 会占用更多集群带宽与磁盘,增加 Broker 压力。 生产环境不推荐修改默认配置,客户端需要将大消息做拆分

http://www.dtcms.com/a/391367.html

相关文章:

  • 数字图像处理-函数矩阵
  • 基于 ST-Link 和 MDK-Keil 的 STM32 程序下载实验
  • 安防监控系统的架构与组成原理
  • 【前端】【threeJs】前端事件偏移问题完整总结
  • web:ts的类型兼容性
  • 黑盒测试:测试用例设计之场景法(流程图法)(模拟用户实际使用软件的场景来设计测试用例,适用于业务流程复杂的系统测试)基本流、备选流
  • Django + Vue3 前后端分离技术实现自动化测试平台从零到有系列 <第二章> 之 平台功能架构整理
  • 神经网络学习笔记14——高效卷积神经网络架构EfficientNet
  • Flutter实现滑动页面停留吸附
  • 【Linux】基本指令介绍
  • 爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】----待完成
  • 【软考-系统架构设计师】特定领域软件体系结构(DSSA)
  • idea git使用提示问题处理
  • 数据结构初阶——哈希表的实现(C++)
  • Problem: lab-week3- exercise01 Insertion sort
  • 金融级虚拟机安全:虚拟化平台5大安全风险与国产化防护实践
  • 可视化在智慧城市中的应用
  • C#实现高性能拍照(旋转)与水印添加功能完整指南
  • Pandas 2.x与PyArrow:深入探索内存优化与性能提升技巧
  • opencv之轮廓识别
  • lesson65:JavaScript字符串操作完全指南:从基础到高级实战
  • 【脑电分析系列】第19篇:深度学习方法(一):卷积神经网络(CNN)在EEG图像/时频图分类中的应用
  • 写文件的几种方法
  • 序列化与反序列化漏洞及防御详解
  • uniapp 锁定竖屏,固定竖屏,锁定屏幕
  • 论文解读 | Franka 机器人的 CRISP-ROS2 集成实践:适配学习型操作策略与遥操作
  • Redis数据库(二)—— Redis 性能管理与缓存问题解决方案指南
  • TCP KeepAlive判断离线的记录
  • Ceph 测试环境 PG_BACKFILL_FULL
  • 维星AI的GEO搜索优化:企业在AI时代的可见度突围之道