卡夫卡的舊版本(預0.9)店偏移量ZK而已,而內部卡夫卡主題卡夫卡的新版本,默認情況下店偏移稱爲__consumer_offsets
(較新的版本可能仍然致力於儘管ZK)。
向代理商提交補償的好處是,消費者不依賴於ZK,因此客戶只需要與簡化整體架構的代理交談即可。此外,對於有很多消費者的大型部署,ZK可能會成爲瓶頸,而Kafka可以輕鬆處理這種負載(承諾補償與撰寫主題相同,Kafka在這裏可以很好地擴展 - 事實上,默認情況下,__consumer_offsets
是用50個分區IIRC創建)。
我不熟悉NodeJS或kafka節點 - 它取決於客戶端實現如何提交偏移量。
長話短說:如果您使用經紀人0.10.1.0
您可以對主題__consumer_offsets
提交補償。但它取決於你的客戶端,如果它實現了這個協議。
更詳細地說,它取決於您的經紀人和客戶端版本(以及您使用的是哪種消費者API),因爲較早的客戶端可以與較新的經紀人交談。首先,您需要擁有經紀人和客戶端版本0.9
或更高版本才能將偏移量寫入卡夫卡主題。但是,如果較早的客戶端連接到0.9
代理,它仍會將偏移量提交給ZK。
對於Java消費者:
這取決於什麼消費者使用:0.9前有兩個「老客戶」,即「高級用戶」和「低層次的消費」。兩者都直接向ZK提交補償。自0.9
以來,兩個消費者都被合併爲單一消費者,稱爲「新消費者」(它基本上統一了兩個老消費者的低水平和高水平的API--這意味着,在0.9
中有三種類型的消費者)。新消費者承諾抵消經紀人(即內部卡夫卡主題)
爲了使升級更容易,還可以使用舊消費者「雙重提交」補償(截止到0.9
)。如果您通過dual.commit.enabled
啓用此功能,則會將偏移量提交給ZK和__consumer_offsets
主題。這允許您從舊消費者API切換到新的消費者API,同時將您從ZK的偏移移動到__consumer_offsets
主題。
Thx,我會確保升級到最新的API。 –