2010-11-15 13 views
5

Chúng tôi muốn tạo một ứng dụng web thời gian thực để có thể xử lý một số lượng lớn người dùng đồng thời. Khía cạnh thời gian thực của nó sẽ là đẩy thông điệp mới cho khách hàng, cách FriendFeed thực hiện và cũng chấp nhận các tin nhắn mới từ khách hàng, như hệ thống trò chuyện.Bạn sẽ chọn khung thời gian thực nào cho ứng dụng web có lưu lượng truy cập cao và tại sao?

Ví dụ, một số tùy chọn, chúng tôi có là: Chạy một ứng dụng CodeIgniter đằng sau một máy chủ nginx sử dụng Comet plugin, sử dụng một khuôn khổ Python như Twisted hoặc Tornado, sử dụng Orbited để duy trì một kết nối liên tục với máy chủ vv

Thiết lập nào sẽ mở rộng quy mô tốt nhất cho ứng dụng thời gian thực và cũng dễ thực hiện?

Phụ lục: Câu hỏi có liên quan Tôi rất thích câu trả lời - dễ viết một ứng dụng web thời gian thực đầy đủ hơn - Twisted/TwistedWeb hoặc Tornado?

Chỉnh sửa: Số của công viên bóng chày: Chúng tôi dự định bắt đầu với khả năng quản lý 10.000 kết nối đồng thời, nhưng có thể mở rộng lên đến 1.000.000 sau này bằng cách chuyển đổi công nghệ/thêm máy chủ. Chúng tôi sẽ chỉ đang đẩy tin nhắn văn bản, bao gồm cả tin nhắn văn bản dài. Chúng tôi muốn khía cạnh thời gian thực của nó thực sự là thời gian thực, với độ trễ thứ hai là < 5.

Trả lời

3

Sau nhiều nghiên cứu, chúng tôi đã quyết định đi với Node. Nó sẽ khá dễ dàng để thực hiện, và nên quy mô khá tốt, và nếu chúng ta bắt đầu có hàng triệu người dùng đồng thời, thì chúng ta sẽ xem xét các giải pháp mở rộng và phức tạp hơn.

+6

Đó là một chút sau này - Tôi muốn được nghe những thứ đã diễn ra cho bạn với Node, Chetan, nếu bạn không nhớ chia sẻ kinh nghiệm? – danjah

1

Bạn đã xem số Zope hoặc thậm chí Plone (có phải đây là CMS) không? Nổi tiếng về xử lý các trang web lưu lượng truy cập lớn như NASA và more, nhưng nó chạy dưới Object-Oriented Database (đó là lý do chính cho sự thuận lợi như vậy) và tôi không biết bạn có muốn điều đó không.

Zope and Plone đều được viết bằng Python.

1

Bạn chưa cung cấp đủ thông tin để đưa ra quyết định đúng đắn. Một số lượng lớn người dùng đồng thời đẩy thư mới vào nhau chỉ đơn giản là không đủ. Chỉ văn bản? Hay cả video? Chỉ những đoạn văn ngắn, hay cả những đoạn văn dài? Chỉ được viết ngay bây giờ hoặc được tải lên? 10.000 người dùng đồng thời hoặc 10.000.000? Tất cả chúng từ đầu hoặc bạn có thời gian để tăng/chuyển đổi công nghệ/xây dựng một trung tâm dữ liệu không? Làm thế nào thời gian thực là đủ tốt? Độ trễ 1 giây hoặc vài phút? Bạn muốn cho phép đăng ký bao nhiêu tin nhắn?

Ở mức cao nhất trong số các câu hỏi này, bạn chỉ có thể viết mã tùy chỉnh là cách hợp lý duy nhất. Thư giãn một số hạn chế giúp bạn có thể sử dụng các khung hiện có

+0

Cảm ơn, tôi đã thêm một số số ballpark cho câu hỏi. Hy vọng rằng nên đưa ra quyết định rõ ràng hơn. – Chetan

2

Tôi đề nghị bạn hãy xem Planet Framework (tuyên bố từ chối trách nhiệm, tôi là một trong những nhà phát triển).

Nó cung cấp giải pháp ngăn xếp đầy đủ với mẫu khách hàng và phía máy chủ, tính năng đẩy trình duyệt chéo và cơ sở dữ liệu sharding. Dựa trên gevent nó cung cấp ngữ nghĩa chặn bình thường (trái ngược với node.js) kết hợp với sự đơn giản của Python.

Hiện tại chúng tôi chỉ được mời, nhưng tất cả tài liệu của chúng tôi đều có sẵn công khai. Tôi khuyên bạn nên yêu cầu lời mời trên trang web vì chúng tôi liên tục phê duyệt người dùng mới.

Các vấn đề liên quan