Hi. Initially I created a Typesense cluster using ...
# community-help
n
Hi. Initially I created a Typesense cluster using docker compose with a leader and 2 followers. When one of the nodes goes down irrespective of it being a leader or follower, the cluster halts functioning. No new leaader node is elected. At times, one of the nodes is showing "Not ready" state. Please find below my docker compose file. version: "3.3" services: backend: image: search-backend:latest privileged: true restart: always env_file: - .env ports: - "${BACKEND_PORT}:${BACKEND_PORT}" environment: - SERVER_NAME=${DOMAIN} - SERVER_HOST=https://${DOMAIN} build: context: . dockerfile: backend.dockerfile networks: - typesense_network_cluster typesense1: image: typesense/typesense:0.25.1 hostname: typesense1 privileged: true restart: always env_file: - .env entrypoint: sh -c "/opt/typesense-server --data-dir /data/typesense1 --api-key=${TYPESENSE_API_KEY} --enable-cors --listen-port 8108 --advertised-port 8108 --no-health-check --nodes /data/nodes --peering-subnet 192.168.224.0/24 --peering-port 8107 --api-port 8108 --cluster-name my-cluster" ports: - 7108:8108 volumes: - typesense-data-1:/data/typesense1 - ./nodes:/data/nodes networks: - typesense_network_cluster typesense2: image: typesense/typesense:0.25.1 hostname: typesense2 privileged: true restart: always env_file: - .env entrypoint: sh -c "/opt/typesense-server --data-dir /data/typesense2 --api-key=${TYPESENSE_API_KEY} --enable-cors --listen-port 8108 --advertised-port 8108 --no-health-check --nodes /data/nodes --peering-subnet 192.168.224.0/24 --peering-port 8107 --api-port 8108 --cluster-name my-cluster" ports: - 9108:8108 volumes: - typesense-data-2:/data/typesense2 - ./nodes:/data/nodes networks: - typesense_network_cluster typesense3: image: typesense/typesense:0.25.1 hostname: typesense3 privileged: true restart: always env_file: - .env entrypoint: sh -c "/opt/typesense-server --data-dir /data/typesense3 --api-key=${TYPESENSE_API_KEY} --enable-cors --listen-port 8108 --advertised-port 8108 --no-health-check --nodes /data/nodes --peering-subnet 192.168.224.0/24 --peering-port 8107 --api-port 8108 --cluster-name my-cluster" ports: - 10108:8108 volumes: - typesense-data-3:/data/typesense3 - ./nodes:/data/nodes networks: - typesense_network_cluster volumes: typesense-data-1: driver: local typesense-data-2: driver: local typesense-data-3: driver: local networks: typesense_network_cluster: driver: bridge ipam: config: - subnet: "192.168.224.0/24" Please find below my node configuration file. typesense181078108,typesense281078108,typesense381078108 Function to create Typesense client. function getTypesenseClient(module) { try { const nodes = [ { host: "typesense1", port: 8108, protocol: "http" }, { host: "typesense2", port: 8108, protocol: "http" }, { host: "typesense3", port: 8108, protocol: "http" }, ]; return new Typesense.Client({ nodes, apiKey: config.typesense[module].apiKey, connectionTimeoutSeconds: 30, }); } catch (err) { console.log("connection error", err); throw err; } }