Является ли Kafka правильным решением для сообщений с зависимостями? - PullRequest
0 голосов
/ 16 октября 2018

У нас есть сообщения, которые являются зависимыми.скажем, у нас есть 4 сообщения M1, M2, M1_update1, (должны обрабатываться только после обработки M1), M3 (должны обрабатываться только после обработки M1, M2).

В этом примере только M1 и M2могут обрабатываться параллельно, другие должны быть последовательными.Я знаю, что сообщения в одном разделе темы Кафки обрабатываются последовательно.Но откуда мне знать, что M1, M2 обрабатываются, и теперь пришло время отправить сообщения M1_update1 и M3 в тему?Является ли Kafka правильным выбором для такого варианта использования?Любые идеи приветствуются!

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Вы в основном описываете очередь сообщений, которая гарантирует порядок.По замыслу Kafka не гарантирует порядок, за исключением случая, который вы упомянули, когда тема имеет один раздел.В этом случае, однако, вы не в полной мере используете способность Kafka максимизировать пропускную способность путем распараллеливания данных в разделах.

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

0 голосов
/ 16 октября 2018

Kafka используется в качестве системы обмена сообщениями pub-sub, которая обладает высокой масштабируемостью и отказоустойчивостью.

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

...