Кафка тема заказа - PullRequest
       47

Кафка тема заказа

1 голос
/ 06 ноября 2019

У меня есть Kafka Connector, использующий что-то вроде следующего:

SELECT CAST ( id as VARCHAR) as key_id, id ...
FROM table1 
JOIN (SELECT id as tID FROM table1 t WHERE t.id = 87002) v 
ON v.tID = id 

Если я выполняю на БД, с ORDER BY ID я получаю записи в ожидаемом порядке со следующими идентификаторами

322633
324066
324084
324107

Я указал приращение тяги разъема, поэтому разъем подключается к следующему:

WHERE id > ? ORDER BY id ASC 

Вот где я запутался. В потоке, в который пишет этот соединитель, записи отображаются в другом порядке! Они в

322633
324084
324107
324066   (huh!!!?) 

Любая помощь в понимании этого поведения была бы великолепна.

1 Ответ

0 голосов
/ 07 ноября 2019

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

Таким образом, потребитель может получить сообщение о потреблении из темы в любом порядке, нет гарантийного поручения на стороне потребителя.

Если вы хотите строго соблюдать порядокВы можете использовать тему одного раздела, но в этом случае вы можете потерять параллелизм.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...