2010-02-18 39 views
15

Tôi đang trong quá trình viết hệ thống xếp hàng tin nhắn.Hệ thống xếp hàng tin nhắn

Câu hỏi của tôi là ... Có tốt hơn khi thực hiện hàng đợi này với các tệp hoặc trong cơ sở dữ liệu không?

Nếu tôi chọn cơ sở dữ liệu, nó cần phải kiểm tra các công việc mới mỗi giây và điều đó dường như chỉ là một phần chi phí cho tôi?

Nếu đó là tệp tôi đoán bạn chỉ liên tục theo dõi thư mục và thực thi dựa trên đó?

BR,

Trả lời

28

Đừng reinventthewheel.

[Chỉnh sửa: cập nhật cho năm 2014, hiện liên kết với thỏ MQ vì Ayende đã chuyển sang tạo cơ sở dữ liệu tài liệu chứ không phải hàng đợi tin nhắn nhưng sau đó lại một lần nữa RabbitMQ đã xuất hiện. Tôi sẽ không được viết những dòng này nhưng bây giờ bài viết cần 30 ký tự vì vậy tôi cần phải tiết lộ bí mật một chút.]

2

Nó phụ thuộc vào yêu cầu của bạn, nhưng nếu bạn cần phải xếp hàng nhiều tin nhắn như một nhóm duy nhất, bạn sẽ cần một số loại hỗ trợ giao dịch. Trong trường hợp đó, cơ sở dữ liệu là bạn của bạn.

3

Làm thế nào có thể muốn nhìn vào MSMQ

+0

Vì bạn không có mặt thường xuyên, tôi đang bình luận ở đây để cho bạn biết tôi đã trả lời bài đăng của bạn về câu hỏi này trên meta. –

2

Bạn đang viết một hệ thống hàng đợi thông điệp bởi vì bạn muốn viết một tin nhắn hệ thống xếp hàng; hay đây chỉ là một phần giải quyết một vấn đề lớn hơn?

Tôi khuyên bạn không nên viết hệ thống xếp hàng thư mới. Bạn có thể sử dụng MSMQ hoặc cái gì khác ra khỏi kệ.

5

tiêu chí của bạn để quyết định "Tốt hơn" là gì? hiệu suất? khả năng mở rộng? độ tin cậy? Giá cả?

Các cân bằng cơ bản là:

Cơ sở dữ liệu - Hỗ trợ giao dịch, đảm bảo tính toàn vẹn (thông qua các ràng buộc), hỗ trợ truy vấn phong phú hơn, lẽ sẽ có quy mô tốt hơn (tùy thuộc vào thực hiện)

hệ thống tập tin - rẻ hơn, đơn giản hơn, các bộ phận ít chuyển động (ít nhất là ban đầu)

Bạn có thể muốn xem xét các giải pháp hiện có trước - MSMQ, nhà môi giới SQL Server, thư viện nguồn mở như hàng Rhino (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)

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