Убран код проверки доставки сообщения
Убран код проверки доставки. Сейчас поставили эксперимент с этим кодом и без. Отправляем заведомо непроходное сообщение (больше установленного лимита) и попадаем в этот код. А без него, вроде как отправлено.
Выглядит так, что этот код нужен
typedef enum { / Message was never transmitted to the broker, or failed with * an error indicating it was not written to the log. * Application retry risks ordering, but not duplication. */ RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
/ Message was transmitted to broker, but no acknowledgement was
* received.
* Application retry risks ordering and duplication. */
RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
/** Message was written to the log and acknowledged by the broker.
* No reason for application to retry.
* Note: this value should only be trusted with \c acks=all. */
RD_KAFKA_MSG_STATUS_PERSISTED = 2
} rd_kafka_msg_status_t;
Из этого комментария следует, что Кафка может работать и без подтверждений, тогда успешным результатом будет являться RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED . Поэтому определение успешности лучше оставить прикладному коду, когда уже известно как сконфигурирована Кафка.
Убран код проверки доставки. Сейчас поставили эксперимент с этим кодом и без. Отправляем заведомо непроходное сообщение (больше установленного лимита) и попадаем в этот код. А без него, вроде как отправлено.
Выглядит так, что этот код нужен
Согласен, этот код нужен. Верну, как доберусь до исходников.