nServiceBus so với Mass Transit so với Rhino Service Bus so với khác?


104

Chỉ cần thực hiện một số bước đột phá nhanh chóng để có thể sử dụng hệ thống nhắn tin để xử lý các tệp nằm trong hệ thống luồng công việc được tách biệt độc đáo.

Những ưu điểm và khuyết điểm mà mọi người nhận thấy khi sử dụng từng khuôn khổ trên là gì? Ưu điểm của việc sử dụng hệ thống này so với hệ thống MSMQ cuộn bằng tay với các ràng buộc WCF và / hoặc các giải pháp không phải MSMQ là gì ??

Câu trả lời:


71

Tôi khuyên bạn nên tránh xa các giải pháp cuộn thủ công vì có một loạt nội dung hơi khó khăn cần được giải quyết vừa phải - như cách xử lý các giao dịch, cách các trường hợp ngoại lệ gây ra việc khôi phục, cách ngừng quay lại liên tục (thông điệp độc), cách tích hợp với các quy trình công việc dài hạn sao cho phù hợp với ranh giới quản lý nhà nước và hơn thế nữa.

Bạn có thể sẽ muốn một số loại cơ sở hạ tầng nhắn tin bền vững / giao dịch, vì vậy không sử dụng MSMQ, bạn sẽ bị bỏ lại với Service Broker trên nền tảng Microsoft hoặc một số thay thế khác như ActiveMQ. MSMQ có lợi ích là đã được cài đặt trên tất cả các máy Windows, trái ngược với Service Broker thì không.

Về việc lựa chọn giữa NServiceBus, Mass Transit và Rhino Service Bus - câu trả lời Stackoverflow này so sánh NServiceBus với MassTransit sẽ là một nơi tốt để bắt đầu ..

Trong bản phát hành 3.1 của chúng tôi, chúng tôi sẽ giới thiệu NSB Studio - một bộ công cụ tạo mô hình tích hợp Visual Studio cho phép bạn lập mô hình hệ thống của mình ở mức độ trừu tượng cao hơn và có nhiều cấu hình và khởi tạo NServiceBus được thực hiện tự động cho bạn. Tôi muốn nói rằng điều này thực sự dẫn đến các quy mô có lợi cho NServiceBus.

Hy vọng rằng sẽ giúp.

Tuyên bố từ chối trách nhiệm: Tôi là tác giả của NServiceBus.


25
Rhino Service Bus là trung tâm của Castle. Nếu bạn không quen thuộc / cảm thấy thoải mái với Castle như một phần cốt lõi trong kiến ​​trúc ứng dụng của mình, bạn có thể gặp một số khó khăn với nó. NServiceBus và Mass Transit hoặc container bất khả tri. NServiceBus đi kèm với một "máy chủ ứng dụng" xử lý việc lưu trữ mã của bạn cũng như thay đổi việc triển khai cơ sở hạ tầng đang hoạt động (như trong bộ nhớ, MSMQ và DB) khi bạn chuyển đổi hệ thống của mình từ nhà phát triển sang thử nghiệm thành sản phẩm. Nó cũng đi kèm với các phương tiện kiểm tra đơn vị để xử lý thông điệp của bạn và các quy trình lâu dài. Tôi không tin rằng MassTransit có những thứ này.
Udi Dahan 28/10/09

35
Có lẽ cần lưu ý rằng Udi là TÁC GIẢ của NServiceBus, và vì vậy ý ​​kiến ​​của anh ấy có thể hơi thiên vị ở đây. :) Phải nói rằng, tôi hoàn toàn đồng ý và sẽ ủng hộ việc sử dụng NServiceBus vì những lý do tương tự như anh ấy đã làm.
skb

8
@skb: đồng ý! Udi, bạn thực sự nên đưa ra một số loại tuyên bố từ chối trách nhiệm khi trả lời các câu hỏi nservicebus, đặc biệt là những câu hỏi như thế này!
andy

14
Tôi vẫn làm quen với thực tế mà mọi người đang khám phá NServiceBus người không biết rằng tôi tạo ra nó
Udi Dahan

5
@UdiDahan: nServiceBus là "mã nguồn mở" như thế nào? Việc xuất bản mã nguồn mà không có giấy phép sử dụng không làm gì cho tinh thần của mã nguồn mở, đó là chia sẻ. Tôi hoàn toàn ủng hộ quyền kiếm sống bằng phần mềm bán hàng của bạn (tôi cũng làm như vậy), nhưng tôi nghĩ sẽ chính xác hơn nhiều nếu bạn không giới thiệu giải pháp (bài 2.0) dưới dạng mã nguồn mở.
Eric J.

52

NServiceBus là một sản phẩm tốt nhưng hãy cẩn thận với các vấn đề cấp phép. Nó có xu hướng thay đổi chính sách cấp phép theo mong muốn của các tác giả. Hãy xem thông tin giấy phép cũ chẳng hạn .

Có thể xảy ra rằng trong quá trình phát triển dự án, bạn sẽ phát hiện ra rằng bạn phải trả rất nhiều tiền cho NServiceBus.

Ngoài ra phiên bản miễn phí có giới hạn hiệu suất.

MassTransit là mã nguồn mở hoàn toàn miễn phí, không có giới hạn và được cấp phép Apache 2.0.

Tôi chưa sử dụng Rhino Service Bus .


1
Trên thực tế, chúng tôi sẽ cung cấp giấy phép mới với phiên bản 3.1 cho phép bạn chạy miễn phí trên nhiều máy (mặc dù ở mức thông lượng thấp hơn).
Udi Dahan

11
MassTransit là người đàn ông của bạn. Nó miễn phí; không có hạn chế cấp phép. Nếu bạn có thể làm mà không cần một nhà thiết kế dòng chảy và có thể tự tay cuộn thì bạn không thể đánh bại nó. Nó cũng có thể nằm trên RabbitMQ và MSMQ có các plugin Azure cộng đồng. MassTranit + RabbitMQ đã chứng tỏ mình là một môi trường ổn định tuyệt vời và rất nhanh chóng cho phép bạn giúp người tiêu dùng / nhà sản xuất của mình hoạt động.
Bigtoe

3
Cũng xem xét EasyNetQ (trình bao bọc đơn giản xung quanh thỏMQ) UDI Suprised không cân nhắc nhiều hơn trong các cuộc thảo luận với các đề xuất 4 lựa chọn thay thế tốt 2 nServiceBus? Ý tôi là gì. giúp dân gian trên hành trình nhắn tin ở giai đoạn đầu. Có rất nhiều cách tốt đơn giản (miễn phí) 2 bắt đầu; không thực sự quan trọng bạn sử dụng gì miễn là nó dễ dàng và miễn phí; (miễn phí để chơi và miễn phí để triển khai thực tế và cũng có thể tự do thay đổi sau này) Khi bạn đang phát triển, bạn sẽ phát triển danh sách các mối quan tâm của riêng mình; tại thời điểm đó, một sản phẩm trưởng thành hơn là một quyết định dễ dàng, với chi phí giả định dễ dàng, ví dụ: nservicebus.
snowcode

Tính đến MassTransit 4,0 MSMQ không còn được hỗ trợ ( masstransit-project.com/MassTransit )
MyGGaN

25

Cập nhật trạng thái của Rhino vs NServicebus:

http://www.infoq.com/news/2012/04/nservicebus3-0

InfoQ to Ayende: Trước đây bạn đã tự viết một bus dịch vụ cho .NET, cụ thể là Rhino Service Bus. Người dùng Rhino Service Bus bây giờ có nên xem xét lại và chuyển sang NServiceBus không?

Ayende: Tôi xây dựng Xe buýt dịch vụ Rhino vào khoảng năm 2008. Tôi xây dựng nó chủ yếu vì tôi không hài lòng với tình trạng của các xe buýt dịch vụ khác vào thời điểm đó. Tôi đã có những mối quan tâm và hướng đi khác nhau khi xây dựng xe buýt dịch vụ của mình, nhưng đó là cách đây 4 năm. Vào thời điểm đó, tôi nghĩ rằng NServiceBus đã có những bước tiến lớn trong việc trở thành một sản phẩm dễ sử dụng hơn và có một câu chuyện phát triển ngoài hộp tốt hơn nhiều. Nếu tôi bắt đầu với xe buýt dịch vụ ngày hôm nay, tôi thực sự nghi ngờ rằng tôi sẽ xây dựng cho riêng mình.


9

một điều tiềm ẩn của bất cứ điều gì MSMQ dựa trên là giới hạn về kích thước thư tối đa. IIRC nó xấp xỉ 4MB, mà bạn có thể dễ dàng gặp phải nếu đang xử lý các tệp lớn và lưu trữ nội dung tệp trong thư.


7
Điều thú vị là hầu hết các hàng đợi dựa trên đám mây thậm chí không hỗ trợ tải trọng 100KB, vì vậy đây là điều mà nhiều ứng dụng sẽ cần phải tính đến trong tương lai.
Udi Dahan 23/10/09

32
Trong Mẫu tích hợp doanh nghiệp (Woolf, Hohpe), mẫu Kiểm tra xác nhận quyền sở hữu giải quyết cụ thể mối quan tâm này. Tham chiếu đến trọng tải lớn chỉ được lưu trong thư, giữ cho thư nhỏ. Kích thước tin nhắn lớn có thể ảnh hưởng đến thông lượng của hệ thống nhắn tin.
Chris Patterson

4
Đây không phải là vấn đề với NServiceBus vì họ có khái niệm về Bus dữ liệu, hoạt động minh bạch xung quanh các giới hạn về kích thước.
Khalid Abuhakmeh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.