2011-06-20 35 views
9

Tôi đang tìm một hệ thống xếp hàng trong đó nhiều người đăng ký khác nhau có thể kéo các mục ra khỏi hàng đợi tập trung. Các tin nhắn sẽ rất nhẹ, nhưng tôi cần một cái gì đó mà là dai dẳng và rất nhanh như khối lượng của tin nhắn sẽ được lớn. MSMQ hơi nặng và tôi đang tìm thứ gì đó nhẹ nhàng. Gợi ý?.NET Fast Persistent Queue

+0

bảng cơ sở dữ liệu (với cơ chế khóa thích hợp)? –

+0

Hiện tại chúng tôi đang sử dụng một bảng cơ sở dữ liệu. Nhưng, nó khá chậm. Tôi cần một cái gì đó với thông lượng hơn một chút và hy vọng chức năng ... – Matt

+0

"Nhưng, nó khá chậm" - nó không nên. những gì bạn hạn chậm? –

Trả lời

2

Tôi nghĩ câu hỏi ở đây là bạn có cần "kiên trì" không? Nếu bạn cần bảo vệ khỏi các bản sao, nhiều khách hàng và sự kiên trì thì bạn sẽ bị buộc phải theo đuổi một sơ đồ khóa cho người quản lý hàng đợi của bạn, điều này sẽ khiến bạn mất hiệu suất. Bản thân sự kiên trì sẽ làm tổn thương bạn trừ khi bạn đặt lưu trữ hàng đợi trên một chia sẻ tệp tốc độ cao.

Nếu bạn có thể nghiên cứu lại ứng dụng của mình để tồn tại sự cố hàng đợi (giữ nguồn cấp dữ liệu tại máy chủ hoặc có kiến ​​trúc yêu cầu/phản hồi cho thư) thì bạn có thể khắc phục sự cần thiết phải kiên trì. Nếu bạn làm điều đó thì bạn sẽ thấy rằng trình quản lý hàng đợi của bạn chạy độc quyền trong bộ nhớ và sẽ cực kỳ nhanh.

+0

Thú vị. Các ứng dụng mà chúng tôi đang xây dựng là rất xử lý chuyên sâu, tôi đã hình dung một kịch bản mà một máy chủ hoạt động như một loại nhà môi giới cho việc triển khai các nhiệm vụ đến một máy chủ "xử lý" khác. Trong kịch bản này, tôi chỉ cần hàng đợi trên các nhà môi giới để được đàn hồi. Bạn có một điểm tham chiếu hoặc ví dụ với hướng dẫn xây dựng một cái gì đó như thế này? – Matt

+0

Bản đồ Giảm mẫu từ google? – Spence

+0

http://labs.google.com/papers/mapreduce.html – Spence

3

Có một dự án thực sự tốt đẹp trên codeproject. Đó là thay thế nhẹ cho MSMQ. Bạn có thể sử dụng lưu trữ liên tục của sự lựa chọn của riêng bạn, theo mặc định nó sử dụng Sqlite. Điều này thực sự tốt.