Ưu điểm của nodeJS mang lại vô cùng lớn:
- Có tốc độ xử lý nhanh nhờ cơ chế xử lý bất đồng bộ (non-blocking). Dễ dàng xử lý hàng ngàn kết nối trong khoảng thời gian ngắn nhất.
- Dễ dàng mở rộng khi có nhu cầu phát triển website.
- Nhận và xử lý nhiều kết nối chỉ với một single-thread. Nhờ đó, hệ thống xử lý sẽ sử dụng ít lượng RAM nhất và giúp q trình xử Nodejs lý nhanh hơn rất nhiều. - Có khả năng xử lý nhiều Request/s cùng một lúc trong thời gian ngắn nhất. - Có khả năng xử lý hàng ngàn Process cho hiệu suất đạt mức tối ưu nhất.
- Phù hợp để xây dựng những ứng dụng thời gian thực như các ứng dụng chat, mạng xã hội …
Một số nhược điểm của nodeJS:
- Nodejs gây hao tốn tài nguyên và thời gian. Nodejs được viết bằng C++ và JavaScript nên khi xử lý cần phải trải qua một quá trình biên dịch. Khi cần xử lý những ứng dụng tốn tài ngun CPU thì khơng nên sử dụng Nodejs.
- Nodejs so với các ngôn ngữ khác như PHP, Ruby và Python sẽ khơng có sự chênh lệch quá nhiều. Nodejs có thể sẽ phù hợp với việc phát triển ứng dụng mới. Tuy nhiên khi xây dựng và triển khai dự án quan trọng thì Nodejs khơng phải là sự lựa chọn hoàn hảo nhất.
- Từ các ưu điểm vượt trội cùng nhược điểm, nodeJS sẽ được sử dụng vào những mục đích nhất định để tránh gây lãng phí tài nguyên:
- Node.js thực sự hiệu quả trong việc xây dựng RESTful API (json). Gần như khơng có ngơn ngữ nào xử lý JSON dễ dàng hơn Javascript, chưa kể các API server thường
Nguyễn Tiến Hải – D17CQVT08B 39 không phải thực hiện những xử lý nặng nề nhưng lượng concurrent request thì rất cao. Mà Node.js thì xử lý non-blocking.
- Những ứng dụng đòi hỏi các giao thức kết nối khác chứ khơng phải chỉ có HTTP. Với việc hỗ trợ giao thức TCP, từ đó có thể xây dựng bất kỳ một giao thức custom nào đó một cách dễ dàng.
- NodeJS được sử dụng vào trong các hệ thống thời gian thực.
3.2.3. Hệ thống quản lý cơ sở dữ liệu InfluxDB
Influx DB là một cơ sở dữ liệu chuỗi thời gian mã nguồn mở được viết bằng ngơn ngữ Go được phát triển bởi InfluxData. Nó được tối ưu hóa để truy xuất dữ liệu có tính khả dụng cao, nhanh hơn và lưu trữ dữ liệu chuỗi thời gian trong các lĩnh vực như giám sát hoạt động, số liệu ứng dụng, dữ liệu cảm biến IoT và phân tích thời gian thực.
InfluxDB là Cơ sở dữ liệu chuỗi thời gian hiệu suất cao có thể lưu trữ dữ liệu từ hàng trăm nghìn điểm mỗi giây. InfluxDB là một loại ngôn ngữ truy vấn SQL được tạo riêng cho dữ liệu chuỗi thời gian.