भार संतुलन
सबसे सरल साइटों के लिए संभवतः आपको किसी भी स्केलिंग की आवश्यकता नहीं है। बस एक सिंगल बॉक्स आपको कवर मिलेगा। उसके बाद आपको लोड बैलेंसिंग करना चाहिए जैसे आप उल्लेख कर रहे हैं जो कि हर आर्किटेक्चर के लिए लगभग समान है (जैसे कि आप कह रहे हैं कि आप पहले कई नोड प्रक्रिया शुरू कर सकते हैं। लेकिन जब आप वास्तव में बड़े हो जाते हैं तो आपको अधिक बक्से की आवश्यकता होती है)।
Nginx लोड संतुलन उदाहरण :
http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http:
}
}
}
Redis
प्रति सेकंड 20 प्रश्न
नोड.जेएस के लिए कोई पसीना नहीं आपको अपने डेटास्टोर के रूप में रेडिस का उपयोग करना चाहिए क्योंकि यह पागल है तेज :)। जब आप नोड_्रेडिस का उपयोग करते हैं, तब भी नोड के लिए एसी लाइब्रेरी होती है ।
npm install hiredis redis
हिरिसिस आपको किकैस प्रदर्शन देता है क्योंकि यह नोड के अंदर सी कोड को संकलित करता है। यहां रेडिस से कुछ बेंचमार्क हैं, जब हायरडिस के साथ उपयोग किया जाता है।
PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287
जब आप उन संख्याओं को देखते हैं तो 20 / s कुछ भी नहीं है :)।
प्रमाणीकरण
अपडेट करें:
मैं इसे बहुत कुछ बता रहा हूं लेकिन भगवान के प्यार के लिए कृपया अपने स्वयं के प्रमाणीकरण-प्रणाली को लागू करने की कोशिश न करें। यह शायद असुरक्षित होने वाला है (बहुत कुछ गलत हो सकता है), बहुत काम। प्रमाणीकरण के लिए आपको उत्कृष्ट कनेक्ट-ऑवर लाइब्रेरी का उपयोग करके फेसबुक-कनेक्ट, ट्विटर सिंगल साइन-इन आदि का उपयोग करना चाहिए । फिर आप सुरक्षित हैं क्योंकि उनके पास छेद के लिए लॉगिन-सिस्टम का परीक्षण करने वाले विशेषज्ञ हैं और सादे-पाठ के माध्यम से पासवर्ड भी संचारित नहीं करते हैं लेकिन ईश्वर के उपयोग के लिए धन्यवाद https। मैंने एक उपयोगकर्ता के लिए एक विषय का भी उत्तर दिया है जो फेसबुक-कनेक्ट का उपयोग करना चाहता था ।
इनपुट डेटा की मान्यता
इनपुट को मान्य करने के लिए आप नोड-सत्यापनकर्ता का उपयोग कर सकते हैं ।
var check = require('validator').check,
sanitize = require('validator').sanitize
check('test@email.com').len(6, 64).isEmail();
check('abc').isInt();
check('abc', 'Please enter a number').isInt();
check('abcdefghijklmnopzrtsuvqxyz').is(/^[a-z]+$/);
var int = sanitize('0123').toInt();
var bool = sanitize('true').toBoolean();
var str = sanitize(' \s\t\r hello \n').trim();
var str = sanitize('aaaaaaaaab').ltrim('a');
var str = sanitize(large_input_str).xss();
var str = sanitize('<a>').entityDecode();
प्रपत्र बनाने में आपकी सहायता करने के लिए यह प्रपत्र लायब्रेरी भी है ।