2016-08-30 3 views
0

Ich richte mein Backend ein, das eine NodeJS-Anwendung ist, die in einem Andock-Container ausgeführt wird.Skalierungsknoteninstanzen innerhalb von Docker-Containern

Bevor meine app.js die VM überprüfen würde, auf der sie ausgeführt wurde, und x Anzahl der Instanzen für x Anzahl der verfügbaren Kerne hochfahren.

Wenn es jetzt innerhalb eines Docker-Containers ausgeführt wird, sollte ich den Code dort belassen, oder wird Docker das irgendwie selbst verwalten, und wird die Knoten-App in der Lage sein, die Anzahl der verfügbaren Kerne zu sehen?

Hier wird der Code Ich arbeite mit

#!/usr/bin/env node 
var debug = require('debug')('node-exampleapp'); 

var cluster = require('cluster') 

if (cluster.isMaster) { 
    // Count the machine's CPUs 
    var cpuCount = require('os').cpus().length; 
    // Create a worker for each CPU 
    for (var i = 0; i < cpuCount; i += 1) { 
     cluster.fork(); 
     console.log('Worker ' + i + 'created'); 
} 

    // Listen for dying workers 
    cluster.on('exit', function() { 
    cluster.fork(); 
}); 

} else { 
    var app = require('../app'); 
    app.set('port', process.env.PORT || 3000); 
    var server = app.listen(app.get('port'), function() { 
    debug('Express server listening on port ' + server.address().port); 
}); 

} 

Antwort

0

in den Code verlassen. So weit wie Ihre App sagen können, ist es nach wie vor auf dem Host-Computer ausgeführt wird, und es kann die Hardware-Fähigkeiten dieser Maschine sehen .