как узнать заказ продукции в библиотеке librdkafka? - PullRequest
0 голосов
/ 19 ноября 2018

в librdkafka,

Данные были помещены в очередь передачи с помощью следующей функции.

virtual ErrorCode   produce (Topic *topic, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t key_len, void *msg_opaque)

Результат передачи можно найти в dr_cb ​​(), зарегистрированном какобратный вызов через опрос (0).

class ExampleDeliveryReportCb : public RdKafka::DeliveryReportCb {
 public:
  void dr_cb (RdKafka::Message &message) {
    // I want to know the order of produce.
  }
};

Если я произвожу 10 раз, как я могу узнать, был ли третий продукт успешным?Я вижу фактические сообщения или количество сообщений, оставленных в очереди на передачу, но результат третьего процесса неизвестен.

Я хочу синхронизировать порядковый номер созданного сообщения и порядковый номер сообщениясообщается, что завершено через dr_cb.Что мне делать?

1 Ответ

0 голосов
/ 19 ноября 2018

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

Что касается сообщений, созданных в одном и том же разделе, они будут создаваться в своем первоначальном порядке, если только не существует ошибки, которая требует повторной попытки, и в этом случае возможна переупорядочение. Вы можете либо установить max.in.flight=1, чтобы избежать упорядочения, что, к сожалению, также снижает пропускную способность и увеличивает задержку, либо использовать предстоящий Idempotent Producer (только в основной ветке до следующего выпуска) с enable.idempotence=true, чтобы получить гарантированную заказанную доставку при очень низкой пропускной способности.

Вы можете использовать непрозрачное сообщение, чтобы прикрепить указатель на сообщение в продукте (), которое вы вернете как msg_opaque в отчете о доставке, что позволяет сопоставить отчеты о доставке с исходным созданным вами объектом.

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