kafka消费者的三种模式
几种不同的注册方式
- subscribe方式:当主题分区数量变化或者consumer数量变化时,会进行rebalance;注册rebalance监听器,可以手动管理offset不注册监听器,kafka自动管理
- assign方式:手动将consumer与partition进行对应,kafka不会进行rebanlance
关键配置及含义
enable.auto.commit 是否自动提交自己的offset值;默认值时true
auto.commit.interval.ms 自动提交时长间隔;默认值时5000 ms
consumer.commitSync(); offset提交命令;
默认配置
采用默认配置情况下,既不能完全保证At-least-once 也不能完全保证at-most-once;
比如:
在自动提交之后,数据消费流程失败,这样就会有丢失,不能保证at-least-once;
数据消费成功,但是自动提交失败,可能会导致重复消费,这样也不能保证at-most-once;
但是将自动提交时长设置得足够小,则可以最大限度地保证at-most-once;
at most onece模式
基本思想是保证每一条消息commit成功之后,再进行消费处理;
设置自动提交为false,接收到消息之后,首先commit,然后再进行消费
at least onece模式
基本思想是保证每一条消息处理成功之后,再进行commit;
设置自动提交为false;消息处理成功之后,手动进行commit;
采用这种模式时,最好保证消费操作的“幂等性”,防止重复消费;
exactly onece模式
核心思想是将offset作为唯一id与消息同时处理,并且保证处理的原子性;
设置自动提交为false;消息处理成功之后再提交;
比如对于关系型数据库来说,可以将id设置为消息处理结果的唯一索引,再次处理时,如果发现该索引已经存在,那么就不处理;
kafka消费者的三种模式的更多相关文章
- 微服务ServiceMesh及三种模式介绍
1. 前言 今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础.作为架构师,如果你现在 ...
- git push :推送本地更改到远程仓库的三种模式
摘要:由于在git push过程中,no-fast-forward 的push会被拒绝,如何解决git push失败的问题?这里面有三种方法,分别会形成merge形式的提交历史,线性形式的提交历史,覆 ...
- App开发三种模式
APP开发三种模式 现在App开发的模式包含以下三种: Native App 原生开发AppWeb App 网页AppHybrid App 混合原生和Web技术开发的App 详细介绍: http:// ...
- [转]VMware Workstation网络连接的三种模式
经常要使用VMWare Workstation来在本地测试不同的操作系统,以前也搞不清楚网络连接三种模式,最近看了几篇文章才算明白.现总结如下: 1. VMware Workstation的虚拟网络组 ...
- LVS三种模式配置及优点缺点比较
目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.lin ...
- LVS三种模式配置及优点缺点比较 转
LVS三种模式配置及优点缺点比较 作者:gzh0222,发布于2012-11-12,来源:CSDN 目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种 ...
- MySQ binlog三种模式
MySQ binlog三种模式及设置方法 1.1 Row Level 行模式 日志中会记录每一行数据被修改的形式,然后在slave端再对相同的数据进行修改 优点:在row level模式下,bin- ...
- delegate,notifucation,KVO三种模式实现通信的优缺点
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信: 1.委托delega ...
- 辛星跟您玩转vim第一节之vim的下载与三种模式
首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...
- VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
VMware虚拟机上网络连接(network type)的三种模式--bridged.host-only.NAT VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换 ...
随机推荐
- [转帖]一本正经的八卦一下CPU的自主可控
https://zhuanlan.zhihu.com/p/36391482 (2018年的4月16日,美国商务部发布对中兴通讯出口权限禁令,禁止美国企业向其出售零部件,史称"中兴禁运事件&q ...
- 你应该知道的Hooks知识
Hooks Hooks 是 React16.8 的新增特性,能够在不写 class 的情况下使用 state 以及其他特性. 动机 在组件之间复用状态逻辑很难 复杂组件变得难以理解 难以理解的 cla ...
- TienChin 渠道管理-表创建
在若依当中,有个槽点,就是数据库当中的删除标识状态一般 0 是 false,1 是 true,在若依当中反而 0 是 true,1 是 false. 渠道表设计,我这里就直接贴成品的创建表 SQL: ...
- python随机种子seed的作用(强化学习常用到)
先上代码 import math import gym from gym import spaces, logger from gym.utils import seeding import nump ...
- Win32汇编:字符串浮点数运算过程
整理复习汇编语言的知识点,以前在学习<Intel汇编语言程序设计 - 第五版>时没有很认真的整理笔记,主要因为当时是以学习理解为目的没有整理的很详细,这次是我第三次阅读此书,每一次阅读都会 ...
- Python 实现Web容器指纹识别
当今的Web安全行业在进行渗透测试时普遍第一步就是去识别目标网站的指纹,从而进一步根据目标框架进行针对性的安全测试,指纹识别的原理其实很简单,目前主流的识别方式有下面这几种. 1.识别特定网页中的关键 ...
- 试用Proxmox VE 8.0搭建云桌面系统
6月22日发布了其服务器虚拟化管理平台 Proxmox 虚拟环境的稳定版 0.12.这个主要版本基于最新的Debian 7("书虫"),并为Proxmox VE 4.8或旧版本的用 ...
- gcc-11/g++-11安装
终端依次输入 sudo add-apt-repository ppa:ubuntu-toolchain-r/test #添加工具链存储库 sudo apt-get install gcc-11 #安装 ...
- 蓝鲸单机离线部署:app_mgr组件安装失败解决
之前在腾讯蓝鲸智云-单机离线部署测试中,遇到了几个安装问题,本文记录下3.2 app_mgr组件安装失败 的解决过程,因为这个问题卡了很久(可能也是因为笔者对python相关知识和蓝鲸产品不够熟悉), ...
- yapi tag的问题,暂时只保留一个tag
yapi 的tag是需要先在网页上建立好,如: