Вы в основном описываете очередь сообщений, которая гарантирует порядок.По замыслу Kafka не гарантирует порядок, за исключением случая, который вы упомянули, когда тема имеет один раздел.В этом случае, однако, вы не в полной мере используете способность Kafka максимизировать пропускную способность путем распараллеливания данных в разделах.
Поскольку сообщения зависят друг от друга, для этого потребуется логический уровень, который является ядром Kafka.сам не обеспечивает.Если я правильно понимаю, и обработка происходит после того, как сообщение получено от Kafka, вам потребуется какое-то уведомление на стороне потребителя, которое получит и обработает M1
и M2
и так или иначеуведомить производителя с другой стороны, теперь можно отправлять M1_update
и M3
.Это определенно выходит за рамки того, что предоставляет ядро Kafka.Вы все еще можете использовать Kafka для создания чего-то подобного, но, возможно, есть другие решения, которые будут работать лучше для вас.