Kafka中的producer拦截器

news/2024/6/18 0:50:41 标签: kafka, java, 分布式

在Kafka中,拦截器一共有两种。分别是生产者端的和消费者端的。本文介绍生产者端的拦截器

Kafka Producer拦截器

Kafka Producer拦截器(Interceptor)主要用于实现clients端的定制化控制逻辑。对于Producer而言,Interceptor使得用户在消息发送前以及Producer回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。其中最常用的应该是用来实现对所有的消息header中放一些参数。

ProducerInterceptor

kafka-client中,Intercetpor的实现接口是org.apache.kafka.clients.producer.ProducerInterceptor 用于生产者发送消息到broker之前对消息进行处理。

ProducerInterceptor接口包含4个方法

onSend 方法

Producer在消息序列化和分配分区之前会调用拦截器的这个方法。

一般来说最好不要修改消息ProducerRecord的topic、key以及partition等信息,如果要修改,也需确保对其有准确的判断,否则会与预想的效果出现偏差。修改key不仅会影响分区的计算,同样也会影响Broker端日志压缩(Log Compaction)的功能。

onAcknowledgement 方法

在消息被应答之前或消息发送失败时调用,优先于用户设定的Callback之前执行。

这个方法运行在Producer的IO线程中,所以这个方法里实现的代码逻辑越简单越好,否则会影响消息的发送速率。

close 方法


http://www.niftyadmin.cn/n/439636.html

相关文章

33、js - 面试 - 事件循环 微任务 宏任务

1、事件循环♻️(EventLoop) js是单线程语言,也就是某一刻只能执行一行代码,为了让耗时代码不阻塞其他代码运行,设计了事件循环模型。 事件循环是一个并发模型,负责执行代码、收集异步任务的模型&#xff0…

源代码加密:保护企业利益的重要一环

在当今数字化时代,源代码是企业的核心资产之一。它包含了企业软件、应用程序和系统的基础架构,对于企业的运营和发展至关重要。然而,源代码的安全性也面临着日益严峻的挑战。 源代码泄露可能导致多重风险和损失。首先,竞争对手或…

【深度学习】2-4 神经网络-手写数字识别

在实现对手写数字图像的分类,可以先假设学习已经全部结束,我们使用学习到的参数,先实现神经网络的“推理处理”。该处理也称为神经网络的前向传播。 和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样 使用神经网络解决问题时&…

使用PlotNeuralNet绘制深度学习网络图的基本操作(二)

使用PlotNeuralNet绘制深度学习网络图的基本操作(二) 接下来我们利用pycharm来绘制当中我们的神经网络模型架构,目标是直接将.tex文件生成为pdf和png。我在学习的过程中参考了一些学习视频,觉得这个up主讲的还不错: 1…

爬虫利器 Beautiful Soup 之遍历文档

Beautiful Soup 简介 Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它提供了一些简单的操作方式来帮助你处理文档导航,查找,修改文档等繁琐的工作。因为使用简单,所以 Beautiful Soup 会帮你节省不少的工…

【youcans动手学模型】Xception 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】Xception 模型-CIFAR10图像分类 1. Xception 神经网络模型1.1 模型简介1.2 论文介绍1.3 分析与讨论 2. 在 PyTorch 中定义 Xception 模型类2.1 深度可分离卷积2.2 带残差连接的…

【神经网络】梯度检测

在神经网络中,使用前向或者反向传播计算后,再使用梯度下降去寻找代价函数最小时 θ \theta θ的取值是一个可行的方法,但是它很容易出错:因为在这个算法中含有海量的细节,容易产生微小而又难以察觉的bug。即便是存在bu…

selenium自动化的时候网址重定向问题的解决思路

一、背景 因为我们系统是用企业微信扫码登录的,就输入网址 management-xxx.xxx.com以后,url就会重定向到企业微信授权的url :https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?statexxx&redirect_urimanagement-xxx.xxx.com …