AMQ adapter version w/o endpints for CleverSwarm integration
This commit is contained in:
Executable
+244
@@ -0,0 +1,244 @@
|
||||
name: clever_micro
|
||||
services:
|
||||
|
||||
rabbitmq: # copied from cleverdata backend branch feat/#190
|
||||
image: rabbitmq:3-management
|
||||
hostname: "my-rabbit"
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: springuser
|
||||
RABBITMQ_DEFAULT_PASS: TheCleverWho
|
||||
volumes:
|
||||
- "./container-data/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins"
|
||||
# - "./container-data/mq-data:/var/lib/rabbitmq"
|
||||
ports:
|
||||
- "5672:5672"
|
||||
- "8888:15672"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "rabbitmq-diagnostics -q ping"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
traefik:
|
||||
image: "traefik:v3.2"
|
||||
container_name: "traefik"
|
||||
command:
|
||||
- "--api.insecure=true"
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--entryPoints.web.address=:8085"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
ports:
|
||||
- "8085:8085"
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
|
||||
jaeger:
|
||||
image: "jaegertracing/all-in-one:latest"
|
||||
ports:
|
||||
- "16686:16686" # Jaeger UI
|
||||
- "14268:14268" # Jaeger collector Accepts jaeger.thrift spans directly over HTTP
|
||||
- "14250:14250" # Jaeger gRPC Accepts model.proto spans over gRPC
|
||||
- "6831:6831/udp" # Jaeger agent Accepts jaeger.thrift spans (Thrift compact)
|
||||
- "6832:6832/udp" # Jaeger agent Accepts jaeger.thrift spans (Thrift binary)
|
||||
- "5778:5778" # Jaeger agent admin + configuration
|
||||
- "4317:4317" # OpenTelemetry Protocol (OTLP) gRPC receiver
|
||||
- "4318:4318" # OpenTelemetry Protocol (OTLP) HTTP/protobuf receiver
|
||||
- "14269:14269" # Jaeger health check
|
||||
- "9411:9411" # Zipkin compatibility
|
||||
environment:
|
||||
COLLECTOR_ZIPKIN_HTTP_PORT: 9411
|
||||
COLLECTOR_OTLP_ENABLED: true
|
||||
|
||||
amqp-router:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
# dockerfile: Dockerfile.amqp-adapter
|
||||
#image: "amq-python:latest"
|
||||
image: "amqp_router:latest"
|
||||
ports:
|
||||
- "${AMQ_ADAPTER_PORT:-8081}:8080"
|
||||
environment:
|
||||
cm.amq-adapter.service-name: "amq-router"
|
||||
cm.amq-adapter.is-router: "true"
|
||||
cm.amq-adapter.generator-id: 164
|
||||
cm.amq-adapter.route-mapping: "null"
|
||||
|
||||
cm.dispatch.use-dlq: true
|
||||
cm.dispatch.use-confirms: false
|
||||
cm.dispatch.amq-host: rabbitmq
|
||||
cm.dispatch.amq-port: 5672
|
||||
cm.dispatch.amq-port-tls: 5671
|
||||
|
||||
cm.backpressure.threshold: 20
|
||||
cm.backpressure.time-window: 3000
|
||||
cm.backpressure.management-service-url: "management-service:8080"
|
||||
quarkus.otel.exporter.otlp.endpoint: "http://jaeger:4317"
|
||||
quarkus.application.name: API-Gateway-AMQ-Adapter
|
||||
quarkus.otel.service.name: API-Gateway-AMQ-Adapter
|
||||
env_file:
|
||||
- .env_secrets
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.router-app.rule=PathPrefix(`/`)" # default route
|
||||
- "traefik.http.routers.router-app.entrypoints=web"
|
||||
depends_on:
|
||||
rabbitmq:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl http://localhost:8080/amq-adapter-healthcheck"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
#
|
||||
# DLQ is special case of AMQ adapter that will handle rejected messages
|
||||
#
|
||||
dead-letter-queue-handler:
|
||||
image: "amqp_router:latest"
|
||||
ports:
|
||||
- "${DLQ_ADAPTER_PORT:-8089}:8080"
|
||||
environment:
|
||||
|
||||
cm.amq-adapter.service-name: "amq-dlq"
|
||||
cm.amq-adapter.is-router: "false"
|
||||
cm.amq-adapter.generator-id: 165
|
||||
cm.amq-adapter.route-mapping: "amq-dlq:DLX:DeadLetterQueue:#:0:0"
|
||||
|
||||
cm.dispatch.use-dlq: false
|
||||
cm.dispatch.use-confirms: false
|
||||
cm.dispatch.amq-host: rabbitmq
|
||||
cm.dispatch.amq-port: 5672
|
||||
cm.dispatch.amq-port-tls: 5671
|
||||
|
||||
cm.backpressure.threshold: 20
|
||||
cm.backpressure.time-window: 3000
|
||||
cm.backpressure.management-service-url: "management-service:8080"
|
||||
quarkus.application.name: AMQ-DeadLetterQueue
|
||||
quarkus.otel.exporter.otlp.endpoint: "http://jaeger:4317"
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: "http://jaeger:4317"
|
||||
env_file:
|
||||
- .env_secrets
|
||||
depends_on:
|
||||
amqp-router:
|
||||
condition: service_healthy
|
||||
#
|
||||
# test applications
|
||||
#
|
||||
amq-clever-book:
|
||||
image: "amqp_router:latest"
|
||||
ports:
|
||||
- "16000:8080"
|
||||
environment:
|
||||
|
||||
cm.amq-adapter.service-name: "amq-cleverbook-adapter"
|
||||
cm.amq-adapter.generator-id: 16
|
||||
cm.amq-adapter.route-mapping: "amq-clever-book::amq-clever-book:clever.book.localhost.#:5:0"
|
||||
|
||||
cm.dispatch.use-dlq: true
|
||||
cm.dispatch.use-confirms: false
|
||||
cm.dispatch.amq-host: rabbitmq
|
||||
cm.dispatch.amq-port: 5672
|
||||
cm.dispatch.amq-port-tls: 5671
|
||||
cm.dispatch.service-host: clever-book
|
||||
cm.dispatch.service-port: 8080
|
||||
|
||||
cm.backpressure.threshold: 20
|
||||
cm.backpressure.time-window: 3000
|
||||
cm.backpressure.management-service-url: "management-service:8080"
|
||||
quarkus.otel.service.name: CleverBook-AMQ-Adapter
|
||||
quarkus.application.name: CleverBook-AMQ-Adapter
|
||||
quarkus.otel.exporter.otlp.endpoint: "http://jaeger:4317"
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: "http://jaeger:4317"
|
||||
env_file:
|
||||
- .env_secrets
|
||||
depends_on:
|
||||
amqp-router:
|
||||
condition: service_healthy
|
||||
|
||||
#
|
||||
# Dummy app allowing POST and GET operations over REST API, emulating a real SpringBoot service
|
||||
#
|
||||
clever-book:
|
||||
build:
|
||||
context: clever-book/
|
||||
dockerfile: Dockerfile
|
||||
image: "book-management:latest"
|
||||
ports:
|
||||
- "16002:8080"
|
||||
restart: on-failure
|
||||
environment:
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
SPRING_APPLICATION_NAME: CleverBook
|
||||
spring.application.name: CleverBook
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: "http://jaeger:4317"
|
||||
otel.exporter.otlp.endpoint: "http://jaeger:4317"
|
||||
env_file:
|
||||
- .env_secrets
|
||||
depends_on:
|
||||
amqp-router:
|
||||
condition: service_healthy
|
||||
|
||||
#
|
||||
# a black box 3rd party app provisioned as-is
|
||||
#
|
||||
black-box-3rd-party:
|
||||
image: "traefik/whoami"
|
||||
container_name: "blackbox-third-party"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
|
||||
- "traefik.http.routers.whoami.entrypoints=web"
|
||||
|
||||
#
|
||||
# test applications for python
|
||||
#
|
||||
amq-clever-pybook:
|
||||
image: "amq-python:latest"
|
||||
# image: "amqp_router:latest"
|
||||
ports:
|
||||
- "16020:8080"
|
||||
environment:
|
||||
|
||||
cm.amq-adapter.service-name: "amq-cleverpybook-adapter"
|
||||
cm.amq-adapter.generator-id: 211
|
||||
cm.amq-adapter.route-mapping: "amq-clever-pybook::amq-clever-pybook:clever.pybook.localhost.#:5:0"
|
||||
|
||||
cm.dispatch.use-dlq: true
|
||||
cm.dispatch.use-confirms: false
|
||||
cm.dispatch.amq-host: rabbitmq
|
||||
cm.dispatch.amq-port: 5672
|
||||
cm.dispatch.amq-port-tls: 5671
|
||||
cm.dispatch.service-host: clever-pybook
|
||||
cm.dispatch.service-port: 5000
|
||||
|
||||
cm.backpressure.threshold: 20
|
||||
cm.backpressure.time-window: 3000
|
||||
cm.backpressure.management-service-url: "management-service:8080"
|
||||
quarkus.otel.service.name: CleverPyBook-AMQ-Adapter
|
||||
quarkus.application.name: CleverPyBook-AMQ-Adapter
|
||||
quarkus.otel.exporter.otlp.endpoint: "http://jaeger:4317"
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: "http://jaeger:4317"
|
||||
env_file:
|
||||
- .env_secrets
|
||||
depends_on:
|
||||
amqp-router:
|
||||
condition: service_healthy
|
||||
|
||||
#
|
||||
# Dummy app allowing POST and GET operations over REST API, emulating a real SpringBoot service
|
||||
#
|
||||
clever-pybook:
|
||||
image: "clever-pybook:latest"
|
||||
ports:
|
||||
- "16012:5000"
|
||||
restart: on-failure
|
||||
environment:
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: "http://jaeger:4317"
|
||||
OTEL_EXPORTER_OTLP_INSECURE: "true"
|
||||
depends_on:
|
||||
amqp-router:
|
||||
condition: service_healthy
|
||||
|
||||
Reference in New Issue
Block a user