Couchbase kafka исходный соединитель порядок сообщений - PullRequest
1 голос
/ 05 июля 2019

Мой вопрос касается порядка отправки сообщений из CouchBase в тему Kafka.На мой взгляд, это не очень хорошо задокументировано, и, следовательно, этот вопрос.

Вариант использования

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

Мое понимание

  1. CouchBase Bucket имеет несколько vBuckets

  2. Когда документ вставляется в корзину, он попадает в один из vBuckets (на основе хэша ключа документа).Это означает, что если документ с тем же ключом обновляется, он отправляется в тот же vBucket.

  3. CouchBase передает события изменений с использованием DCP для использования другими приложениями, такими как соединитель источника Kafka

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

  5. Теперь, когда исходный соединитель Kafka читает события DCP, он читает втот же порядок, который поступил в потоки DCP

  6. Заказ в vBucket гарантирован.Пока все хорошо

Вопрос

  1. Когда исходный соединитель Kafka публикует сообщения в теме Kafkaподдерживает ли он тот же порядок?

  2. Как исходный соединитель определяет разделы kafka для сообщений?(при условии, что в теме будет более 1 раздела)

Примечание

версия CouchBase - 5.5.3

Разъем источника Kafka - 3.4.5

...