Рассмотрим этот цикл событий:
- В то время как больше сообщений
- msg_in = consumer.Poll ()
- msg_out = transform (msg_in)
- service.Publish (msg_out)
Предположим, что один раздел и сосредоточиться на четвертой строке.Когда происходит сбой этого цикла, говорят, что в Кафку поступило 5 сообщений в порядке 1,2,3,4,5.И из этих Кафка получил только N <= 5.Покой потерян. </p>
Если нет попыток, что мы можем сказать?Что Кафка получил 1 или 1,2 или 1,2,3 или 1,2,3,4 или 1,2,3,4,5?Kafka дает гарантию заказа на раздел.
Если есть повторы попыток, упорядочение курса потеряно, и Кафка может получить любую перестановку P, превышающую то, что он получил, от m = 0 до N. Это понятно.
Я используюgolang wrap rdkafka из слияния, но давайте просто сосредоточимся на самой rdkafka.