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);
});
}