Мой вопрос касается порядка отправки сообщений из CouchBase в тему Kafka.На мой взгляд, это не очень хорошо задокументировано, и, следовательно, этот вопрос.
Вариант использования
Вариант использования - получить изменения для каждого документа и получить последние изменения длякаждый документ.До тех пор, пока сообщения не дойдут до темы Kafka, ее реальное время и пользователь темы Kafka также могут быть пакетным приложением.Это означает, что я могу получить несколько событий для одного и того же документа в данном пакете.
Мое понимание
CouchBase Bucket имеет несколько vBuckets
Когда документ вставляется в корзину, он попадает в один из vBuckets (на основе хэша ключа документа).Это означает, что если документ с тем же ключом обновляется, он отправляется в тот же vBucket.
CouchBase передает события изменений с использованием DCP для использования другими приложениями, такими как соединитель источника Kafka
CouchBase обеспечивает упорядочение событий для vBucket.Порядок размещения в кластере не гарантируется.Это означает, что если документ с одним и тем же ключом обновляется несколько раз, то порядок этих событий гарантирован.
Теперь, когда исходный соединитель Kafka читает события DCP, он читает втот же порядок, который поступил в потоки DCP
Заказ в vBucket гарантирован.Пока все хорошо
Вопрос
Когда исходный соединитель Kafka публикует сообщения в теме Kafkaподдерживает ли он тот же порядок?
Как исходный соединитель определяет разделы kafka для сообщений?(при условии, что в теме будет более 1 раздела)
Примечание
версия CouchBase - 5.5.3
Разъем источника Kafka - 3.4.5