Tôi đang suy nghĩ về hệ thống sẽ thông báo cho nhiều người tiêu dùng về các sự kiện xảy ra với một tập hợp các đối tượng. Mỗi thuê bao sẽ có thể đăng ký các sự kiện xảy ra với số không hoặc nhiều đối tượng, nhiều người đăng ký sẽ có thể nhận thông tin về các sự kiện xảy ra với một đối tượng duy nhất.Giải pháp xếp hàng đợi tin nhắn cho hàng triệu chủ đề
Tôi nghĩ rằng một số hệ thống xếp hàng thư sẽ phù hợp trong trường hợp này nhưng tôi không biết cách xử lý thực tế là tôi sẽ có hàng triệu đối tượng - sử dụng chủ đề riêng cho mỗi đối tượng không tốt [hoặc nó chỉ là tốt?].
Bạn có thể đề xuất phương pháp tiếp cận mà tôi nên thực hiện và thậm chí có thể một số hệ thống xếp hàng tin nhắn nguồn mở hợp lý không?
ít biết thêm chi tiết:
- sẽ có hàng ngàn thuê bao [nghĩa là không nhiều trong số họ],
- thuê bao sẽ đăng ký hàng chục hoặc hàng trăm đối tượng từng,
- sẽ có ~ 5 -20 triệu trong số các đối tượng,
- sự kiện không phải mang theo bất kỳ thông điệp nào. chỉ là thông tin mà đối tượng đã được thay đổi là đủ,
- đại đa số đối tượng sẽ không bao giờ được đăng ký,
- sự kiện xảy ra ở mức tối đa vài trăm mỗi giây,
- lý tưởng là máy chủ nên chạy dưới Linux, được có thể tích hợp với phần còn lại của hệ sinh thái thông qua http long-poll [sử dụng nút js? tiếp tục dưới cầu cảng?].
Cảm ơn trước cho phản hồi của bạn và xin lỗi vì câu hỏi hơi mơ hồ!
Đây là vấn đề cơ bản khó giải quyết theo cách có thể mở rộng, được minh chứng - ví dụ - bởi các vấn đề mà Twitter đã gặp phải. Bạn có thể sử dụng mô hình chủ đề người đăng ký tiêu chuẩn và sử dụng mẹo để giới hạn số lượng chủ đề: Ví dụ: id chủ đề có thể là id tin nhắn modulo 1000. Sau đó, người nghe của chủ đề sẽ chỉ lọc các thư họ quan tâm trong khoảng. (Chỉ là một ý tưởng) –
@Aapo Kyrola - cảm ơn vì gợi ý. bạn có thể vui lòng gửi bình luận của bạn như là câu trả lời? cũng có thể bạn có thể đề xuất máy chủ xếp hàng tin nhắn cụ thể? – pQd
bạn đã xem http://aws.amazon.com/sqs/ chưa? Và ở tất cả các công cụ mà họ có thể cung cấp (thông báo, vv) – Resh32