Vertical scale with Cluster

Our vision-web and vision-api Express applications currently run in a single thread. In order to scale our application vertically, in order to take advantage of multi-core systems, and provide redundancy in case of failure, we can use the cluster module and spread the load over multiple processes. Lets add the Cluster module to vision-core ./lib/cluster/index.js:

var cluster = require('cluster') , http = require('http') , numCPUs = require('os').cpus().length , logger = require('../logger'); function Cluster() {} Cluster.prototype.run = function(module){ if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function(worker, code, signal) { logger.info('Worker ' + worker.process.pid ...

Get Advanced Express Web Application Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.