पाठ 26 / 30

Scaling और Clustering

Multiple processes और machines के across Fastify applications को scale करें।

Horizontal scaling

More traffic handle करने के लिए load balancer (nginx, HAProxy, या cloud provider LB) के पीछे multiple Fastify instances चलाएँ।

Node के cluster module के साथ clustering

Single machine पर सभी CPU cores को utilize करने के लिए multiple processes spawn करें।

import cluster from 'cluster';
import os from 'os';
import Fastify from 'fastify';

if (cluster.isPrimary) {
  const numCPUs = os.cpus().length;
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }
  console.log(`Master spawned ${numCPUs} workers`);
} else {
  const fastify = Fastify();
  fastify.get('/', async () => ({ pid: process.pid }));
  await fastify.listen({ port: 3000, host: '0.0.0.0' });
}

Stateless design

Fastify app को stateless रखें—shared state के लिए external stores (Redis, databases) उपयोग करें ताकि कोई भी instance किसी भी request को handle कर सके।