-
基本结构啊
查看全部 -
kafka消息结构
查看全部 -
基本概念3
查看全部 -
基本概念2
查看全部 -
基本概念1
查看全部 -
零拷贝简介
1)网络传输持久性日志块
2)Java Nio channel.transforTo()方法
3)Linux sendfile系统调用
文件传输到网络的公共数据路径
1)操作系统将数据从磁盘读入到内核空间的页缓存
2)应用程序将数据从内核空间读入到用户空间缓存中
3)应用程序将数据写回到内核空间到socket缓存中
4)操作系统将数据从socket缓冲区复制到网卡缓冲区,以便将数据经网络发出
零拷贝过程
1)操作系统将数据从磁盘读入到内核空间的页缓存
2)将数据的位置和长度的信息的描述符增加至内核空间(socket缓冲区)
3)操作系统将数据从内核拷贝到网卡缓冲区,以便将数据经网络发出
查看全部 -
kafka消息事务
为什么要支持事务
1)满足“读取-处理-写入”模式
2)流处理需求的不断增强
3)不准确的数据处理的容忍度
数据传输的事务定义
1)最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输
2)最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输
3)精确的一次(Exactly once):不会漏传输也不会重复传输,每个消息都被传输一次而且仅仅被传输一次,这是大家所期望的
事务保证
1)内部重试问题:Procedure幂等处理
2)多分区原子写入
事务保证-避免僵尸实例
1)每个事务Producer分配一个transactional.id,在进程重新启动时能够识别相同的Producer实例
2)kafka增加了一个与transactional.id相关的epoch,存储每个transactional.id内部元数据
3)一旦epoch被触发,任何具有相同的transactional.id和更旧的epoch的Producer被视为僵尸,kafka会拒绝来自这些Procedure的后续事务性写入
查看全部 -
kafka应用场景
1)消息队列
2)行为跟踪
3)元信息监控
4)日志收集
5)流处理
6)事件源
7)持久性日志(commit log)
查看全部 -
kafka特点
分布式
1)多分区
2)多副本
3)多订阅者
4)基于zookeeper调度
高性能
1)高吞吐量
2)低延迟
3)高并发
4)时间复杂度为O(1)
持久性与扩展性
1)数据可持久化
2)容错性
3)支持在线水平扩展
4)消息自动平衡
查看全部 -
kafka基本结构
Producer Api
Consumer Api
Streams Api
Connectors Api
查看全部 -
零拷贝简介
查看全部 -
零拷贝简介
查看全部 -
零拷贝使用
查看全部 -
kafka消息事务
查看全部 -
kafka producer consumer
查看全部
举报