Cuando un productor de Kafka invoca send(), la mayoría de las bibliotecas cliente devuelven una función callback o un future. Si la función callback se ejecuta correctamente o el Future se completa sin excepciones, significa que el mensaje se envió.
Compruebe la entrega en el código del productor
Inspeccione el resultado que devuelve send() para confirmar la entrega. El siguiente ejemplo en Java utiliza un Callback para comprobar si el broker confirmó la escritura:
producer.send(new ProducerRecord<>(topic, key, value), (metadata, exception) -> {
if (exception != null) {
// Send failed -- log the error and handle the retry
exception.printStackTrace();
} else {
// Send succeeded -- metadata contains the target partition and offset
System.out.printf("Message delivered: topic=%s, partition=%d, offset=%d%n",
metadata.topic(), metadata.partition(), metadata.offset());
}
});
Una función callback exitosa confirma que el broker reconoció la escritura. La garantía exacta depende de la configuración acks del productor:
|
**Valor de |
Significado de una función callback exitosa |
|
|
El mensaje se transmitió por la red, pero el broker no confirmó su recepción. |
|
|
El líder de la partición escribió el mensaje en su registro local. |
|
|
Tanto el líder de la partición como todas las réplicas sincronizadas reconocieron el mensaje. Esta opción ofrece la mayor garantía de durabilidad. |
Conacks=0, una función callback exitosa no garantiza que el broker haya recibido el mensaje. Para cargas de trabajo en producción, mantenga el valor predeterminadoacks=allpara obtener la máxima garantía de durabilidad.
Compruebe la entrega en la consola de ApsaraMQ for Kafka
También puede usar los siguientes métodos para comprobar si un mensaje se envió correctamente desde la consola de ApsaraMQ for Kafka:
Revise el estado de las particiones: abra la página Topic Details y diríjase a la pestaña Partition Status. Esta pestaña muestra en tiempo real la cantidad de mensajes en cada partición. Un aumento en este contador indica que el productor está escribiendo en el topic. Para más información, consulte View partition status.
Consulte las gráficas de tráfico: en la misma página Topic Details, vaya a la pestaña CloudMonitor. Las gráficas de tráfico muestran el rendimiento con intervalos de un minuto. Si observa un incremento tras iniciar el productor, esto confirma que los mensajes están llegando al broker.