Producer的事务
问题:(当有多台follower进行同步时,其中一台机器宕机,ack机制下使得同步重新启动,当重新同步时。机器恢复重新进行同步时 由于 重启后pid也发生了变化,就会导致其中的数据重复,使得数据杂乱无章)
- 为了实现全局一致性
- 在0.11版本之后引入新的事务特性
- 其中引入一个唯一的一个全局变量Transaction ID
- 将Producer获得PID和Transaction ID 进行绑定
- 在重启机器后可以通过Transaction ID 获取到原来的PID
- 为了管理Transaction ID Kafka中引入一个管理TID(Transaction ID)的组件Transaction Coordinator。
- Producer就是通过TC(Transaction Coordinator)交互获得TID所对应的任务
- TC还将所有事务所对应的事务都写入到一个内部的Topic中
- 即使整个服务重启,事务也可以恢复