Die Backend Microservices nutzen intern üblicherweise die gleichen Technologien und können deshalb meist über die gleichen Konfigurationsparameter gesteuert werden. Die folgenden Abschnitte beschreiben allgemeine Konfiguration, die für die meisten Microservices gültig ist.
Konfigurationsdateien
Die Konfiguration der Microservices erfolgt über die Datei application.properties
oder alternativ über application.yml
. Die Datei kann in das Docker Image gemountet werden.
Die Dateien unterscheiden sich leicht in der Syntax, Beispiel:
application.properties
logging.level.root=INFO
application.yml
logging:
level:
root: INFO
Bei yml-Dateien ist auf die korrekte Einrückung zu achten.
Zu jeder Property gibt es alternativ auch eine äquivalente Umgebungsvariable.
Default Konfiguration
Die Microservices bringen für viele der folgenden Konfigurationen Default-Einstellungen mit, die ohne weitere Konfiguration angewendet werden.
Log-Level
Das Log-Level kann wie folgt konfiguriert werden:
logging.level.root=INFO
Mögliche Werte sind DEBUG
, INFO
, WARN
und ERROR
.
REST API
Der nach außen freigegebene Port kann wie folgt konfiguriert werden:
server.port=8080
Der Context-Path der REST-Endpunkte kann wie wie folgt angepasst werden:
server.servlet.contextPath=/aep-as4-address-service
Absicherung per oauth2
Die Keycloak Anbindung wird wie folgt konfiguriert:
keycloak:
enabled: true
auth-server-url: https://blue-energy.de/keycloak/auth
realm: aep
resource: b2b-message-service
Über diese Konfiguration wird die REST-API per oauth2 abgesichert. D.h. ein Client muss bei jeder Anfrage ein gültiges Token mitliefern.
Management
Über actuator kann der Status eines Microservice geprüft werden. Actuator kann wie folgt aktiviert werden:
management.endpoints.web.exposure.include=health
management.endpoint.health.show-details=always
Der Management Port kann wie folgt konfiguriert werden:
management.server.port=8081
Da die Management Endpunkte von der Firewall nicht nach draußen freigegeben werden sollten, können weitere Security-Maßnahmen deaktiviert werden:
management.security.enabled=false
Weitere Details hierzu finden Sie hier.
Der server.servlet.contextPath
beeinflusst nicht die Endpunkte die über den Management Port freigegeben werden.
Memory
Falls die Java Anwendungen über nicht genug Speicher verfügen, kann dieser per Konfiguration erhöht werden:
JAVA_TOOL_OPTIONS=-XX:MaxDirectMemorySize=200M