Я вижу в некоторых ответах вокруг переполнения стека и в целом в Интернете идея о том, что Kafka не поддерживает потребление, признает или что ровно столько раз, когда потребление трудно достичь.Kafka только один раз гарантия на потребление
В следующей записи в качестве образца Is there any reason to use RabbitMQ over Kafka?, я могу прочитать следующие высказывания:
RabbitMQ будет держать все государства о потребляются/признаваемых/неподтвержденные сообщения, в то время как Кафка не
или
Точно как только гарантии с Kafka трудно получить.
Это не то, что я понимаю, прочитав официальную Кафка документации по адресу: https://kafka.apache.org/documentation/#design_consumerposition
предыдущей документации говорится, что Кафка не использует традиционную реализацию подтверждени (как RabbitMQ). Вместо этого они полагаются на отношениях секций потребителя и смещение ...
Это делает эквивалент подтверждений сообщений очень дешевых
Может кто-нибудь, пожалуйста, объясните, почему «только один раз гарантии потребления» в Кафке трудно достигать? и как это отличается от Kafka против другого более традиционного Message Broker как RabbitMQ? Что мне не хватает?
Возможный дубликат [Apache Kafka: точно в версии 0.10] (http://stackoverflow.com/questions/38884267/apache-kafka-exactly-once-in-version-0-10) –
Что вы подразумеваете под «только один раз гарантии потребления» обычно называют «ровно один раз». –
1.AFAIK, ** потребление ** ровно один раз - проблема потребителя. Apache Kafka является брокером, поддерживающим пара-подэлемент. Таким образом, он традиционно не отслеживает смещение для потребителя. Это до потребителя, чтобы управлять тем, как потреблять. например Для обработки потока ваниль [Apache Storm] (http://storm.apache.org/releases/2.0.0-SNAPSHOT/Guaranteeing-message-processing.html) гарантирует хотя бы один раз, когда [Apache Trident] (http: // storm.apache.org/releases/2.0.0-SNAPSHOT/Trident-tutorial.html) - это точно один раз. – Confused