日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

MassTransit - .NET Core 的分布式应用程序框架

發(fā)布時(shí)間:2023/12/4 asp.net 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MassTransit - .NET Core 的分布式应用程序框架 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介

MassTransit 是一個(gè)免費(fèi)的、開(kāi)源的.NET 分布式應(yīng)用程序框架。MassTransit 使創(chuàng)建應(yīng)用程序和服務(wù)變得容易,這些應(yīng)用程序和服務(wù)利用基于消息的松散耦合異步通信來(lái)實(shí)現(xiàn)更高的可用性、可靠性和可擴(kuò)展性

特點(diǎn)

?易于使用和理解的 API,讓您專(zhuān)注于解決業(yè)務(wù)問(wèn)題?使用 RabbitMQ、Azure 服務(wù)總線、ActiveMQ 和 Amazon SQS/SNS 部署您的解決方案,無(wú)需重寫(xiě)?強(qiáng)大的消息模式?端到端解決方案?內(nèi)存測(cè)試工具,用于創(chuàng)建具有全面集成測(cè)試級(jí)別驗(yàn)證的快速單元測(cè)試?對(duì)分布式跟蹤以及監(jiān)控

使用

安裝 MassTransit 模板

MassTransit 包括項(xiàng)目和項(xiàng)目模板,簡(jiǎn)化了新項(xiàng)目的創(chuàng)建。dotnet new -i MassTransit.Templates通過(guò)在控制臺(tái)執(zhí)行來(lái)安裝模板。

dotnet?new?-i?MassTransit.Templates

初始項(xiàng)目創(chuàng)建

要使用 MassTransit 創(chuàng)建服務(wù),請(qǐng)通過(guò)命令提示符創(chuàng)建Worker

$?dotnet?new?mtworker?-n?GettingStarted $?cd?GettingStarted $?dotnet?new?mtconsumer

代碼概述

打開(kāi)項(xiàng)目時(shí),您會(huì)看到有 3 個(gè)類(lèi)文件。Program.cs是標(biāo)準(zhǔn)入口點(diǎn),在這里我們配置主機(jī)生成器。Consumers/GettingStartedConsumer.cs是運(yùn)輸消費(fèi)者 Contracts/GettingStarted.cs是一個(gè)示例消息

添加后臺(tái)服務(wù)

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);}} }

注冊(cè)Work

在方法Program.cs的底部ConfigureServices添加

services.AddHostedService<Worker>();

更新消費(fèi)者

在您的Consumers文件夾中,GettingStartedConsumer使用如下所示的日志記錄語(yǔ)句進(jìn)行編輯。

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;} }

###運(yùn)行項(xiàng)目 輸出應(yīng)該已更改以顯示生成輸出的消息使用者(再次按 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

最后大家如果喜歡我的文章,還麻煩給個(gè)關(guān)注并點(diǎn)個(gè)贊, 希望net生態(tài)圈越來(lái)越好!

總結(jié)

以上是生活随笔為你收集整理的MassTransit - .NET Core 的分布式应用程序框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。