《Kafka权威指南》记录
生产者
生产流程 32页
生产者创建
Kafka生产者需要三个必须参数:broker地址清单,key和value的序列化方式 (如StringSerializer)
生产者发送
ACKS
acks 参数代表多少副本分区副本收到消息才算写入成功
0 生产者发送即不管服务器响应
1 只等待主节点响应
all 等待所有节点响应
数据有序写入,有序读取
如果消息不含key,则默认轮询使用分区。
如果消息包含key,则默认hash散列。得注意大key问题,可以自定义重分区
消费者
0.10.1 旧版本内。kafka 心跳监测节点存活和 消息轮询频率监测 (处理消息花费时间) 是相互独立的
session.timeout.ms 默认3s
由消费组的群主来分配消费者分区
创建消费者
必须的三个创建参数和生产者一致,也可以创建group.id的消费者群
偏移量提交
1 自动提交,提交间隔默认5s。rebalance会重复提交
2 同步/异步手动提交
3 同步异步组合提交。平时异步,在finally最后一次用同步提交如果不能容忍任何数据重复问题。可以把offset和保存记录同时存在db中。出现异常可以一起回滚。然后每次读取db的offset
异步手动提交的重复消费
控制器
功能:通过zk选取控制器,控制器来选取首领副本
控制分区主从节点的控制器本身也是一个broker
副本和请求
客户端如何知道从哪个副本发送消费生产请求?
1 每个broker都会保存元信息,服务器可以告诉客户端topic的分区,首领副本等信息。
2 客户端和任意broker发送元信息请求获得信息,再和首领副本交互。
3 定时刷新元信息,防止变动
生产请求
生产的数据会写入本地文件系统的缓存中,ack的判定也只是知道写入了缓存中。不保证何时写入磁盘。
Kafka依赖复制功能保证数据的持久性
获取请求
首领副本处理和零拷贝响应
响应判定:积累一定数据量响应,达到一定时间响应
只能读取已写入所有同步副本的信息
其他请求
Kafka内部通讯基于TCP的二进制协议,协议内增加请求类型
例如offset由原先zk存储变更为特定kafka主题上保存。在协议内增加offset请求类型
存储
分区设定
分区数据的删除:根据设定时间参数删除,默认7天 / 根据分区大小参数删除,默认1G
额外清理模式
可以开启清理模式,根据脏数据比例自动清理
文件格式
通过索引立刻读取指定分区的offset数据
可靠的数据传递
原子,一致,隔离,持久
Kafka 数据传递的保证点
复制
判定为是同步的跟随着副本条件
后续还需要大量补充
《Kafka权威指南》记录相关推荐
- 《Vue.js实战》记录
目录 初识Vue.js 指令 v-html v-pre v-bind v-on v-cloak v-once v-show v-for v-model 自定义指令 全局指令 局部指令 钩子函数 计算属 ...
- 3.Vue.js 实战 调查问卷WebApp项目
问卷调查demo已上传,欢迎大家指正,欢迎大家下载:https://download.csdn.net/download/lzb348110175/11085995 如果您没积分的话,可以私信/评论, ...
- vue.js实战——购物车练习(包含全选功能)
vue.js实战第5章 54页的练习1 直接放代码好了,全选的部分搞了好久,代码好像有点啰嗦,好在实现功能了(*^▽^*) HTML: <!DOCTYPE html> <html l ...
- js 查错_7年前端开发经验的我,写了本Vue.js实战开发,开源高清PDF下载
Vue作为目前发展最迅速的前端框架越来越多的受到前端T程师青睐,Vue社区也是Web前端最活跃的社区之一. 更多的公司在转为Vue框架,但针对Vue优秀权威.实战的图书相对欠缺,梁灏著<Vue. ...
- vue --- vue.js实战基础篇课后练习
练习1:在输入框聚焦时,增加对键盘上下键按键的支持,相当于加1和减1 练习2:增加一个控制步伐的prop-step,比如设置为10,点击加号按钮,一次增加10 思路: // 考虑到子模板的复用性,即在 ...
- axios vue 动态date_Web前端Vue系列之-Vue.js 实战
课程简介: 课程目标:通过本课程的学习,让大家掌握Vue.js的进阶知识并在项目中应用. 适用人群:具有一定vue开发基础的开发人员. 课程概述:Vue (读音 /vjuː/,类似于 view) 是一 ...
- 《Vue.js实战》第七章.组件
7.1 组件作用: 提高代码复用性,使项目易于维护 7.1 组件的使用 7.1.1 组件注册-全局注册 全局注册后,任何vue的实例都可以使用该组件. Vue.component('my-compon ...
- Vue.js实战——内置指令(二)
参考<Vue.js实战>梁灏 Vue内置指令第一部分:Vue.js实战--内置指令(一) 1 方法与事件 1.1 基本用法 直接上代码,这样最实在: <!DOCTYPE html&g ...
- Vue.js实战——表单与v-model
参考<Vue.js实战> 梁灏 1. 基本用法 话不多说,来个入门: <!DOCTYPE html> <html><head><meta char ...
- Vue.js实战——内置指令(一)
参考:<Vue.js实战>梁灏 1. 基本指令 1.1 v-cloak <!DOCTYPE html> <html><head><meta cha ...
最新文章
- 64位Ubuntu上编译32位程序
- SpringMVC_文件上传
- Jerry开发的SAP note工具
- SAP CRM Fiori My Appointment应用里点了Edit按钮后三个Roundtrip分析
- 共享一个复杂的WZSZF数据结构 jshdwz jhcbgc jx8net
- Python子类继承父类构造函数说明
- 排序算法Java实现(希尔排序)
- 时间序列的平稳性检验方法汇总
- 根据城市的名称获取省份的名称
- 【QT】FillRect填充的区域实现部分区域透明
- The CDB process terminated
- [CSS3] 使用边框和背景(设置元素的背景)
- openwrt 配置过程
- 大部分有高学历的人比低学历的人强
- win10光驱位连接计算机,搞定Win10系统识别不了光驱位机械硬盘的设置方法
- DIY自制STC单片机开发板
- 第五章:使用HBuilder
- 力扣(1053.115)补9.13
- C语言:判断两数是否互质
- 如何理解margin重叠问题