feat: Configrued the `chat-backend` with a working static sharding
[demos/kafka/chat] / docker-compose.yml
index 9f476d0..3773f15 100644 (file)
@@ -84,6 +84,59 @@ services:
     depends_on:
       - kafka-0
 
+  mongo:
+    image: mongo:4.4.13
+    volumes:
+      - ./0001.sh:/docker-entrypoint-initdb.d/0001.sh:ro
+      - ./chatRoomTo.json:/docker-entrypoint-initdb.d/chatRoomTo.json:ro
+    ports:
+      - 27017:27017
+
+  haproxy:
+    image: haproxy:2.7
+    volumes:
+      - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
+      - ./sharding.map:/usr/local/etc/haproxy/sharding.map:ro
+    sysctls:
+      net.ipv4.ip_unprivileged_port_start: 0
+    ports:
+      - 8080:8400
+      - 8401:8401
+      - 8404:8404
+
+  backend-1:
+    image: juplo/chat-backend:0.0.1-SNAPSHOT
+    environment:
+      chat.backend.inmemory.sharding-strategy: kafkalike
+      chat.backend.inmemory.num-shards: 10
+      chat.backend.inmemory.owned-shards: 1, 3, 4, 9
+      chat.backend.inmemory.storage-strategy: mongodb
+      spring.data.mongodb.host: mongo
+      spring.data.mongodb.database: test
+    ports:
+      - 8081:8080
+  backend-2:
+    image: juplo/chat-backend:0.0.1-SNAPSHOT
+    environment:
+      chat.backend.inmemory.sharding-strategy: kafkalike
+      chat.backend.inmemory.num-shards: 10
+      chat.backend.inmemory.owned-shards: 0, 2, 7
+      chat.backend.inmemory.storage-strategy: mongodb
+      spring.data.mongodb.host: mongo
+      spring.data.mongodb.database: test
+    ports:
+      - 8082:8080
+  backend-3:
+    image: juplo/chat-backend:0.0.1-SNAPSHOT
+    environment:
+      chat.backend.inmemory.sharding-strategy: kafkalike
+      chat.backend.inmemory.num-shards: 10
+      chat.backend.inmemory.owned-shards: 5, 6, 8
+      chat.backend.inmemory.storage-strategy: mongodb
+      spring.data.mongodb.host: mongo
+      spring.data.mongodb.database: test
+    ports:
+      - 8083:8080
 
   setup:
     image: juplo/toolbox