MassTransit - .NET Core 的分布式應用程序框架
簡介
MassTransit 是一個免費的、開源的.NET 分布式應用程序框架。MassTransit 使創建應用程序和服務變得容易,這些應用程序和服務利用基于消息的松散耦合異步通信來實現更高的可用性、可靠性和可擴展性
特點
?易于使用和理解的 API,讓您專注于解決業務問題?使用 RabbitMQ、Azure 服務總線、ActiveMQ 和 Amazon SQS/SNS 部署您的解決方案,無需重寫?強大的消息模式?端到端解決方案?內存測試工具,用于創建具有全面集成測試級別驗證的快速單元測試?對分布式跟蹤以及監控
使用
安裝 MassTransit 模板
MassTransit 包括項目和項目模板,簡化了新項目的創建。dotnet new -i MassTransit.Templates通過在控制臺執行來安裝模板。
dotnet new -i MassTransit.Templates
初始項目創建
要使用 MassTransit 創建服務,請通過命令提示符創建Worker
$ dotnet new mtworker -n GettingStarted
$ cd GettingStarted
$ dotnet new mtconsumer
代碼概述
打開項目時,您會看到有 3 個類文件。Program.cs是標準入口點,在這里我們配置主機生成器。Consumers/GettingStartedConsumer.cs是運輸消費者 Contracts/GettingStarted.cs是一個示例消息
添加后臺服務
namespace GettingStarted;
using System;
using System.Threading;
using System.Threading.Tasks;
using Contracts;
using MassTransit;
using Microsoft.Extensions.Hosting;
public class Worker : BackgroundService
{
readonly IBus _bus;
public Worker(IBus bus)
{
_bus = bus;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
await _bus.Publish(new GettingStarted { Value = $"The time is {DateTimeOffset.Now}" }, stoppingToken);
await Task.Delay(1000, stoppingToken);
}
}
}
注冊Work
在方法Program.cs的底部ConfigureServices添加
services.AddHostedService<Worker>();
更新消費者
在您的Consumers文件夾中,GettingStartedConsumer使用如下所示的日志記錄語句進行編輯。
namespace GettingStarted.Consumers;
using System.Threading.Tasks;
using Contracts;
using MassTransit;
using Microsoft.Extensions.Logging;
public class GettingStartedConsumer :
IConsumer<GettingStarted>
{
readonly ILogger<GettingStartedConsumer> _logger;
public GettingStartedConsumer(ILogger<GettingStartedConsumer> logger)
{
_logger = logger;
}
public Task Consume(ConsumeContext<GettingStarted> context)
{
_logger.LogInformation("Received Text: {Text}", context.Message.Value);
return Task.CompletedTask;
}
}
###運行項目 輸出應該已更改以顯示生成輸出的消息使用者(再次按 Control+C 退出)。
Building...
info: MassTransit[0]
Configured endpoint Message, Consumer: GettingStarted.MessageConsumer
info: MassTransit[0]
Bus started: loopback://localhost/
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /Users/chris/Garbage/start/GettingStarted
info: GettingStarted.MessageConsumer[0]
Received Text: The time is 3/24/2021 12:02:01 PM -05:00
info: GettingStarted.MessageConsumer[0]
Received Text: The time is 3/24/2021 12:02:02 PM -05:00
Github地址
https://github.com/MassTransit/MassTransit
本文來自博客園,作者:{春光牛牛,yak},轉載請注明原文鏈接:http://www.rzrgm.cn/yakniu/p/16922651.html
歡迎各位大佬們評論指正
QQ討論群:610129902


浙公網安備 33010602011771號