Installation

Vorbereitung

  • Docker installieren
  • Um ordnungsgemäß zu funktionieren, sollte der Docker Engine mindestens 4GB Arbeitsspeicher zugewiesen werden.
    Docker Desktop -> Settings -> Resources -> Advanced
  • docker-service-environment aus dem GitLab clonen
  • SFTP-Server installieren/bereitstellen (Beispiel: Rebex Tiny SFTP Server)

Konfiguration der Archivierung

Die einzelnen Komponenten werden über die applicaton.yml Datein im entsprechenden config Ordner konfiguriert. Welche Einstellungen im Speziellen vorgenommen werden können ist unter der entsprechenden Seite der Dokumentation beschrieben. Der Großteil der Konfiguration wird allerdings über die .env Datei festgelegt und während des Startprozesses auf die einzelnen Services übertragen.

Konfiguration .env

docker

  • COMPOSE_PROJECT_NAME Projektname der docker-compose
  • VERSION Version der Microservices

starter-service

  • PERIOD_FROM Anfang der zu archivierenden Zeitspanne (yyyy-MM-dd hh:mm:ss)
  • PERIOD_TO Ende der zu archivierenden Zeitspanne (yyyy-MM-dd hh:mm:ss)

data-loader

  • ATTRIBUTE_IDS zu archivierende Attribut Ids. Siehe Data-Loader

b2b database

  • DATABASE_DRIVER_CLASS_NAME Klassenname des Datenbanktreibers (Bsp.: org.apache.derby.jdbc.ClientDriver für Derby Datenbanken)
  • DATABASE_URL URL der Datenbank
  • DATABASE_USER User für den Datenbankzugang
  • DATABASE_PASSWORD Passwort für den Datenbankzugang

sftp archive

  • SFTP_HOST IP-Adresse des SFTP Servers
  • SFTP_PORT SFTP Server Port
  • SFTP_USER Server User
  • SFTP_PASSWORD Server Passwort
  • SFTP_PRIVATE_KEY SSH Key für den SFTP Server
  • SFTP_DIRECTORY Archivverzeichnis auf dem Server

    rabbitmq

    Hier müssen in der Regel keine Einstellungen vorgenommen werden. User und Passwort wird bereits über die config/rabbitmq/definitions.json festgelegt, diese Werte müssen übereinstimmen.

  • RABBITMQ_HOST Host Adresse (default: rabbitmq)
  • RABBITMQ_PORT MessageQueue Port (default: 5672)
  • RABBITMQ_USER User für die MessageQueue (siehe config/rabbitmq/definitions.json)
  • RABBITMQ_PASSWORD Passwort für die MessageQueue (siehe config/rabbitmq/definitions.json)

    elasticsearch

    Wird keine externe Elasticsearchinstanz verwendet können auch hier die Standartwerte verwendet werden. Über das Feld INDEX_NAME wird der Name des Archivs innerhalt von Elasticsearch konfiguriert.

  • ELASTICSEARCH_HOST Host adresse (default: elasticsearch)
  • ELASTICSEARCH_HTTP_PORT Host http port (default: 9200)
  • ELASTICSEARCH_PORT Host port (default: 9300)
  • CLUSTER_NAME Index Cluster
  • NODE_NAME Node Name
  • INDEX_NAME Name des Indexes (default: archive)

Start docker-environment

Die B2B Datenbank und der SFTP Server müssen laufen und erreichbar sein, andernfalls ist die docker-compose nicht ausführbar. Der starter-service wird über eine separate docker-compose-starter-service.yml gestartet. Die Ausführung geschieht nur einmal, um den Archivierungsprozess anzustoßen.

  • Docker hat genug RAM
  • B2B Datenbank läuft und hat alle notwendigen Tabellen
  • SFTP Server läuft und ist konfiguriert
  • Alle Zugänge und Ports sind richtig konfiguriert
  • Wichtig: Unter config/data-loader und config/finish-service müssen die .jar Datein der Datenbanktreiber liegen, diese werden später auf den Servicecontainer kopiert um die entsprechende Funktionalität bereit zu stellen.

Befehle

  • docker-compose up Baut und startet alle Container, Netzwerke der Archivlösung und startet diese.
  • docker-compose down Stoppt und löscht bestehende Container und Netzwerke.
  • docker-compose start/stop Startet bzw. stoppt die docker-compose ohne die Container zu löschen bzw. neu zu erschaffen.
  • docker exec -it container-name sh Öffnet ein Terminal im entsprechenden Container.

Skalieren

Die Anzahl der einzelnen Services (ausgenommen RabbitMQ und Elasticsearch) der Lösung kann nach Bedarf angepasst werden. Um einen Service zu skalieren muss die Anzahl im Startbefehl angepasst werden.

  • docker compose up --scale data-loader=3 um drei Instanzen des data-loaders zu starten. Die Namen der Services entsprechen denen der docker-compose.yml.

Start starter-service

Der starter-service wird über die docker-compose-starter-service.yml gestartet. Konfigurationen werden über die allgemeine .env vorgenommen.

  • docker-compose -f docker-compose-starter-service.yml up Startet den Service für den im .env angegebenen Zeitraum.  
View Me   Edit Me