X-Git-Url: https://juplo.de/gitweb/?p=demos%2Fkafka%2Fwordcount;a=blobdiff_plain;f=docker-compose.yml;h=1c5bfc4bf66b7e96abfc861c349da1d86023173c;hp=092eb766796c68514c7ff8c42469309d56b272fb;hb=refs%2Fheads%2Fmaster;hpb=086b22008598b03c5ba94d58cd3d1d022f6eb73e diff --git a/docker-compose.yml b/docker-compose.yml index 092eb76..0252da4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,26 @@ -version: '3.2' services: - zookeeper: - image: confluentinc/cp-zookeeper:6.2.0 - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ports: - - 2181:2181 kafka: - image: confluentinc/cp-kafka:6.2.0 + image: confluentinc/cp-kafka:7.5.1 environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_LISTENERS: DOCKER://:9092, LOCALHOST://:9082 + KAFKA_NODE_ID: 1 + KAFKA_LISTENERS: CONTROLLER://:9072, DOCKER://:9092, LOCALHOST://:9082 KAFKA_ADVERTISED_LISTENERS: DOCKER://kafka:9092, LOCALHOST://localhost:9082 KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: DOCKER:PLAINTEXT, LOCALHOST:PLAINTEXT + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT, DOCKER:PLAINTEXT, LOCALHOST:PLAINTEXT + KAFKA_PROCESS_ROLES: broker, controller + KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9072 + KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER + CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 + KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" ports: - 9092:9082 - 9082:9082 - depends_on: - - zookeeper - + stop_grace_period: 120s traefik: image: "traefik:v2.5" @@ -40,7 +37,7 @@ services: - "/var/run/docker.sock:/var/run/docker.sock:ro" recorder: - image: juplo/wordcount--recorder:1.0.1 + image: juplo/wordcount--recorder:1.1.1 labels: - "traefik.enable=true" - "traefik.http.routers.recorder.rule=Host(`recorder.localhost`)" @@ -51,7 +48,7 @@ services: - kafka users: - image: juplo/wordcount--users:1.0.4 + image: juplo/wordcount--users:1.0.5 labels: - "traefik.enable=true" - "traefik.http.routers.users.rule=Host(`users.localhost`)" @@ -61,8 +58,19 @@ services: depends_on: - kafka + splitter: + image: juplo/wordcount--splitter:1.1.5 + labels: + - "traefik.enable=true" + - "traefik.http.routers.splitter.rule=Host(`splitter.localhost`)" + - "traefik.http.routers.splitter.entrypoints=web" + environment: + juplo.wordcount.splitter.bootstrap-server: kafka:9092 + depends_on: + - kafka + counter: - image: juplo/wordcount--counter:1.0.1 + image: juplo/wordcount--counter:1.2.14 labels: - "traefik.enable=true" - "traefik.http.routers.counter.rule=Host(`counter.localhost`)" @@ -73,7 +81,7 @@ services: - kafka top10: - image: juplo/wordcount--top10:1.0.1 + image: juplo/wordcount--top10:1.0.2 labels: - "traefik.enable=true" - "traefik.http.routers.top10.rule=Host(`top10.localhost`)" @@ -84,7 +92,7 @@ services: - kafka query: - image: juplo/wordcount--query:1.0.4 + image: juplo/wordcount--query:1.0.5 labels: - "traefik.enable=true" - "traefik.http.routers.query.rule=Host(`query.localhost`)" @@ -134,13 +142,25 @@ services: image: juplo/toolbox command: bash -c " cub kafka-ready -b kafka:9092 1 60 ; - kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic recordings ; - kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic users ; - kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic countings ; - kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic top10 ; + kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic recordings ; + kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic users ; + kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic words ; + kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic countings ; + kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic top10 ; sleep infinity" -networks: - default: - external: - name: trion + akhq: + image: tchiotludo/akhq:0.18.0 + labels: + - "traefik.enable=true" + - "traefik.http.routers.akhq.rule=Host(`akhq.localhost`)" + - "traefik.http.routers.akhq.entrypoints=web" + expose: + - 8080 + environment: + AKHQ_CONFIGURATION: | + akhq: + connections: + docker-kafka-server: + properties: + bootstrap.servers: "kafka:9092"