DPS Servicio de Notificación
Notificationsse envían después de que se realizan ciertas operaciones contra la configuración.
Notificationsestán deshabilitados por defecto. Para habilitarlos, propiedad ipf.dps.notification-service.enabled debe establecerse en verdadero.
Ahora solo soportamos notificaciones de operaciones CRUD. Por lo tanto, después de las operaciones de creación, actualización y eliminación, se envía una notificación.
Aquí está el ejemplo del mensaje DpsCrudNotification:
{
"settings": "settingType",
"logicalUniqueKey": "logicalUniqueKey",
"action": "CREATED"
}
Aquí está el ejemplo de la interfaz DpsNotificationServicePort:
public interface DpsNotificationServicePort {
<T> CompletionStage<Void> sendSettingCrudNotification(Setting<T> setting, String settingType, DpsCrudNotification.CrudNotificationAction action);
}
Al crear un entorno que requiere una aprobación, la notificación correspondiente no se enviará en el momento de la creación. Se enviará cuando se apruebe la configuración.
DPS Servicio de Notificación Kafka
Esta es la implementación de kafka de la DPS Servicio de notificaciones. Todas las notificaciones se envían a un tema de kafka dedicado.
Aquí está el ejemplo de configuración hocon para DPS Servicio de Notificación Kafka
ipf.dps {
notification-service {
enabled = true
kafka {
producer {
topic = DPS_CRUD_NOTIFICATION
restart-settings = ${common-flow-restart-settings}
kafka-clients {
group.id = dps-crud-notification-group
}
}
}
}
}
common-flow-restart-settings {
min-backoff = 1s
max-backoff = 5s
random-factor = 0.25
max-restarts = 5
max-restarts-within = 10m
}
Implementaciones personalizadas (sobrescribir el predeterminado)
DPSpermite a los servicios posteriores proporcionar su propia implementación de DpsNotificationServicePort. Si un bean de ese tipo está presente en el contexto de la aplicación,DPS lo utilizará en lugar del integrado Kafka/Adaptadores sin operación.
Cómo funciona
DPSproporciona dos adaptadores predeterminados, (Kafka y No-op) a través de la autoconfiguración.
Esos beans se declaran con @ConditionalOnMissingBean(DpsNotificationServicePort.class).
Por lo tanto, cualquier contenido proporcionado por el usuario bean de tipo DpsNotificationServicePort toma automáticamente precedencia.
Interacción con ipf.dps.notification-service.enabled
verdadero DPS crearía el Kafka adaptador a menos que proporcione un custom bean.
falso →DPS crearía el adaptador No-op a menos que usted proporcione un custom bean.
Personalizado bean está presente →custom la implementación se utiliza independientemente del valor de la propiedad.