2013-10-23 30 views
15

Trong một thời gian dài chúng tôi đã sử dụng hàng đợi msmq và redis (IRedisList). Vài tháng trước, chúng tôi bắt đầu thử redis pub-sub.Hàng đợi Redis so với MSMQ

Ứng dụng của chúng tôi có hơn hai mươi dịch vụ đọc tin nhắn từ hàng đợi hoặc đăng ký kênh bằng redis. Chúng tôi cũng có hơn mười hàng đợi mà chúng tôi gửi tin nhắn cho họ. Ứng dụng này đa luồng.

Vì vậy, tôi muốn gì từ bạn?

Bây giờ chúng ta có một chút thời gian để quyết định loại hàng đợi nào ở trên chúng ta muốn sử dụng và chúng ta muốn thay thế bằng một loại hàng đợi khác.

Tôi đã cố tìm bài đăng về MSMQ VS Redis và không tìm thấy đủ thông tin.

Ai đó có thể tư vấn cho tôi về vấn đề này không?

Trả lời

29

IMO, bạn đang cố gắng so sánh táo và cam ở đây.

MSMQ là một MOM cấp doanh nghiệp (phần mềm trung gian được định hướng thông điệp, tức là hệ thống xếp hàng) cung cấp sự kiên trì, hỗ trợ giao dịch và tập hợp các tính năng phong phú.

Redis là máy chủ cấu trúc dữ liệu trong bộ nhớ nhanh, trên đó bạn có thể tạo một hệ thống xếp hàng. Việc thực hiện đúng các tính năng cơ bản của MSMQ với Redis đã là một nhiệm vụ khó khăn. Nó có lẽ sẽ không thể thực hiện được để thực hiện các tính năng nâng cao (như hỗ trợ giao dịch phân phối).

tôi sẽ đề nghị để cố gắng liệt kê các thuộc tính mà bạn mong đợi từ hệ thống xếp hàng:

  • Bạn có cần persistency?
  • Bạn có cần hỗ trợ giao dịch không?
  • Bạn có cần hỗ trợ giao dịch được phân phối không?
  • Bạn có cần ngữ nghĩa phân phối "một lần và chỉ một lần" không? Tối đa một lần? Ít nhất một lần?
  • Bạn có cần nhiều chính sách thử lại (trễ tuyến tính, trả về theo hàm mũ, v.v ...) không?
  • Bạn có cần hàng đợi ngoại lệ/hàng chết không?
  • Bạn có cần lưu giữ mục không?
  • Bạn có cần hỗ trợ duyệt hàng đợi không? Khả năng quản lý hàng đợi?
  • Bạn có cần quản lý ưu tiên mục không?
  • Bạn có cần hết hạn mục tự động không?
  • Bạn có cần các mặt hàng bị trì hoãn không?
  • Bạn có cần sắp xếp thứ tự mục không? Hàng đợi giá trị cuối cùng?
  • Bạn có cần xuất bản và đăng ký không? Với đa đúc?
  • Bạn có cần dequeue từ một số hàng đợi cùng một lúc trong một chuỗi không?
  • Bạn có cần hỗ trợ khả năng có sẵn và/hoặc phân cụm không?
  • Bạn có thông lượng cao không? Bạn có cần hiệu suất tốt nhất không?

Tùy thuộc vào yêu cầu của bạn Redis có thể hoặc không phù hợp. Nhưng tôi không mong đợi để có được chuông và còi của một MOM thực sự với Redis.

Điểm cuối cùng: bạn đã đề cập đến tính năng phụ/quán rượu Redis. Xin lưu ý rằng cơ chế này hoàn toàn không dựa trên hệ thống xếp hàng. Không có đảm bảo về việc gửi tin nhắn với Redis pub/sub. Nếu người đăng ký không nghe, mục đó sẽ bị mất đối với người đăng ký này.

+1

Thanks man.Great answer – FelProNet

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