同時建立kafka生産者produce,kafka消費者consumer,其中我們的topic建立了3個分區,
生産者發送幾條資料,使用指令檢視消費。

可以看到剛剛生産的這幾條資料,當我退出消費指令,重新使用消費者指令來消費資料時,看一下資料
這時候看到的資料時無序的,總結一點
單個分區:有序
全局分區:無序
1 4肯定是同一個分區的資料,如何保證生産環境下,全局有序呢,先說下必須要保持有序的需求情況,
有一張students表,對表操作的消息發送到kafka中,但是操控表有增加有删除的時候,必須增加先執行
完,才去删除,如果先執行删除了,在insert增加就是錯誤的了。如下,發送幾條執行sql的指令到kafak,
insert into student value(1,'json',18);
insert into student value (2,'jinfei',20) ;
update student set name='JF' where id=2 ;
delete from student where id=2 ;
照上面所說,kafka消費有可能順序如下
分區1:
分區2:
分區3:
這樣的話就會造成錯誤,解決問題核心點:特征資料發送到同一個topic的一個分區,
針對id=2的拼裝特征資料key : student_id=2 kafka預設會Hash(student_id=2) 取模
value: sql語句