Setup with a scalable transfer-service (uses a consumer-group)
[demos/kafka/demos-kafka-payment-system-setup] / docker-compose.yml
1 version: '3.2'
2 services:
3   zookeeper:
4     image: confluentinc/cp-zookeeper:6.2.0
5     ports:
6       - 2181:2181
7     environment:
8       ZOOKEEPER_CLIENT_PORT: 2181
9
10   kafka:
11     image: confluentinc/cp-kafka:6.2.0
12     ports:
13       - 9092:9092
14     environment:
15       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
16       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
17       KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092
18       KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
19       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
20     depends_on:
21       - zookeeper
22
23   messages:
24     image: confluentinc/cp-kafka:6.2.0
25     command: >
26       kafka-console-consumer
27         --bootstrap-server kafka:9093
28         --from-beginning
29         --property print.key=true
30         --property key.separator=": "
31         --topic transfers
32
33   peter:
34     image: juplo/payment-service-demo--transfer:2.0.0
35     ports:
36       - 8091:8080
37     environment:
38       juplo.transfer.bootstrap-servers: kafka:9093
39       juplo.transfer.group-instance-id: peter
40       juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
41       juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
42       juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
43       juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
44       juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
45     depends_on:
46       - zookeeper
47       - kafka
48
49   ute:
50     image: juplo/payment-service-demo--transfer:2.0.0
51     ports:
52       - 8092:8080
53     environment:
54       juplo.transfer.bootstrap-servers: kafka:9093
55       juplo.transfer.group-instance-id: ute
56       juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
57       juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
58       juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
59       juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
60       juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
61     depends_on:
62       - zookeeper
63       - kafka
64
65   franz:
66     image: juplo/payment-service-demo--transfer:2.0.0
67     ports:
68       - 8093:8080
69     environment:
70       juplo.transfer.bootstrap-servers: kafka:9093
71       juplo.transfer.group-instance-id: franz
72       juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
73       juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
74       juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
75       juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
76       juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
77     depends_on:
78       - zookeeper
79       - kafka
80
81   beate:
82     image: juplo/payment-service-demo--transfer:2.0.0
83     ports:
84       - 8094:8080
85     environment:
86       juplo.transfer.bootstrap-servers: kafka:9093
87       juplo.transfer.group-instance-id: beate
88       juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
89       juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
90       juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
91       juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
92       juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
93     depends_on:
94       - zookeeper
95       - kafka
96
97   klaus:
98     image: juplo/payment-service-demo--transfer:2.0.0
99     ports:
100       - 8095:8080
101     environment:
102       juplo.transfer.bootstrap-servers: kafka:9093
103       juplo.transfer.group-instance-id: klaus
104       juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
105       juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
106       juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
107       juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
108       juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
109     depends_on:
110       - zookeeper
111       - kafka