Introducción

Esta guía le ayudará a configurar la Configuración de IPF Studio. DPS en su proyecto para comenzar a utilizar las capacidades de configuración dinámica respaldadas por el servicio de Configuración de Procesamiento Personalizado.

Requisitos previos

Antes de comenzar, asegúrese de que su proyecto esté configurado como un Spring Boot aplicación, ya que el adaptador depende de Spring Boot Auto-configuración.

 El DPS el adaptador se basa en definiciones de variables creadas en el Diseñador de Reglas.
Estas variables siguen los mismos principios y ciclo de vida que los estándar.
Variables del Diseñador de Reglas, y el adaptador simplemente proporciona un dinámico
fuente de configuración para ellos en tiempo de ejecución.

Para obtener detalles sobre cómo se definen y utilizan las variables en Rules Designer, consulte: Marco de Reglas - Visión general de expresiones dinámicas

Añadiendo Dependencias

Agregue lo siguiente Maven dependencies a su proyecto:

<dependency>
    <groupId>com.iconsolutions.dsl</groupId>
    <artifactId>ipf-studio-configuration-spring-starter</artifactId>
</dependency>
<dependency>
    <groupId>com.iconsolutions.ipf.studio.configuration.dps</groupId>
    <artifactId>ipf-studio-configuration-dps-spring-starter</artifactId>
</dependency>

El ipf-studio-configuration-spring-starter se requiere una dependencia para garantizar que el marco de configuración de IPF Studio esté habilitado en su aplicación.

Qué se configura

El ipf-studio-configuration-dps-spring-starter la dependencia proporciona Spring Boot Auto-configuración que configura automáticamente los siguientes componentes:

  • DpsConfigurableValueSource: Se integra con el marco de configuración de IPF Studio y se registra automáticamente como un ConfigurableValueSource en el ConfigurableValuesManager

  • CpsKafkaNotificationHandler: Maneja Kafka notificaciones para cambios de configuración

  • CustomProcessingSettingsQuery: Interfaz de consulta para interactuar con el cliente CPS

  • Conector de Cliente CPS: Capa de comunicación con el servicio CPS

Configuración

El adaptador requiere una configuración manual mínima ya que Spring Boot la auto-configuración maneja la mayor parte de la configuración automáticamente. El sistema:

  1. Registrar automáticamente el DpsConfigurableValueSource bean como un ConfigurableValueSource

  2. Configurar Kafka manejo de notificaciones para actualizaciones de configuración en tiempo real

  3. Establezca conexión con el Servicio de Configuración de Procesamiento Personalizado

Configuración Requerida

Para utilizar el adaptador, debe configurar los ajustes según lo establecido en el archivo de configuración de ejemplo a continuación:

ipf.dynamic-config-adapter {
  # Dynamic Configuration Types supported by the dynamic config adapter
  dynamic-config-types: ["customProcessingSettings"]

  # the period at which the values are refreshed automatically
  value-refresh-period: 1m

  # list of setting categories to be retrieved upon refresh
  setting-categories: ["InitiationSettings", "FXSettings"]

  # Correlation Entries map dynamic configuration values to the variables used by external systems
  correlation-entries: [
    {
      # variable key
      # For IPF studio, variable keys are made of the model name and variable name
      destination-variable-key: "test-model1.fxAllowed"
      # the type of the variable used on the registry; Currently supported types:
      # string
      # stringArray
      # number
      # numberArray
      # boolean
      variable-value-type: boolean
      # dynamic configs to be used to source values to be refreshed into the dynamic variables
      source-dynamic-config: {
        # the type of dynamic configuration
        config-type: "customProcessingSettings"
        # the name of dynamic configuration
        config-name: "fxEnabled"
      }
    }
  ]
}

Validación de Configuración Estática al Inicio

Al iniciar, se realizan las siguientes verificaciones en la configuración estática:

Regla / Condición Requisito Comportamiento de falla

Valor de la variable Tipo

Cada variable–valor–tipo debe coincidir con uno de los tipos de valor soportados.

La aplicación no se iniciará.

Tipos de configuración dinámica

dynamic-config-types no debe estar vacío

Se enviará un mensaje de notificación apropiado.

Entradas de correlación

las entradas de correlación no deben estar vacías

Se enviará un mensaje de notificación apropiado.

Clave de variable de destino

Cada clave de variable de destino debe ser única.

La aplicación no se iniciará.

Actualizar Todos los Disparadores

Al iniciar la aplicación / reiniciar

Al iniciar o reiniciar la aplicación, hay un desencadenador para recoger todas las configuraciones dinámicas relevantes y guardarlas en el registro. Actualmente, solo apoyamos la recuperación de custom configuración de procesamiento. Todo custom Los ajustes de procesamiento que coincidan con la configuración estática (entradas de correlación) se guardarán en el registro dinámico correspondiente, dependiendo de la entidad de procesamiento (global o específica).

En Intervalo Periódico

También hay un disparador en intervalos periódicos para actualizar todas las configuraciones dinámicas como se explicó anteriormente. El intervalo se establece bajo ipf.dynamic-config-adapter.value-refresh-period. El valor predeterminado es 1 minuto.

Actualizaciones de configuración en tiempo de ejecución a través de Notifications

Después de la carga de configuración inicial, el adaptador escucha continuamente por Kafka notificaciones del servicio de Configuración de Procesamiento Personalizado para gestionar actualizaciones de configuración en tiempo real.

Cuando se crea, actualiza o elimina un valor de configuración en CPS, el CustomProcessingSettingsKafkaNotificationHandler recibe una notificación y automáticamente:

  • Valida que la notificación coincida con las entradas de correlación configuradas.

  • Actualiza el registro de configuración dinámica apropiado (global o específico según la entidad de procesamiento).

  • Propaga cambios al servicio de procesamiento sin requerir un reinicio.

Esto permite actualizaciones de configuración dinámicas en tiempo de ejecución, lo que permite que los cambios de configuración surtan efecto de inmediato en todos los componentes relevantes.