《kafka 核心技术与实战》课程学习笔记(九)

客户端都有哪些不常见但是很高级的功能?

什么是 Kafka 拦截器?

  • 拦截器基本思想就是允许应用程序在不修改逻辑的情况下,动态地实现一组可插拔的事件处理逻辑链。
  • 它能够在主业务操作的前后多个时间点上插入对应的“拦截”逻辑。
  • Spring MVC 拦截器的工作原理:
    在这里插入图片描述
  • Kafka 拦截器借鉴了这样的设计思路:可以在消息处理的前后多个时点动态植入不同的处理逻辑,比如在消息发送前或者在消息被消费后。

Kafka 拦截器

  • Kafka 拦截器分为生产者拦截器和消费者拦截器。
    • 生产者拦截器允许你在发送消息前以及消息提交成功后植入你的拦截器逻辑;
    • 消费者拦截器支持在消费消息前以及提交位移后编写特定逻辑。
    • 这两种拦截器都支持链的方式,即你可以将一组拦截器串连成一个大的拦截器,Kafka 会按照添加顺序依次执行拦截器逻辑。
  • 当前 Kafka 拦截器的设置方法是通过参数配置完成的。
    • 生产者和消费者两端有一个相同的参数,名字叫 interceptor.classes,它指定的是一组类的列表,每个类就是特定逻辑的拦截器实现类。
    • 指定拦截器类时要指定它们的全限定名,也就是要把完整包名也加上,不要只有一个类名,并且还要保证 Producer 程序能够正确加载拦截器类。

典型使用场景

  • Kafka 拦截器可以应用于包括客户端监控、端到端系统性能检测、消息审计等多种功能在内的场景。
  • Kafka 默认提供的监控指标都是针对单个客户端或 Broker 的,你很难从具体的消息维度去追踪集群间消息的流转路径。同时,如何监控一条消息从生产到最后消费的端到端延时也是很多 Kafka 用户迫切需要解决的问题。
  • 通过实现拦截器的逻辑以及可插拔的机制,我们能够快速地观测、验证以及监控集群间的客户端性能指标,特别是能够从具体的消息层面上去收集这些数据。这就是 Kafka 拦截器的一个非常典型的使用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4572.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安科瑞故障电弧探测器在建筑电气的设计与应用

安科瑞 崔丽洁 【摘要】:电气设备是建筑中不可缺少的一部分,具有较为重要的作用和意义,在应用过程中不仅能够提升建筑本身实用性能,而且可为消费者提供更加优良的生活环境。但设备一旦在运行过程中出现故障,不仅会影响…

Flutter卡片分享功能实现:将你的内容分享给世界

前言 在app中,在实现分享功能的时候,通常会有一种以卡片形式展示和分享内容的分享方式。这种功能可以将信息以整洁、易读的方式呈现给用户,使他们能够快速了解内容的关键信息,并将其分享给其他人。那么在这篇文章中,就…

python: more Layer Architecture and its Implementation in Python

sql server: --学生表 DROP TABLE DuStudentList GO create table DuStudentList (StudentId INT IDENTITY(1,1) PRIMARY KEY,StudentName nvarchar(50),StudentNO varchar(50), --学号StudentBirthday datetime --学生生日 ) go mod…

UE4 Cesium离线生成地形

地理空间数据云 首先进这个网址,下载对应的tif以及高程(DEM) 下载CesiumLab2 在地形切片中点击添加,将黑白图像数据,添加,选择存储类型为散列文件,选择输出路径 再选择影像切片,选择…

Sublime Text 初步使用

Sublime Text ,最初被设计为一个具有丰富扩展功能的Vim。 Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括&#xf…

PyTorch开放神经网络交换(Open Neural Network Exchange)ONNX通用格式模型的熟悉

我们在深度学习中可以发现有很多不同格式的模型文件,比如不同的框架就有各自的文件格式:.model、.h5、.pb、.pkl、.pt、.pth等等,各自有标准就带来互通的不便,所以微软、Meta和亚马逊在内的合作伙伴社区一起搞一个ONNX(Open Neura…

jupyter notebook优化

一.这个是jupyter notebook主题设置的相关教程,如果经常看着高亮的屏幕,对于眼睛会是一种损伤! https://blog.csdn.net/qq_41566627/article/details/104984796?utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7…

乐鑫线上研讨会|探索 LCD 屏在物联网中的发展趋势

LCD 屏通过显示实时信息并提供交互式体验,现已成为各类设备的重要组成部分。在当下的 AIoT 时代,随着物联网技术的快速发展和应用场景的不断拓展,LCD 作为人机交互的主要输入输出设备,在智能家居、智能安防、工业控制、智慧城市等…

react封装jsoneditor

1、安装: api文档:jsoneditor npm install jsoneditor2、代码: JsonEditor/index.tsx: import { useMemoizedFn } from ahooks; import JSONEditor from jsoneditor; import { useEffect, useState } from react; import ./index.less;in…

redis 主从复制 哨兵 安装部署

学习开始前先了解一下 Redis是一个开源的内存数据结构存储系统,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis最大的特点是数据存储在内存中,因此读写速度非常快,同时也支持数据持久化,可以将数…

【K8S系列】如何高效查看 k8s日志

序言 你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点 Kubernetes (k8s) 是一个容器编排平台&#x…

AndroidStudio xml布局文件输入没有提示

AndroidStudio xml布局文件输入没有提示,如下图: 原因是老的AndroidStudio与新的sdk版本不一致 方法1:修改compileSdkVersion低于33即可,不建议 方法2:升级AndroidStudio版本,建议 如下是我的AndroidStu…