Привет ребят, есть такая проблемка, если это проблемка вообще) Есть java,

есть кафка стрим 2.6, примерно такой конфиг:
StreamsConfig.PROCESSING_GUARANTEE_CONFIG=StreamsConfig.EXACTLY_ONCE_BETA
StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG=Serdes.String().getClass().getName()
StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG=Serdes.ByteArray().getClass().getName()
StreamsConfig.CONSUMER_PREFIX + ConsumerConfig.AUTO_OFFSET_RESET_CONFIG="latest"
StreamsConfig.REPLICATION_FACTOR_CONFIG=3
StreamsConfig.TOPIC_PREFIX + TopicConfig.MIN_IN_SYNC_REPLICAS_CONFIG=2
StreamsConfig.PRODUCER_PREFIX + ProducerConfig.ACKS_CONFIG="all"
StreamsConfig.NUM_STREAM_THREADS_CONFIG=3
StreamsConfig.COMMIT_INTERVAL_MS_CONFIG=0
Енв локальный - три брокера, стрим простой, один сорс 100 партишенов, один синк 100 партишенов, два стейт стора и один процессор, который кладет в сторы хедер, и форвардит мессадж в синк. Проблема в том, что именно коммит мессаджа(в том числе стора), может занять до 200 мс(в среднем 80-100мс), даже при данном коммит интервале - 0. Вопрос, почему так долго и отчего это может зависеть? Спасибо.

6 ответов

18 просмотров

А что в топологии делаешь? Есть код?

Dmitry-Krasaev Автор вопроса
Vik Gamov
А что в топологии делаешь? Есть код?

привет, примерно так Topology topology = new Topology() .addSource("in", Serdes.String().deserializer(), Serdes.ByteArray().deserializer(), "in-topic") .addProcessor("p", () -> new AbstractProcessor<String, byte[]>() { @Override public void process(String key, byte[] value) { StateStore store1 = context().getStateStore("store1"); StateStore store2 = context().getStateStore("store2"); ((KeyValueStore) store1).put(key, UUID.randomUUID().toString()); ((KeyValueStore) store2).put(key, UUID.randomUUID().toString()); context().headers().add("someHeader", "someHeaderValue".getBytes(StandardCharsets.UTF_8)); context().forward(key, value); } }, "in") .addStateStore(Stores.keyValueStoreBuilder( Stores.persistentKeyValueStore("store1"), Serdes.String(), Serdes.String()), "p") .addStateStore(Stores.keyValueStoreBuilder( Stores.persistentKeyValueStore("store2"), Serdes.String(), Serdes.String()), "p") .addSink("out", "out-topic", Serdes.String().serializer(), Serdes.ByteArray().serializer(), "p"); проект чистый, никаких аспектов и другой магии(помимо айдийки), которая могла бы влиять на результаты. Спасибо.

Dmitry-Krasaev Автор вопроса
Vik Gamov
А что в топологии делаешь? Есть код?

Нет идей, куда можно посмотреть? С праздником всех, btw.

Dmitry-Krasaev Автор вопроса
Vik Gamov
А метрики снять можешь?

а какие метрики нужны?) и какой тулой лучше снять? накидал простой проект https://github.com/krasaev/kafka-stream-test

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта