Comment gérer le projet à grande échelle dans Node.js en gardant tout asynchrone?
https://softwareengineering.stackexchange.com/questions/196496
-
06-11-2019 - |
Question
J'ai un grand module qui doit traiter plus de 10 000 demandes / réponse par seconde. Chaque demande a un JSON et doit la traiter et la vérifier sur la base de données et générer la réponse sur la base de la requête DB. Voici un exemple
Function 1
function ('/get' , fucntion (req1 , res1 , next ){
//to process the req data
processData(req1 , res1 );
});
Function 2
processData(req1 , res1 ){
var J = JSON.parse (req1.body)
//it has to read db three times
//process the json build the response and return
condtionCheck(J , res1){
var a = someVlaue(){
//select a value from a collection set of nosql which have
//more than 1000 document and
//i have to itrate a for loop to check the condition .....etc
//...........
}
........
dataRead(var a , res1){
// is it possible to send response for the req1 object here
res1.send({value b: abcd123})
}
}
}
Function 3 ..... and so on
Le problème majeur est tout le code que j'ai écrit dans les données de processus est synchrone. Bacaue chaque code dépend de l'appel précédent et il y a tellement de chèques d'état utilisés à plusieurs reprises.
Il est donc bon de mettre un traitement aussi important dans le nœud synchrone à l'intérieur? Si j'écris le code en utilisant Async à des moments où tout le scénario est devenu dans un état de blocage, comment éviter un tel comportement? Async ou une fonction comme Step ont-ils un effet sur les performances? Sur une telle série de fonction, comment réduire la latence?
Pas de solution correcte