2009-09-26 37 views
10

Tôi nghĩ rằng tiêu đề tổng kết tất cả .... Chúng tôi có một hệ thống .NET 2.0 cố gắng triển khai một mô hình pub/sub được phân phối. Tôi đã gặp NServiceBus, RhinoBus và MassTransit. Thật không may, đây là những MSMQ dựa. Tôi được giao nhiệm vụ tìm ra các lựa chọn thay thế pub/sub sử dụng một lựa chọn thay thế tin nhắn khác ...Lựa chọn thay thế cho NServiceBus không sử dụng MSMQ

lý do duy nhất để tìm kiếm giải pháp thay thế MSMQ là khắc phục hạn chế kích thước thư. Kể từ khi thông điệp ứng dụng doanh nghiệp của chúng tôi có khả năng có thể nhận được cắt ngắn do mỗi hạn chế tin nhắn ...

bất kỳ hướng dẫn được nhiều đánh giá

+1

[MassTransit] (http://readthedocs.org/docs/masstransit/en/latest/) hỗ trợ RabbitMQ và AzureServiceBus. – Henrik

Trả lời

2

Có một Roadmap cho NServiceBus đó khẳng định họ có ý định cung cấp một phương tiện giao thông pluggable hơn để cho phép thay thế MSMQ.

MassTransit cũng đề xuất rằng họ đang hướng tới hỗ trợ các lựa chọn thay thế.

Unfortunatley chưa có cái nào trong số này.

-1

Tôi sử dụng một vài bảng cơ sở dữ liệu cho việc này.

+0

Tôi không nghĩ rằng điều này sẽ trả lời câu hỏi ... – Henrik

+3

Chắc chắn là vậy. Tôi sử dụng các bảng cơ sở dữ liệu như các hàng đợi liên tục để tránh phải sử dụng MSMQ. Nó hoạt động rất tốt ngay cả với nhiều độc giả và nhà văn. Giao dịch cơ sở dữ liệu cung cấp kiểm soát đồng thời. Họ cũng cung cấp sự kiên trì trong trường hợp bị treo hệ thống. –

+1

Tôi phải đồng ý. Chúng tôi tách ra một triển khai BizTalk từ một nhà bán lẻ lớn và thay thế nó bằng tôi nghĩ rằng ba bảng SQL Server. Đơn giản và rẻ hơn. Rõ ràng họ không sử dụng BizTalk cho tất cả chức năng của nó. – Perhentian

0

Nếu bạn có ngân sách cho nó, bạn luôn có thể sử dụng Biztalk.

Nếu bạn muốn làm điều gì đó thú vị hơn bạn có thể sử dụng Microsoft Azure Service Bus http://www.microsoft.com/azure/servicebus.mspx

Bạn có thể sử dụng dịch vụ môi giới SQL http://msdn.microsoft.com/en-us/library/ms345108(SQL.90).aspx. Không chắc chắn nếu có một kế hoạch để ngừng finctionality này.

Hoặc nó, bạn muốn điều đơn giản nhất mà làm việc, sử dụng một bảng sql :)

+0

Đề xuất của bạn dường như cực đoan; NServiceBus được quảng cáo dưới dạng nền tảng để đồng bộ hóa và/hoặc tải bộ nhớ cache InProc giữa các máy chủ. Xem blog của Udi Dahan. Azure và BizTalk là các nền tảng nhắn tin giữa các hệ thống; aka EDI và trước đây làm cho một vòng tròn để Microsoft ... :) MSMQ không phải là một giải pháp doanh nghiệp có thể mở rộng và đáng tin cậy. Nó tuyệt vời cho các gói tin nhỏ nhưng không phải là dữ liệu quy mô doanh nghiệp. Những thách thức khác nhau từ phân mảnh đĩa chính ảnh hưởng đến hệ điều hành, hệ điều hành khóa để thông báo cắt ngắn. SQLCE là một tùy chọn nhưng đã được hiển thị là một nút cổ chai hiệu suất cho các hoạt động InProc. – G33kKahuna

+0

Vâng, tôi đồng ý rằng đó là một chút triệt để, chỉ có nghĩa là để cung cấp cho bạn một ý tưởng về phạm vi đầy đủ các tùy chọn. Nếu bạn đang tìm kiếm SQLCE, bạn đang làm việc trên các thiết bị mobil? Nếu vậy hãy xem Microsoft Sync Framework http://msdn.microsoft.com/en-us/sync/default.aspx –

+1

@ G33kKahuna: "MSMQ không phải là giải pháp doanh nghiệp có thể mở rộng và đáng tin cậy" - tại sao bạn nghĩ vậy? Bạn có thể chỉ cho tôi đúng hướng để một cái gì đó cho biết giới hạn của nó là gì không? Tôi hiện đang đánh giá liệu MSMQ có phù hợp với dự án hay không và sẽ tốt hơn nếu bạn biết thêm về điều này. – adrianbanks

6

Heh, câu hỏi cũ, nhưng đáng nói đến là NServiceBus hiện đang hỗ trợ ActiveMQ (như một lựa chọn thay thế) với những người khác trong phát triển. Cũng đã có nói chuyện về việc thực hiện một "Bus dữ liệu" để vượt qua giới hạn kích thước tin nhắn, nhưng tôi không biết tình trạng này.

Cơ sở hạ tầng sẵn sàng để cắm các phương tiện khác nhau và tôi nhớ lại đang thảo luận về việc sử dụng Nhà cung cấp dịch vụ Sql Server, mặc dù tôi không biết liệu điều đó có được thực hiện ngoài các cuộc thảo luận ban đầu hay không.

-2

Tôi hiện đang làm việc trên một bus dịch vụ dựa trên WCF nguồn mở. Bạn có thể tìm thấy ở đây: http://rockbus.codeplex.com/. Nó hỗ trợ đăng ký năng động (@ run-time), kho lưu trữ (cơ sở dữ liệu), giao tiếp có thể cắm, định tuyến dựa trên nội dung dựa trên XPath, phân phối giao dịch qua giao thức wcf, phân phối roundrobin, đánh giá đăng ký có thể cắm và hơn thế nữa. Có một cái nhìn!

+0

Hãy trả lời cẩn thận với các câu trả lời giống nhau; trong hai trường hợp cụ thể này, có vẻ như chỉ ở bên an toàn của đường kẻ, nhưng đừng đi quá đà. Câu trả lời nên giải quyết các câu hỏi riêng lẻ. Cảm ơn! – sarnold

1

Câu hỏi cũ nhưng đáng để chứng minh câu trả lời cập nhật. Đối với những ứng dụng cấp doanh nghiệp đang phát triển, Windows Azure Service Bus đã thực sự đi một chặng đường dài kể từ khi thành lập và rất đáng xem xét cho bất kỳ ai quan tâm đến việc triển khai mô hình pub/sub. Dưới đây là một số điểm nổi bật của Windows Azure Bus Service ...

  • Bao gồm một Windows Azure Tools SDK for .Net mà làm cho sự phát triển rất dễ dàng trong bất kỳ ngôn ngữ Net.

  • Có một Explorer Tool là giao diện GUI giúp dễ dàng quản lý và kiểm tra hàng đợi của bạn. Một phiên bản được xây dựng ngay vào Visual Studio và một phiên bản khác là một ứng dụng độc lập.

  • Có ba mô hình tin nhắn

    • Relay - Được thiết kế để giao tiếp giữa các ứng dụng trên tiền đề và các ứng dụng điện toán đám mây
    • Pub/Sub - Được biết đến như "Chủ đề" trong Azure, nó cung cấp các xuất bản/đăng ký mô hình tin nhắn.
    • Người môi giới nhắn tin - nhắn tin được tách riêng nơi người gửi và người nhận không phải trực tuyến cùng một lúc.
  • Hỗ trợ hành vi giao dịch (giao guarateeed thông điệp)

  • Trên hết, Microsoft thấy một tương lai trong điện toán đám mây vì vậy đây sẽ chỉ nhận được tốt hơn.

  • Điểm bất lợi lớn nhất của công nghệ này là Windows Azure được thiết kế cho môi trường doanh nghiệp quy mô lớn và do đó rất tốn kém.

Đây là một trang web tốt mà cung cấp nhiều chi tiết hơn về các khả năng mới nhất của Windows Azure Service Bus

BTW: Tôi không liên kết với Micrsoft trong bất cứ cách nào. Tôi chỉ đến từ một nền tảng của việc sử dụng NServiceBus và thấy nó rất dễ dàng để chuyển đổi sang Windows Azure Service Bus như các mô hình tương tự.