栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka事务

Kafka事务

Kafka在0.11版本开始引入幂等和事务的特性

幂等

简单来说就是,无论我新增多少条数据,结果都是一条。对于Kafka来说,通过producer id(PID)和序列号sequence number来实现。每个producer都有一个pid,当他们往分区发送消息时,会携带一个sequence number,这个序列号是递增的。当一个producer多次发送一个数据时,这个数据的sequence number是一样的。此时Kafka的broker,只会接受第一次发送的数据(在broker里,会为每个producer他们所对应的分区维护一个序列号的值SN_old,当SN_new = SN_old+1时,broker才会接受此数据)。Kafka的幂等只能保证单个生产者会话(session)中单分区的幂等。幂等性不能跨多个分区运作,而事务可以弥补这个缺陷。 事务

事务可以保证对多个分区写入操作的原子性。操作的原子性是指多个操作要么全部成功,要么全部失败,不存在部分成功、部分失败的可能。用户在客户端为producer设置一个transactional.id,此时当往broker发送消息时就会开启事务。为了保证新的生产者启动后具有相同transactional.id的旧生产者能够立即失效,每个生产者通过transactionalId获取PID的同时,还会获取一个单调递增的producer epoch。如果使用同一个transactionalId开启两个生产者,那么前一个开启的生产者会报错。在Kafka中设置参数isolation.level为read_committed。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/743113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号