2008-12-01 17 views
9

Tổ chức của tôi sẵn sàng triển khai một hệ thống mới, đó là một ứng dụng asp.net. Ứng dụng sẽ có hàng đợi công việc ngoại tuyến lớn được khởi xướng bởi trang web. Hàng đợi này sẽ giữ các loại hoạt động khác nhau, lý tưởng trong các thông điệp XML. Hãy suy nghĩ về những thứ như thông báo qua email, tác vụ theo lịch, v.v.ASP.NET - hệ thống xếp hàng tốt nhất cho một ứng dụng mới

Trước đây, tổ chức có thể đã sử dụng MSMQ để thực hiện tác vụ này. Tuy nhiên, họ coi MSMQ là trường cũ (và tôi đồng ý một phần với họ), vì vậy chúng tôi sẽ thực hiện một đánh giá kiến ​​trúc để xác định giải pháp "tốt nhất".

Trong suy nghĩ của tôi, có một vài lựa chọn tiềm năng:

1. Gắn kết với triển khai mới trên phiên bản mới nhất của MSMQ - không lý tưởng, nhưng là sản phẩm đã biết.
2. Sử dụng Windows Workflow Foundation, mà tôi đã nghe từ một vài nhà phát triển khác đã sử dụng điều này cho loại điều này.
3. Phát triển giải pháp cơ sở dữ liệu tùy chỉnh.

Tôi có thiếu bất kỳ giải pháp rõ ràng nào không? Điều này lý tưởng sẽ là một sản phẩm của Microsoft, nhưng thực sự chỉ cần làm việc trong một cửa hàng Microsoft trung tâm.

Tôi quan tâm đến những điều sau đây:
1. Dễ triển khai và bảo trì
2. Một giải pháp mà sẽ được xung quanh cho một lúc
3. Có khả năng xử lý một khối lượng tốt của các hàng, với phương tiện có kích thước dữ liệu XML trong số họ
4. Hệ thống xếp hàng hoàn toàn đáng tin cậy, với việc cập nhật nhanh chóng (nhiều quy trình tiện ích có thể sẽ lấy các bản ghi ra khỏi hàng đợi để xử lý chúng).

+1

Thẻ wwf nên chỉ wf (http://msdn.microsoft.com/en-us/netframework/aa663328.aspx). Tôi đoán vì WWF là Quỹ động vật hoang dã thế giới, không nên nhầm lẫn với WWE, trước đây là WWF. – Bratch

Trả lời

13

Đọc bài đăng có vẻ như lý do duy nhất bạn nghĩ MSMQ không phù hợp là vì ai đó cho rằng đó là "trường học cũ". Tôi sẽ không nghĩ đó là một lý do đủ tốt để không sử dụng nó, vì có vẻ như công ty của bạn có kinh nghiệm với nó, vì vậy sẽ không có đường cong học tập, và điều đó có nghĩa là thực hiện dễ dàng và bảo trì.

Ngoài ra, MSMQ sẽ giải quyết hoàn toàn tất cả các mối quan ngại mà bạn đã đề cập đến. Vì vậy, trừ khi có một lý do "thực sự" khác không sử dụng nó, tôi sẽ nghĩ rằng gắn bó với MSMQ.

1

Bạn đã xem xét môi giới dịch vụ trong SQL Server chưa? Nó là một hệ thống xếp hàng sử dụng cơ sở dữ liệu như một cửa hàng sao lưu.

3

Tôi khuyên bạn nên xem xét WCF, bạn có thể định cấu hình để xác định tin nhắn liên tục, được xếp hàng đợi và sử dụng công nghệ MSMQ trong trang bìa. Giao diện/giao diện và công nghệ của WCF nên có mặt trong một thời gian dài.

0

Bạn có một vài lựa chọn:

  1. Biztalk: Nó được xây dựng giao thông được bảo đảm và định tuyến ở cấp công ty. Rất khó để thiết lập, tốn kém, và có một đường cong học tập dốc tuy nhiên một khi bạn bật nó trên nó vững chắc.

  2. MSMQ: Nhanh, rẻ như trong các công trình miễn phí, dễ sử dụng và đơn giản.

  3. Nhà môi giới dịch vụ SQL. Nó là một bước tiến từ MSMQ, nhưng một bước tiến lớn từ Biztalk.

Các vấn đề chính thực sự làm lu mờ xuống bộ tính năng bạn cần. Biztalk là khá nhiều đó là môi trường dev riêng. Trong khi đó MSMQ yêu cầu bạn xây dựng mọi thứ xung quanh nó.

+0

SSB có một vài sai sót mặc dù - một số bigs những người trong mắt tôi. 1) các vấn đề quy mô phức tạp xung quanh xử lý cuộc trò chuyện tái chế. 2) chi phí của giấy phép SQL cho mỗi nút - MSMQ đánh bại tay đó xuống Tôi chỉ muốn đi với SSB nếu tôi đã có SQL trong hỗn hợp. – stephbu

0

Bạn có thể xem xét sử dụng một nhà môi giới thông điệp mã nguồn mở như Apache ActiveMQ

2

Tôi đồng ý với moose-in-the-rừng mà MSMQ lẽ là những gì bạn nên gắn bó với.

Tôi có thể nghiên cứu một số API thay thế sử dụng MSMQ dưới trang bìa, như nServiceBus từ Udi Dahan.

0

Có vẻ như cho toàn bộ hệ thống của bạn, bạn có thể sử dụng Windows Workflow để quản lý logic nghiệp vụ của mình và chỉ sử dụng MSMQ làm bộ nhớ cho danh sách công việc của bạn. Quy trình làm việc của bạn sẽ bắt đầu bằng cách kéo thông điệp tiếp theo ra khỏi hàng đợi, sau đó xác định việc cần làm với nó.

Xếp hàng là thứ mà bạn không muốn gây rối với bản thân, hãy đặt niềm tin vào thứ gì đó ngoài giá sách hoạt động và đã được rất nhiều người thử nghiệm.

2

Thay thế cho ActiveMQ (đã đề cập ở trên) có mã nguồn mở RabbitMQ. Từ những gì họ nói nó tích hợp độc đáo với ASP.NET và WCF.

http://www.rabbitmq.com/