farhadi / node-smpp

SMPP client and server implementation in node.js
MIT License
419 stars 180 forks source link

Multiprocessing #254

Open dotsinspace opened 6 months ago

dotsinspace commented 6 months ago

Does any one have clustering example of smpp or how can i use node-smpp with bullmq processor.

denishrana09 commented 5 months ago

I have tried with node cluster module. but every request is served by single child process.

System is completely working, but when there is bulk data, some requests are being lost.

Trying to build load balancer for smpp.

Anyone have idea on how to build this?

One reference I found is SMPP Load Balancer, obv it's paid.

Btw, I have used basic cluster code like below:

const cluster = require('cluster');
const os = require('os');

if (cluster.isMaster) {
    const numCPUs = os.cpus().length;

    // Fork workers.
    for (let i = 0; i < numCPUs; i++) {
        cluster.fork();
    }

    cluster.on('exit', (worker, code, signal) => {
        console.log(`Worker ${worker.process.pid} died`);
        cluster.fork(); // Restart the worker
    });
} else {
    // Workers can share any TCP connection
    // In this case it is an SMPP server
    require('./smpp-server');
}
dotsinspace commented 5 months ago

I am looking for the same...and same issue is happening to my smpp server...some of the PDUs are just getting lost.

Now coming to your setup you can use pm2 itself instead of this. and it is more reliable in this case...but still some of the smpp out there will not going to work...and that might be due to SMPP Session and Multiprocessing implementation.