在設計使用卡夫卡分離工作/ parallelise單位我發現,我有2所選擇的系統:大卡夫卡消息VS小消息+ DB
Data -> manipulate data -> store in DB -> send ID as message -> load data from DB using ID in message ->...
Data -> manipulate data -> send data as message -> load data from message ->...
第二個選項擺脫所有的側面 - 影響數據保存和加載數據庫的代碼,如果我這樣做,那麼我的代碼更好,我的單位有時可以成爲一個純函數。我也減少了對數據庫的負載。缺點是這個消息可能很大,消息傳遞系統通常被設計爲快速消息。
我的問題是:
- 在什麼時候(多少字節)的消息開始顯得有點大了卡夫卡?
- 還有什麼其他的優點和缺點需要考慮?
非常有趣的閱讀。 – shmish111
@ shmish111不僅是消息大小的部分,也是整個文檔。很酷的事情是,它是從真正瞭解卡夫卡的人以及在一個大項目中使用卡巴卡的人開始的新事物。 –
也讓我想到,Kafka可以在某種CQRS環境下用作寫入速度非常快的數據存儲。例如,我們目前在cassandra中有文檔作爲「真實的來源」,它們都有TTL,如果信息單獨存儲以供查詢(例如在elasticsearch中),Kafka可以用更高的寫入能力取代它。我們大概可以減少我們使用相當多的盒子的數量...... – shmish111