ecos-registry-app
Назначение:
Образ одного из центральных компонентов микросервисной архитектуры. Приложение объединяет eureka REST сервис (load balancing, registering, service discovery) и Spring Cloud Config server для централизации конфигурации.
Теги:
jhipster/jhipster-registry:v4.1.1 - официальный образ
nexus_ecos_registry - собственная сборка
Базовые образы:
openjdk:8-jre-alpine - официальный образ openjdk 8 jre на базе alpine linux
Шаблон сервиса docker-compose:
jhipster-registry:
logging:
options:
max-size: "10m"
max-file: "5"
image: jhipster/jhipster-registry:<JHIPSTER_APP_IMAGE
container_name: jhipster-registry
hostname: jhipster-registry
restart: unless-stopped
stop_grace_period: 1m
volumes:
- /opt/micro/central-server-config:/central-config
environment:
- _JAVA_OPTIONS=-Xmx512m -Xms256m -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=10004 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=/central-config/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/central-config/jmxremote.password -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.rmi.port=10004 -Djava.rmi.server.hostname=<HOST_IP
- SPRING_PROFILES_ACTIVE=dev,swagger
- SPRING_SECURITY_USER_PASSWORD=alfr3sc0
- JHIPSTER_REGISTRY_PASSWORD=alfr3sc0
- SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE=native
- SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_LOCATIONS=file:/central-config/docker-config/
expose:
- 8761/tcp
- 10004/tcp
networks:
- app_network
Используемые переменные:
_JAVA_OPTIONS - параметры для jvm
SPRING_PROFILES_ACTIVE - используемые при развертывании профили
SPRING_SECURITY_USER_PASSWORD - пароль пользователя для аутентификации в cloud config
JHIPSTER_REGISTRY_PASSWORD - пароль пользователя для аутентификации в eureka load balancer
Документация по spring cloud config
Известные проблемы:
Требуется закончить переход на ecos-registry проект
Утилизации цпу
Требуется конфигурация registry как экспортера метрик микросервисов в Prometheus
Использование localPath расположения конфигурационного файла
Не реализован доступ к ui registry через location
Не используется JWT token
Типовой вывод успешного развертывания в лог контейнера:
jhipster-registry | ----------------------------------------------------------
jhipster-registry | Application 'jhipster-registry' is running! Access URLs:
jhipster-registry | Local: http://localhost:8761
jhipster-registry | External: http://172.18.0.11:8761
jhipster-registry | Profile(s): [composite, dev, swagger]
jhipster-registry | ----------------------------------------------------------
jhipster-registry | 2020-04-28 20:35:36.017 INFO 1 --- [ main] i.g.j.registry.JHipsterRegistryApp :
jhipster-registry | ----------------------------------------------------------
jhipster-registry | Config Server: Connected to the JHipster Registry running in Docker
jhipster-registry | ----------------------------------------------------------