Documentation for a newer release is available.
View Latest
Kafka MessageLogger
| Antes de decidir usar un logger específico, vale la pena considerar cómo el registro de mensajes y otros datos encaja en su estrategia general. Por ejemplo, si está usando ODS, debería usar las implementaciones de MessageLogger proporcionadas por IPF Processing Data, específicamente vea Processing Data egress. |
Message-logger-impl proporciona una implementación Kafka de MessageLogger, y su implementación específica de logMessage usa un SendConnector para enviar el messageLogEntry a un tópico de Kafka:
public void logMessage(final MessageLogEntry messageLogEntry) {
sendConnector.send(messageLogEntry.getProcessingContext(), messageLogEntry)
.thenAccept(outcome -> {
var deliveryReport = outcome.getDeliveryReport();
if (deliveryReport.isFailure()) {
log.error("Failed to deliver: {}. Delivery report: {}", messageLogEntry, deliveryReport);
}
})
.exceptionally(e -> {
log.error("Failed to deliver: {}.", messageLogEntry, e);
return null;
})
;
}
Esto usa el IPF core MessageLogEntry.
La configuración predeterminada para esto registra mensajes en un tópico llamado MESSAGE_LOG, pero se puede cambiar vía el ipf.conf; valores predeterminados a continuación:
message.logger {
send-connector {}
kafka {
producer {
topic = MESSAGE_LOG
restart-settings = {
min-backoff = 1s
max-backoff = 5s
random-factor = 0.25
max-restarts = 5
max-restarts-within = 10m
}
kafka-clients {
client.id = message-logger
}
}
}
}
Dependencias
Se proporciona un starter que integrará tanto los loggers de Kafka como de Mongo
<dependency>
<groupId>com.iconsolutions.ipf.core.messagelogger</groupId>
<artifactId>message-logger-starter</artifactId>
</dependency>
Alternativamente, puede incluir solo la dependencia específica de Kafka:
<dependency>
<groupId>com.iconsolutions.ipf.core.messagelogger</groupId>
<artifactId>message-logger-kafka</artifactId>
</dependency>