Redis ve Kümeleme ile Socket.IO Uygulamalarını Ölçeklendirme

Rind Devran Tukan
Rind Devran Tukan
< 1 min read
Scaling Socket.IO with Redis
Reading Time: < 1 minute

Okuma Süresi: < 1 dakika

Neden Socket.IO Ölçeklendirilmeli?

Kullanıcı tabanınız büyüdükçe, tek bir sunucu tüm gerçek zamanlı bağlantıları verimli bir şekilde yönetemeyebilir. Socket.IO’nun ölçeklendirilmesi, yüksek kullanılabilirlik ve performans sağlar.

Redis Adaptörü Kullanımı

Socket.IO, birden fazla sunucu örneği arasında olayları senkronize etmek için Redis ile entegre edilebilir.

npm install socket.io @socket.io/redis-adapter redis
const { createServer } = require('http');
const { Server } = require('socket.io');
const { createAdapter } = require('@socket.io/redis-adapter');
const { createClient } = require('redis');

const httpServer = createServer();
const io = new Server(httpServer);

const pubClient = createClient({ host: 'localhost', port: 6379 });
const subClient = pubClient.duplicate();

io.adapter(createAdapter(pubClient, subClient));

httpServer.listen(3000);

Node.js ile Kümeleme

Çok çekirdekli sistemlerden yararlanmak için Node.js kümelerini kullanın:

const cluster = require('cluster');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }
} else {
  // Socket.IO sunucu kodu burada
}

Sonuç

Redis ve kümelemeyi birleştirmek, Socket.IO uygulamanızın sorunsuz bir şekilde ölçeklenmesini sağlar.

Related Articles

Discover more stories from our blog