大数据技术之kafka (第 3 章 Kafka 架构深入) Kafka 事务
Kafka 從 0.11 版本開(kāi)始引入了事務(wù)支持。事務(wù)可以保證 Kafka 在 Exactly Once 語(yǔ)義的基礎(chǔ)上,生產(chǎn)和消費(fèi)可以跨分區(qū)和會(huì)話,要么全部成功,要么全部失敗
3.6.1 Producer 事務(wù)
為了實(shí)現(xiàn)跨分區(qū)跨會(huì)話的事務(wù),需要引入一個(gè)全局唯一的 Transaction ID,并將 Producer獲得的PID和Transaction ID綁定。這樣當(dāng)Producer重啟后就可以通過(guò)正在進(jìn)行的Transaction?ID 獲得原來(lái)的 PID。?為了管理 Transaction,Kafka 引入了一個(gè)新的組件 Transaction Coordinator。Producer 就是通過(guò)和 Transaction Coordinator 交互獲得 Transaction ID 對(duì)應(yīng)的任務(wù)狀態(tài)。Transaction?
Coordinator 還負(fù)責(zé)將事務(wù)所有寫(xiě)入 Kafka 的一個(gè)內(nèi)部 Topic,這樣即使整個(gè)服務(wù)重啟,由于事務(wù)狀態(tài)得到保存,進(jìn)行中的事務(wù)狀態(tài)可以得到恢復(fù),從而繼續(xù)進(jìn)行。?
3.6.2 Consumer 事務(wù)
上述事務(wù)機(jī)制主要是從 Producer 方面考慮,對(duì)于 Consumer 而言,事務(wù)的保證就會(huì)相對(duì)較弱,尤其時(shí)無(wú)法保證 Commit 的信息被精確消費(fèi)。這是由于 Consumer 可以通過(guò) offset 訪問(wèn)任意信息,而且不同的 Segment File 生命周期不同,同一事務(wù)的消息可能會(huì)出現(xiàn)重啟后被刪除的情況。
總結(jié)
以上是生活随笔為你收集整理的大数据技术之kafka (第 3 章 Kafka 架构深入) Kafka 事务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++/java/python 创建二维
- 下一篇: sudo apt-get update