kafka消费端消息去重方案

背景

我们在日常工作中,消费kafka消息是一个最常见的操作,不过由于kafka队列中经常包含重复的消息,并且消息量巨大,所以我们消费端总是需要先把消息进行去重后在消费,以减少消费端的压力,那么日常中我们一般有哪几种方案呢

kafka消费端消息去重方案

方案一:

kafka消息+redis的zset集合去重: 主要的逻辑在于使用Redis的zset数据结构进行数据去重,该方案的缺点就是需要依赖于redis的zset数据结构存放中间结果,而且如果数据量巨大,数据的重合率低时,很容易导致这个redis的zset集合变成一个大key,影响redis集群的性能

方案二:

kafka消息+flink窗口聚合去重:主要的逻辑在于使用flink进行窗口聚合,然后在聚合后的窗口中对消息进行去重,flink最后再把去重后的结果通知消费端进行消费

两种方案的示意图如下所示:
在这里插入图片描述

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

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

相关文章

docker的简单使用

在一些进行使用靶场或者工具的时候,我们可以用docker在线拉取,就可以省去手动搭建靶场的过程 一、docker的配置 因为docker是默认从docker的官网进行拉取,所以拉取经常速度很慢或者失败,我们先要进行一下配置,让他优…

电力系统的数字孪生开发流程

电力系统的数字孪生开发流程通常涉及以下关键步骤,这些步骤构成了电力系统数字孪生开发的基本流程。在实际开发过程中,可能会根据具体项目的要求和特点进行调整和补充。例如,可能会加入模型验证的环节以确保模型的准确性,或者加入…

【Ubuntu】将多个python文件打包为.so文件

1.为什么要将python打包为.so文件? 保护源码 2.实战例子 a.安装相应的包 pip install cython 验证安装是否成功 cython --version b.实战的文件目录和内容 hi.py # This is a sample Python script.# Press ShiftF10 to execute it or replace it with your…

常见的几种echarts类型

一:折线图 let option {tooltip: {},animation: false,grid: {top: "20%",bottom: "33%", //也可设置left和right设置距离来控制图表的大小left: 5%,right: 5%},xAxis: {boundaryGap:false,data: [1,2,3,4,5],axisLine: {show: true, //隐藏X轴…

ES单节点部署

ES 拉取镜像 docker pull elasticsearch:7.10.1启动容器 docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e "ES_JAVA_OPTS-Xms1g -Xmx1g" -v /es_data:/usr/share/elasticsearch/data --name es 558380375f1a注&#xff1a…

Python爬虫——Scrapy-1

目录 简介 安装 基本使用 1. 创建爬虫的项目 2. 创建爬虫文件 3. 运行爬虫代码 scrapy项目组成 scrapy工作原理 ​编辑 58同城 scrapy架构组成 汽车之家 总结 简介 Scrapy 是一个基于 Python 的开源网络爬虫框架,它可以帮助开发者快速、高效地构…

一个系列很多样式的wordpress外贸建站模板

菌菇干货wordpress跨境电商模板 食用菌、羊肚菌、牛肝菌、香菇、干黄花菜、梅干菜、松茸wordpress跨境电商模板。 https://www.jianzhanpress.com/?p3946 餐饮调味wordpress跨境电商模板 豆制品、蛋黄糖、烘焙、咖啡、调料、调味酱、餐饮调味wordpress跨境电商模板。 http…

【python】成功解决ModuleNotFoundError: No module named ‘tensorboardX‘

【python】成功解决ModuleNotFoundError: No module named ‘tensorboardX’ 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f…

【EI会议征稿通知】第二届电力、电网与储能国际学术会议(PGES 2024)

第二届电力、电网与储能国际学术会议(PGES 2024) 2024 2nd International Conference on Power, Grid and Energy Storage (PGES 2024) 第二届电力、电网与储能国际学术会议(PGES 2024)将于2024年6月21-23日于中国昆明召开。会议将围绕电力、电网与储能等领域中的最新研究成果…

FPGA——三速自适应以太网设计(1)基本模块

FPGA——以太网设计(1)基本模块 1. 协议解析(1)MAC层(2)IP层 和 ARP层(3)UDP层 和 ICMP层 2.1 MAC接收模块2.2 MAC发送模块3.1 IP接收模块3.2 IP发送模块4.1 UDP接收模块4.2 UDP发送…

SpringCloud 微服务架构编码构建

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第一篇,即不使用 SpringCloud 组件进行模块之间的调用,后续会有很多的文章循序渐…

像SpringBoot一样使用Flask - 4.拦截器

接上文《像SpringBoot一样使用Flask - 3.蓝图路由Blueprint》,我们已经整理了一个干净的"启动类",现在要加入一些拦截器,为了方便统一管理。 一、常用的拦截器 # 拦截器 app.before_request def handle_before_request():"&qu…