Я читаю журнал Json объектов из потока Kafka. Вот формат каждого сообщения:
{"class": "abc.cdf", "object":{....}}
Меня интересует определенный «класс» сообщений, которые составляют только 10% от общего числа полученных сообщений. Как эффективно отфильтровать сообщение на основе этого поля без анализа всего json для каждого нового сообщения?
В настоящее время я использую ByteArraySerializer и ObjectMapper для синтаксического анализа до json pojo, а затем проверяю «класс» поле конкретно. Пример кода после каждого пакета сообщений, прочитанных из Kafka:
ObjectMapper mapper = new ObjectMapper();
for (record : records) {
MyRecord parsedRec = mapper.readValue(record, MyRecord.class);
if (parsedRec == null || (!MYCLASSNAME.equals(parsedRec.getClass())))
continue;
...
}
Учитывая загруженность потока сообщений, я хочу потратить минимум времени на фильтрацию незаинтересованных сообщений.