एक टीसीपी सर्वर के रूप में node.js का उपयोग करके, मैं अपेक्षाकृत बड़ी संख्या में जीपीएस डिवाइस (~ 3000 डिवाइस) का प्रबंधन करने जा रहा हूं और पहले चरण में डेटाबेस में आने वाले डेटा को स्टोर करने जा रहा हूं, लेकिन यहां तक कि इस चरण में मैं कुछ प्रदर्शन मुद्दों की कल्पना करता हूं जो मुझे परेशान करते हैं और मैं उन्हें काटने से पहले उन्हें पकड़ना चाहता हूं।Node.js जीपीएस डिवाइस ट्रैकिंग प्रदर्शन विचार
1 - मैं निम्नलिखित की तरह कुछ कोड को देखने के जावा या माणिक जैसी भाषाओं का उपयोग करके लिखा समान सर्वर को देखते हुए:
जावा
Thread serverThread = new Thread(() -> {
System.out.println("Listening to server port 9000");
while (true) {
try {
Socket socket = serverSocket.accept();
...
माणिक
require 'socket'
server = TCPServer.new ("127.0.0.1",8080)
loop do
Thread.start(server.accept) do |client|
...
ऐसा लगता है कि वे प्रत्येक डिवाइस (सॉकेट) को अलग थ्रेड देते हैं जो टीसीपी सर्वर से कनेक्ट हो जाता है? चूंकि node.js एकल-थ्रेडेड है और असीमित रूप से कार्य करता है, क्या मुझे आने वाले कनेक्शनों के बारे में चिंतित होना चाहिए या निम्न सरल दृष्टिकोण जैसे कुछ एक साथ कनेक्शन की बड़ी संख्या को पूरा करेंगे?
net.createServer(function(device) {
device.on('data', function(data) {
// parse data
// store in database
});
});
2 - क्या मुझे कनेक्शन पूल का उपयोग कर डेटाबेस कनेक्शन को सीमित करना चाहिए? चूंकि डाटाबेस जीआईएस के लिए दूसरी ओर से पूछताछ करता है और निगरानी करता है कि पूल का आकार कितना होना चाहिए?
3 - मैं इस प्रणाली में कैशिंग (उदाहरण के लिए रेडिस का उपयोग करके) कैसे लाभ उठा सकता हूं?
अगर कोई इस विचार पर कुछ प्रकाश डालता है तो यह बहुत अच्छा होना चाहिए। मैं स्वेच्छा से ऐसे किसी भी अन्य प्रदर्शन विचारों को सुनना चाहूंगा जो आप इस तरह के सिस्टम को लागू करने में भी अनुभव कर रहे हैं या जागरूक हो सकते हैं। धन्यवाद।
पूर्ण पक्ष प्रश्न, लेकिन आवधिक http अनुरोधों के बजाय सॉकेट का उपयोग क्यों करें? – Festo
@ फेस्टो, मैं बस टीसीपी परत में जीपीएस उपकरणों के साथ संवाद कर सकता हूं, इस परत में मुझे निश्चित रूप से उपकरणों के साथ संवाद करने के लिए सॉकेट का उपयोग करना चाहिए, http सर्वर में मैं आवधिक अनुरोधों का उपयोग कर सकता हूं लेकिन डेटा रीयलटाइम के रूप में भी मैं सॉकेट के साथ जाऊंगा। – dNitro