2011-06-28 41 views
15

Tôi đang xem xét Redis cho một phần của kiến ​​trúc của một dự án mới. Nó sẽ bao gồm rất nhiều khách hàng (các kết nối node.js) ĐĂNG KÝ các khóa cụ thể với một quá trình PUBLISHING cho các khóa đó khi cần thiết.Redis PUBLISH/SUBSCRIBE limits

Tôi tò mò về giới hạn của các lệnh PUBLISH/SUBSCRIBE và cách giảm thiểu các lệnh đó. Một giới hạn rõ ràng là số lượng các bộ mô tả tập tin được mở trên máy tính với Redis nên tại một thời điểm nào đó, tôi sẽ cần phải thực hiện Master-Slave hoặc Consistent Hashing với nhiều phiên bản Redis.

Có ai có bất kỳ giải pháp nào về cách chia tỷ lệ kiến ​​trúc này với Redis 'PubSub không?

Trả lời

22

Redis PubSub scale thực sự dễ dàng vì bản sao Master/Slave tự động xuất bản cho tất cả các nô lệ.

Cách dễ nhất là tải cân bằng các kết nối tới node.js với ví dụ HAProxy, chạy một nô lệ Redis trên mỗi máy chủ web đồng bộ với một bậc thầy duy nhất xuất bản các thông báo.

Tôi không thể cung cấp cho bạn số chính xác vì điều đó phụ thuộc rất nhiều vào hệ thống cơ bản, nhưng điều này sẽ mở rộng rất tốt. Và bạn không cần quản lý khách hàng và máy chủ nào họ kết nối theo cách thủ công. Bạn rõ ràng cần một số cách để xử lý trạng thái phiên, vì vậy bạn có thể cần phải làm điều đó anyway, nhưng đó là dễ dàng hơn nhiều để làm trong cân bằng tải hơn trong ứng dụng của bạn.