Použite všetky CPU kódy v klastrovom režime
Proces Node.js využíva jedno jadro procesora. Total.run({ cluster: N }) spustí master, ktorý vytvorí N worker procesov, z ktorých každý spúšťa celú vašu aplikáciu, a operačný systém medzi ne rozdeľuje prichádzajúce spojenia ('auto' namiesto čísla nechá master pridávať vlákna podľa rastúcej záťaže). Spúšťajte ho v režime release (release: true, ktorý vygenerovaný štartovací skript nastaví pomocou --release); watcher z režimu debug nie je určený pre cluster. V štartovacom skripte ide o jedinú možnosť:
Total.run({ cluster: 4, release: true }); // or cluster: 'auto'Každý worker je samostatný proces s vlastnou pamäťou, takže všetko, čo uložíte do premennej, do CACHE alebo do MEMORIZE, existuje raz pre každý worker a nezdieľa sa: dve požiadavky toho istého používateľa môžu skončiť v rôznych workeroch. Zdieľaný stav ukladajte do databázy, do súborového úložiska alebo do služby správ a relácie držte v úložisku, ktoré môžu čítať všetky workery. Plánované úlohy ako CRON() sa tiež vykonávajú v každom workeri, takže ich ošetrite, ak sa majú vykonať iba raz.
Skontrolujte, že všetci workeri bežia. Po nasadení opakovane vyžiadajte URL ako /pid/ nižšie a spočítajte rôzne id: malo by ich byť toľko, koľko workerov ste žiadali.
Každý zamestnanec má svoj vlastný procesný ID. Príklad začína dvoch zamestnancov a obsahuje tento ID v odpovedi.
exports.install = function() {
ROUTE('GET /pid/', pid);
ROUTE('GET /dir/', dir);
};
function pid($) {
$.json({ pid: process.pid });
}
function dir($) {
$.json({ dir: PATH.root() });
}require('total5');
Total.run({ cluster: 2, port: 8766, release: true });