Tôi đang viết máy chủ trò chuyện cho Acani và tôi có một số câu hỏi về Scaling node.js và websockets with load balancer scalability.Làm thế nào để quy mô Node.js WebSocket Redis Server?
Node.js có nghĩa là gì? Điều đó có nghĩa là sẽ có n các phiên bản độc lập của ứng dụng máy chủ của tôi đang chạy, mỗi phiên bản trên một máy chủ riêng biệt?
Để cho phép một khách hàng phát tin nhắn cho tất cả những người khác, tôi lưu trữ một bộ tất cả các
webSocketConnections
mở trên máy chủ. Nhưng, nếu tôi có n các phiên bản độc lập của ứng dụng máy chủ đang chạy, mỗi phiên bản trên một máy chủ riêng biệt, thì tôi sẽ có n các bộ khác nhau củawebSocketConnections
?Nếu câu trả lời cho 1 & 2 được khẳng định, thì làm thế nào để lưu trữ một tập hợp phổ quát của
webSocketConnections
(trên tất cả các máy chủ)? Một cách tôi nghĩ rằng tôi có thể làm điều này là sử dụng Redis Pub/Sub và chỉ cần đăng kýwebSocketConnection
một kênh trên Redis.Nhưng, sau đó, máy chủ Redis đơn lẻ sẽ trở thành nút cổ chai? Làm thế nào sau đó tôi sẽ quy mô Redis? Nó có nghĩa là gì để mở rộng Redis? Điều đó có nghĩa là tôi có m phiên bản Redis độc lập đang chạy trên các máy chủ khác nhau không? Điều đó thậm chí có thể?
Tôi đã nghe Redis không mở rộng quy mô. Tại sao ai đó lại nói vậy. Điều đó nghĩa là gì? Nếu đó là sự thật, có giải pháp nào tốt hơn cho pub/sub và/hoặc lưu trữ danh sách tất cả các tin nhắn được phát không?
Lưu ý: Nếu câu trả lời của bạn là Acani sẽ không bao giờ phải mở rộng quy mô, ngay cả khi mỗi người trong số tất cả bảy tỷ người (và phát triển) trên Trái đất đã phát sóng một thông điệp mỗi giây để mọi người khác trên trái đất, sau đó xin vui lòng đưa ra một lời giải thích hợp lệ.
là gì acani? – udidu
Ứng dụng tôi đang xây dựng – ma11hew28