Cài đặt MassTransit trên ASP .NET Core

MassTransit là gì?

MassTransit là thư viện mã nguồn mở về message bus để xây dựng các ứng dụng hướng microservices





Các thư viện có chức năng tương tự MassTransit có thể kể đến như

CAP


NServiceBus




MassTransit sẽ được dùng kết hợp với các Message Broker (Transports) như RabbitMQ, ActiveMQ, Azure Service Bus, ... Ngoài ra, MassTransit hỗ trợ cả InMemory để ta có thể dễ dàng kiểm tra và không phải cài gì thêm

Để tìm hiểu thêm về MassTransit các bạn tham khảo thêm các trang dưới đây

Cài đặt MassTransit cho ứng dụng ASP .NET Core

Yêu cầu
Visual Studio or Visual Studio Code

Các bạn có thể tham khảo và tải về code mẫu ở đây.

Các bước thực hiện

Khởi tạo một project ASP .NET Core
dotnet new webapi MassTransitTest

Cài đặt các packages cần thiết


Cài đặt package transport hoặc database mà bạn sử dụng. Ở đây tôi chọn RabbitMQ.

Để cài đặt RabbitMQ tôi khuyên khích các bạn sử dụng Docker. Tham khảo bài viết về cài đặt các công cụ sử dụng Docker ở đây.

docker run -d -p 15672:15672 -p 5672:5672 rabbitmq:management

MassTransit hỗ trợ rất nhiều loại transport và database
https://www.nuget.org/packages/MassTransit.AzureServiceBus
https://www.nuget.org/packages/MassTransit.ActiveMQ
https://www.nuget.org/packages/MassTransit.AmazonSQS
https://www.nuget.org/packages/MassTransit.Http

cd MassTransitTest
dotnet add package MassTransit
dotnet add package MassTransit.AspNetCore
dotnet add package MassTransit.RabbitMQ

Tạo các classes cần thiết
Class BusService.cs để start stop bus control theo ứng dụng ASP .NET Core
Class Order.cs mô tả dữ liệu mà bạn muốn truyền đi
Class MassTransitController.cs demo cách truyền dữ liệu đi
Class SendOrderConsumer.cs để xử lý việc nhận mesage
Cấu hình MassTransit trong Startup.cs
Khởi chạy và kiểm tra
dotnet run

Đi đến đường dẫn sau để tiến hành gửi dữ liệu
http://localhost:5000/masstransit
Kết quả thu được như sau



Tham khảo thêm
https://masstransit-project.com/MassTransit/usage/configuration.html#masstransit-and-aspnet-core



Tiếp tục cập nhật ...