Comments 9
Когда использовать Kafka
- При Event-driven architecture ...
Я бы не утверждал так однозначно. Kafka может потерять сообщения, а в RabbitMQ есть, как вы написали, есть Fanout Exchange, который должен работать с любым динамическим числом подов.
Я не работал в продакшене ни с той, ни с другой технологией, но когда выбирал платформу для event-driven, решил не в пользу кафки. Там слишком много минусов. У классических брокеров гораздо больше фишек, за что приходится платить масштабированием.
Kafka может потерять сообщения
Опишите пожалуйста механику?
а в RabbitMQ есть, как вы написали, есть Fanout Exchange
В Kafka он тоже есть
Опишите пожалуйста механику?
https://developer20.com/when-you-can-nose-messages-in-kafka/
В Kafka он тоже есть
Я не про это писал, извините. Я не полностью скопировал цитату из поста. Там утверждалось, что
В RabbitMQ обязательно нужно знать, сколько у вас получателей. Особенно это актуально в микросервисном мире, где количество реплик сервиса меняется динамически.
В случае Fanout Exchange количество получателей и тем более реплик, значения не имеет. Либо я неправильно понял, как это работает, по описанию
Разумеется, в kafka это тоже есть. Там по факту только это и есть.
Вы вообще его использовали на практике?
SQS имеет хоть какойто смысл только когда вы лямбда-функции там же пишите.
Плюс к RabbitMQ - есть приоритезация сообщений в очередях;
Минус к Kafka - нет приоритезации сообщений в очередях, надо велосипедить;
И не пора ли добавлять Apache Pulsar к таким сравнениям (или ещё рано)?
В Kafka для этого применяют концепцию dead letter queue — отдельного места для сохранения битых сообщений.
DLQ есть и в кролике.
...А еще RabbitMQ может терять сообщения: например, если у него закончились ресурсы при доставке сообщения, то сообщение не доставится, но при этом сервис никому об этом не скажет до тех пор, пока мы не попробуем еще сообщение отправить. И вот если в этот момент сервер "сдохнет" совсем - например, вообще кто-нибудь убьет процесс RabbitMQ - то вот то "подвешенное" сообщение исчезнет совсем, в т.ч. и из базы.
Битва брокеров сообщений: RabbitMQ, Kafka, AWS SNS/SQS