Всем привет. Есть спринг-бут приложение без клаудов-стримов и прочего. Есть

один топик. Партиций условно 10. Пишут в топик 1-2-3 сервиса, но много. Лиснеров по количеству партиций, 10 подов. Каждый инстанс там по своей партиции взял и разгребает. Процессинг при разгребании чуть сложный, потому приличный лаг накопился. В какую сторону делать "оптимайзинг"? Я так полагаю у спринга тюнить concurrency не следует, если консумеров столько же, сколько партиций?

3 ответов

8 просмотров

направлений несколько 1) увеличение кол-ва партиций, да. это самый простой способ увеличить параллелизм и горизонтально масштабироваться. 2) иногда, когда сообщений много, помогает асинхронно закреплять оффсеты обработанных сообщений, если не страшно в случае чего обработать повторно не одно, а сразу несколько. когда ожидание коммита оффсетов занимает заметное время в сравнении со всем процессингом - удается получить заметный прирост производительности на партицию. 3) в развитие второго - параллелить обработку сообщений с одной партиции, но при этом закреплять оффсет по очереди. т.о., "получили сообщение а и б, отправили в параллельную обработку и добавили promise(или что угодно) завершения обработки в очередь с соблюдением порядка сообщений. в фоне обрабатываем очередь, дожидаясь обработки следующего сообщения, и коммитим его оффсет." тогда можно устроить параллелизм в рамках одной партиции. но нужно ли вам это? проще масштабироваться горизонтально.

Pavel-Ryzhkov Автор вопроса
George Bolshakov
направлений несколько 1) увеличение кол-ва партици...

Благодарю за развёрнутый ответ. 1 - там топик живёт сутки, событий в нём много, ребалансировка полагаю займёт продолжительное время, потому пока откинул данный вариант. 2,3 - в этом направлении и предполагаю. Там события такие, что не сильно страшно перечитать в случае чего или потерять парочку. Потому склоняемся к batch и какой-нибудь auto-commit-offset по времени

Pavel Ryzhkov
Благодарю за развёрнутый ответ. 1 - там топик живё...

увеличение партиций не приводит к ребалансу сообщений в существующих партициях, просто новые партиции начнут заполняться новыми сообщениями и подравняются когда пройдет полный цикл по ретеншену

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

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

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
Всем добрый вечер, Рад оказаться в кругу единомышленников. Начинаю погружаться в мир .net веба. Зовут Ерасыл 🖖 У меня назрел вопрос: Какой процент проектов, прошедшие через в...
Ерасыл
6
Чому? Да тому що без GiT не уявляю нормального проекта а коли код в базі то то так собі
Dmytro Lukianenko
3
Карта сайта