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>

Configuración

Para configurar la implementación de MessageLogger que desea usar, deberá establecer lo siguiente en su archivo de configuración de la aplicación:

message.logger.type=kafka
message.logger.enabled=true