Confluent-Kafka-go 发布超过 1M 消息失败困难克服
2025-09-20 15:34 tlnshuju 阅读(0) 评论(0) 收藏 举报问题描述
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 // 10M
return &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.mzph.cn/news/908410.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
mysql查看数据库大小,可以通过查询系统表来实现
要查看 MySQL 数据库的大小,可以通过查询系统表 information_schema.tables 来实现,以下是具体方法:查看所有数据库的大小
sql
SELECT
table_schema AS 数据库名,
ROUND(SUM(data_length + index_length) / 1024 / …
TPP21206替代MPQ8633,12A电流同步降压DCDC
TPP21206是2.7V至16V输入,集成远端反馈和精确电流保护的同步降压变换器,稳态可持续输出12A的负载电流,广泛应用于服务器、交换机和光模块等应用中。TPP21206采用了思瑞浦自主研发的定频COT控制架构,在实现传统自适应…
组件重新装载时 useSWR 会发起请求
默认情况下,组件重新装载时 useSWR 会发起请求。这是 SWR "stale-while-revalidate" 设计哲学的一部分。
重新装载时的行为
function MyComponent() {const { data } = useSWR(/api/data, fetcher)// 组件卸…
kettle插件-kettle数据清洗插件,轻松处理脏数据
前面我们已经介绍了很多kettle插件,每个kettle插件都它的使用场景,我们在做数据同步ETL的过程中,势必要处理一些脏数据,把数据质量提高。今天我们一起来学习这这款数据清洗插件。
1、转换设计
1)生成记录 模拟数据…
Java 如何在 Excel 中添加超链接?使用 Spire.XLS for Java 轻松实现 - 教程
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
RocketMQ vs RabbitMQ vs Kafka - 教程
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
实用指南:设计模式概述
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
Seedream 4.0 简直绝了!
2025年,我们正站在AI内容创作的历史拐点。在这个AI图像工具满天飞的时代,我们经历了太多看起来很美的失望:Nano Banana生成的商品图总是细节失真,中文文字渲染混乱。 我体验了很多AI生图工具,我从未见过如此颠覆性…
财务管理NPV与IRR投资分析在IT行业案例
财务管理NPV与IRR投资分析在IT行业案例财务管理NPV与IRR投资分析在IT行业案例背景 真实IT服务器投资场景XT公司准备投资购买服务器硬件,用于AI部署DeepSeek R1 72b模型,我们使用NPV方法进行投资分析 联想(Len…
mysql查询死锁,mysql查询死锁方法
在 MySQL 中查询死锁可以通过以下方法实现:
查看最近一次死锁信息MySQL 会记录最近一次死锁的详细信息,可以通过以下命令查看:
sql
SHOW ENGINE INNODB STATUS;
在输出结果中,找到 "LATEST DETECTED DEADLOCK…
【IEEE出版、已连续5届稳定快速EI检索】第六届计算机工程与智能控制学术会议(ICCEIC 2025)
【IEEE出版 |已连续5届EI稳定检索】
第六届计算机工程与智能控制学术会议(ICCEIC 2025)
2025 6th International Conference on Computer Engineering and Intelligent Control
在这里看会议官网详情
会议时间:2025年…
软工第二次作业之个人项目——论文查重
论文查重系统 - 项目报告项目信息
详情课程
软件工程作业要求
个人编程作业项目目标
实现一个论文查重程序,规范软件开发流程,熟悉Github进行源代码管理和学习软件测试GitHub仓库
https://github.com/ymxc152/312300…
HarmonyOS之UIContext 与 UIAbility、WindowStage 的关系 - 指南
HarmonyOS之UIContext 与 UIAbility、WindowStage 的关系 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…
向上一步——当做事纠结的人停止决策内耗,你就是掌控自己的神!
向上一步——当做事纠结的人停止决策内耗,你就是掌控自己的神!重要选择的核心思维:批判性思维的完整实践指南
面对人生关键选择时,外界繁杂观点常让人陷入内耗,而批判性思维的核心是 “不盲从他人经验,只锚定自我…
完整教程:Mistral Document AI已正式登陆Azure AI Foundry(国际版)
完整教程:Mistral Document AI已正式登陆Azure AI Foundry(国际版)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…