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-composeVERSION
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 DatenbankDATABASE_USER
User für den DatenbankzugangDATABASE_PASSWORD
Passwort für den Datenbankzugang
sftp archive
SFTP_HOST
IP-Adresse des SFTP ServersSFTP_PORT
SFTP Server PortSFTP_USER
Server UserSFTP_PASSWORD
Server PasswortSFTP_PRIVATE_KEY
SSH Key für den SFTP ServerSFTP_DIRECTORY
Archivverzeichnis auf dem Serverrabbitmq
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 (sieheconfig/rabbitmq/definitions.json
)RABBITMQ_PASSWORD
Passwort für die MessageQueue (sieheconfig/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 ClusterNODE_NAME
Node NameINDEX_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
undconfig/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 diedocker-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 derdocker-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.