Kafka, 大数据

kafka-10 Kafka事务

Producer事务

幂等性只能解决单分区单会话的问题

精准一次性写到开发集群

  • 为实现跨分区会话的事务,引入全局唯一的TransactionID(事务ID),将Producer的PID和TransactionID绑定,在Producer重启后就可以通过正在进行的TransactionID来获得原来的PID
  • 为管理Transaction Kafka引入组件Transaction Coordinator
    • Producer从Transaction Coordinator获取Transaction ID
    • Transaction Coordinator将事务写入kafka内部topic,这样整个服务重启由于事务状态得到保存,进行中的事务状态可以得到恢复,从而继续进行

Consumer事务

对Consumer而言事务的保证就会相对较弱,尤其是无法保证Commit的信息被精确消费,这是由于consumer可以通过offset访问任意信息,而且不同的SegmentFile生命周期不同,同一事务的消息可能出现重启后被删除的情况

About 蓝染君

喜爱编程开发的程序猿