В топике N партиций. Есть N консюмеров, который топик читают. Можно ли как-то обеспечить масштабируемость консюмеров свыше этих N партиций? Может слуиться ситуация пиковой нагрузки, когда гонсюмер выплюнет, скажем, миллиард сообщений и хотелось бы в такие моменты скейлить консюмеров, чтобы бытрее разгребли. Но скейлить больше N нет смысла.
2. В партицию летят сообщения, которые тут же обрабатываются консюмером. Иногда попадаются такие сообщения, для обработки которых нужно подождать еще одного сообщения в этой же партиции. Хранить у себя в конюмере - так себе вариант (если упадет/ребаланснется, то потеряется этот стейт). KSQL и джойн стрима на себя же?
1. Именно вычитывальщиков(консумеров) больше чем N не сделать, но каждый вычитывальщик может обрабатывать сообщения в многопотоке (в спринг-кафке вроде была возможность это настраивать) если ваши данные позволяют это делать (не зависят от порядка, обрабатываются одинаково быстро и им нужно только cpu/ram для этого, которые имеются в запасе) 2. если боитесь падений и ребалансирвоки, то кажется что вам недопустимо терять стейт, а значит и вариантов кроме как использовать базу не будет (либо для сохранения стейта, либо для хранения оффсетов) с KSQL не работал, поэтому может оно конечно и решит вашу проблему
Обсуждают сегодня