2013-02-05 28 views
8

Tôi đã xem xét một chút trên websockets, và tôi có một câu hỏi khá cụ thể: Có thể websockets thực sự được thu nhỏ trên các máy chủ khác nhau, hoặc chúng luôn giới hạn trong một máy chủ duy nhất?websocket scalability

Dường như đây là vấn đề tôi liên tục gặp phải trong các tài liệu mà tôi đã tìm thấy, nhưng có thể chúng chưa hoàn thành hoặc mọi thứ đã phát triển. Có vẻ như chẳng hạn như heroku thậm chí không hỗ trợ websockets (?)

+0

Lưu ý Heroku hiện hỗ trợ websockets, xem https://devcenter.heroku.com/articles/websockets – gb96

Trả lời

3

Nó phụ thuộc vào ứng dụng của bạn, nhưng nói chung, không có lý do gì bạn không thể tải kết nối websocket cân bằng cho nhiều máy theo cùng một cách như bất kỳ kết nối TCP nào khác.

+0

WebSockets đơn giản là kết nối liên tục thay vì yêu cầu và phản hồi. Việc nắm giữ các kết nối mở thường tốn nhiều tài nguyên hơn nhưng, như @zaphoyd nói, cuối cùng chúng chỉ là các kết nối TCP. Nền tảng OpenShift đã viết một [bài đăng tốt] (https://openshift.redhat.com/community/blogs/paas-websockets) bao gồm những thách thức mà họ đang phải đối mặt bằng cách cung cấp WebSockets. Heroku sẽ phải vượt qua những thử thách tương tự. Đây là những vấn đề chúng tôi đã khắc phục với [Pusher] (http://pusher.com). – leggetter

4

Việc tạo cụm phải được hỗ trợ bởi giải pháp máy chủ bạn đang sử dụng. Kaazing (công ty tôi làm việc cho), cung cấp sophisticated clustering được sử dụng bởi hầu hết khách hàng của chúng tôi.

Đối với khả năng mở rộng: báo cáo chính thức này: Fastest Million" Over the Web with Kaazing, Dell, and Tibco - mô tả kết quả điểm chuẩn bạn có thể đạt được với phân cụm. Bài viết thảo luận về kiến ​​trúc cách 43 máy chủ rack Dell R620, mỗi máy chủ chạy một Cổng Web Kaocket có thể mở rộng tới hơn 1.000.000 kết nối đồng thời, 10 thông điệp/giây, với độ trễ trung bình 3,5ms.