Introducción

Configuración y Tiempo de Ejecución

The SEPA CT PASO2 CSM es esencialmente una aplicación independiente que puede ejecutarse como un servicio, al igual que cualquier otra. IPF application despliegue. Así que, como decida ejecutar su IPF applications usted puede hacer lo mismo para esto CSM.

Configuración

A continuación, puede ver la configuración mínima necesaria para poner el servicio en funcionamiento. Tenga en cuenta los aspectos clave relacionados con la provisión de la MongoDB URL, el predeterminado Akka configuración y su Kafka URL.

akka {
  cluster.seed-nodes = ["akka://"${actor-system-name}"@0.0.0.0:"${akka.remote.artery.canonical.port}]
  remote.artery {
    canonical.port = 55001
    canonical.hostname = 0.0.0.0
    bind.hostname = 0.0.0.0
    bind.port = 55001
  }
}
ipf.mongodb.url = "mongodb://ipf-mongo:27017/sepact"

ipf.csm.sepa-ct {
  processing-entity {
    valid-agent-bics = [
      {
        direct-participant-bic = "<BICFI>"
        indirect-participant-bics = [
          "<BICFI>"
        ]
      }
    ]
  }
}

common-kafka-client-settings {
  bootstrap.servers = "kafka:9092"
}

akka.kafka {
  producer {
    kafka-clients = ${common-kafka-client-settings}
  }
  consumer {
    kafka-clients = ${common-kafka-client-settings}
  }
}

Configuración Específica del Cliente

Por supuesto, puede proporcionar configuraciones específicas para el cliente en ciertos aspectos dentro del servicio.

Una cosa común que usted podría considerar hacer específica son los Kafka nombres de temas (por ejemplo Desmenuzador Kafka Configuración).

Otras configuraciones están disponibles y se describen en la sección correspondiente del documento de características (Características).

Ejecutando

El siguiente yml es un ejemplo para que usted pueda levantar el servicio localmente y contiene la configuración para los contenedores dependientes (Kafka, Zookeeper y MongoDB). Usted debe seleccionar la sección apropiada para "step2csm" que tomará como punto de partida para su entorno de despliegue.

version: "2.1"

services:

  ipf-mongo:
    image: mongo:4.4.15
    container_name: ipf-mongo
    ports:
      - "27018:27017"
    healthcheck:
      test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet

  step2csm:
    image: releases-registry.ipfdev.co.uk/sepact-csm-application-kafka:0.1.0
    container_name: sepact-csm-application
    ports:
      - "8083:8080"
      - "8561:8558"
      - "5009:5005"
      - "55003:55001"
      - "9003:9001"
      - "8087:8084"
    volumes:
      - /tmp/logs:/ipf/logs
      - ./config/step2csm:/sepact-csm-application-kafka/conf
    environment:
      - IPF_JAVA_ARGS=-Dma.glasnost.orika.writeClassFiles=false -Dma.glasnost.orika.writeSourceFiles=false -Dconfig.override_with_env_vars=true
    depends_on:
      - ipf-mongo
    healthcheck:
      test: [ "CMD", "curl", "http://localhost:8080/actuator/health" ]


  zookeeper:
    image: zookeeper:latest
    container_name: zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka:2.13-2.7.1
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
      - "9099:9099"
    environment:
      - KAFKA_BROKER_ID=0
      - KAFKA_AUTO_CREATE_TOPICS_ENABLE=false
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LOG_RETENTION_MINUTES=10
      - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
      - KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS=1
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=TEST:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_LISTENERS=PLAINTEXT://:9092,TEST://:9099
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,TEST://localhost:9099
      - KAFKA_CREATE_TOPICS=IPF_PROCESSING_DATA:1:1,PMS_TO_PIS:1:1,PIS_TO_PMS:1:1,PIS_TO_PES:1:1,PRS_TO_IPF:1:1

  kafdrop:
    image: obsidiandynamics/kafdrop:latest
    container_name: kafdrop
    ports:
      - "9000:9000"
    environment:
      - KAFKA_BROKERCONNECT=kafka:9092
    depends_on:
      - kafka