Я читаю данные из 2 тем кафки.Который может быть описан как:
Topic1 data content: VehicleRegistrationNo, Timestamp, Location
Topic2 data content: VehicleRegistrationNo, Timestamp, Speed
Мне нужно объединить эти 2 сообщения на основе ближайшей отметки времени в обоих и вывести кортеж как сообщение VehicleRegistrationNo, Timestamp, Speed, Location
.Я читаю эту тему через 2 носика S1
и S2
.Затем болт MergeS1andS2
получает данные от этих носиков и работает следующим образом:
if (message from S1):
save present message from S1 along with 2 previous messages (3 consecutive locations) to LocationHashMap
elseif (message from S2):
get locations details from LocationHashmap and merge speed for same Vehicle with location info, then send details to next bolt as tuple
Я знаю, что HashMap не является эффективным способом хранения данных в многоузловом режиме.Поэтому я прочитал о Trident и Redis для хранения промежуточных данных.Что я должен использовать для хранения промежуточных данных в этом сенарио, которые могут работать в распределенной топологии.