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:00Github地址
https://github.com/MassTransit/MassTransit
最后大家如果喜歡我的文章,還麻煩給個關注并點個贊, 希望net生態圈越來越好!
總結
以上是生活随笔為你收集整理的MassTransit - .NET Core 的分布式应用程序框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring4Shell的漏洞原理分析
- 下一篇: Xamarin效果第十五篇之自定义Che