当前位置: 首页 > news >正文

云南网站开发培训机构排行软件app开发制作多少钱

云南网站开发培训机构排行,软件app开发制作多少钱,湖南专业的关键词优化,好看的网站 你知道的2021MassTransit 是一个自由、开源、轻量级的消息总线基于.Net框架, 用于创建分布式应用程序。方便搭建基于消息的松耦合异步通信的应用程序和服务。MassTransit 在现有消息传输上提供了一组广泛的功能, 从而使开发人员能够友好地使用基于消息的会话模式异步连接服务。基于消息的通… MassTransit 是一个自由、开源、轻量级的消息总线基于.Net框架, 用于创建分布式应用程序。方便搭建基于消息的松耦合异步通信的应用程序和服务。MassTransit 在现有消息传输上提供了一组广泛的功能, 从而使开发人员能够友好地使用基于消息的会话模式异步连接服务。基于消息的通信是实现面向服务的体系结构的可靠和可扩展的方式。官网地址http://masstransit-project.com/发布订阅模式这种场景十分常见发送一个消息(或事件)到消息队列中有一个或是多个订阅方对预期的消息接收处理。基于需要搭建了两个WebApi程序用于模拟发送方和订阅方其中的RabbitMQ已预先搭建好了只在程序中引用包配置下即可。PackageReference IncludeMassTransit Version7.2.0 / PackageReference IncludeMassTransit.AspNetCore Version7.2.0 / PackageReference IncludeMassTransit.RabbitMQ Version7.2.0 / 发布端配置在Startup中增加MassTransit需要的服务及初始化配置。对RabbitMQ的连接地址端口、虚拟主机、访问账号密码等系列配置。对发送方需要发送的消息初始化一个请求客户端配置请求信息及推送到MQ的地址。services.AddMassTransit(x {x.UsingRabbitMq((context, cfg) {cfg.Host(Configuration[RabbitmqConfig:HostIP], ushort.Parse(Configuration[RabbitmqConfig:HostPort]), Configuration[RabbitmqConfig:VirtualHost], h {h.Username(Configuration[RabbitmqConfig:Username]);h.Password(Configuration[RabbitmqConfig:Password]);});});x.AddRequestClientValueEntered(new Uri(GetServiceAddress(events-valueentered))); }); services.AddMassTransitHostedService(); 为了快速了解使用Controller在Action中发起对MQ的消息推送[ApiController] [Route([controller])] public class ValueController : ControllerBase {readonly IPublishEndpoint _publishEndpoint;public ValueController(IPublishEndpoint publishEndpoint){_publishEndpoint publishEndpoint;}[HttpPost]public async TaskActionResult Post(string value){await _publishEndpoint.PublishValueEntered(new{Value value});return Ok();} } 订阅端配置订阅端也创建一个WebApi应用在Startup中增加MassTransit的服务使用到的Nuget包和发布端一样。对RabbitMQ的连接地址端口、虚拟主机、访问账号密码等系列配置。为订阅端增加一个订阅处理的Handler即如下的ValueEnteredEventConsumer增加一个接受点指定队列名称即发送端发送的队列名称设置该队列消费处理的Consumer即ValueEnteredEventConsumerservices.AddMassTransit(x {x.AddConsumerValueEnteredEventConsumer();x.UsingRabbitMq((context, cfg) {cfg.Host(Configuration[RabbitmqConfig:HostIP], ushort.Parse(Configuration[RabbitmqConfig:HostPort]), Configuration[RabbitmqConfig:VirtualHost], h {h.Username(Configuration[RabbitmqConfig:Username]);h.Password(Configuration[RabbitmqConfig:Password]);});cfg.ReceiveEndpoint(events-valueentered, e {e.ConfigureConsumerValueEnteredEventConsumer(context);});}); }); services.AddMassTransitHostedService(); 如此一来通过Postman发送一个请求经发布端发布一个消息到RabbitMQ订阅端侦听消息处理消息一切都很熟悉。请求响应模式在发布订阅的基础上改变以往的习惯当发布一个消息后等待订阅方的处理并将消息推送回RabbitMQ发送方接受到处理后的消息继续执行。请求端在Startup中新加上一个用于发送消息(CheckOrderStatus)的请求客户端及指定消息队列名称(为每一个消息创建一个单独的队列)。x.AddRequestClientCheckOrderStatus(new Uri(GetServiceAddress(events-checkorderstatus))); 增加一个Controller及Action来请求及获取处理结果(OrderStatusResult)。[ApiController] [Route([controller])] public class OrderController : ControllerBase {private readonly IRequestClientCheckOrderStatus _client;public OrderController(IRequestClientCheckOrderStatus client){_client client;}public async TaskOrderStatusResult Get(string id){var response await _client.GetResponseOrderStatusResult(new { OrderId id });return response.Message;} } 响应端同样在响应端Startup中对新的消息设置下消息侦听队列以及相应的Handler如下的ValueEnteredEventConsumer去消费消息并返回处理结果。x.AddConsumerCheckOrderStatusConsumer (); x.UsingRabbitMq((context, cfg) {// ...cfg.ReceiveEndpoint(events-checkorderstatus, e {e.ConfigureConsumerCheckOrderStatusConsumer (context);}); }); Consumer中获取请求参数执行请求返回执行结果。public class CheckOrderStatusConsumer : IConsumerCheckOrderStatus {public async Task Consume(ConsumeContextCheckOrderStatus context){if (context.Message.OrderId 9527){throw new InvalidOperationException(Order not found);}Console.WriteLine($OrderId:{context.Message.OrderId});await context.RespondAsyncOrderStatusResult(new{OrderId context.Message.OrderId,Timestamp Guid.NewGuid().ToString(),StatusCode 1,StatusText Close});} } 这样一来当请求端发起一个消息(事件)到RabbitMQ响应端侦听并处理完毕返回处理结果到RabbitMQ请求端依照响应结果继续执行后续请求。HTTP方式差异与以往的Http请求方式有所不同通过httpClient.PostAsync发送请求接收端处理并返回结果而走requestClient发送请求到RabbitMQ再由RabbitMQ推送到侦听节点消费并返回结果如下第一二部分结构。
http://www.zqtcl.cn/news/562090/

相关文章:

  • 网站制作公司汉狮网络手机版网站优化
  • 铜川做网站logo 图标 设计
  • 如何做网站的注册页面南京宣传片公司有哪些
  • 中国建设机械教育协会网站网站建设中html中关于图片显示的标签有哪些
  • 网站过期后dede减肥网站源码
  • 营销型 手机网站网站建设方案后期服务
  • 怎么做一个个人网站建网站的八个步骤
  • 淘宝导购网站模版上海网站推广软件
  • 做影视网站引流湖北响应式网站建设费用
  • 网站统计cnzz网站空间有哪些
  • 泉州微信网站开发公司wordpress头像解决
  • 湛江网站建设皆选小罗24专业网站建设 福田
  • 厦门哪些做鲜花的网站门户网站开发设计报告
  • asp.net网站设计分工天津网站开发贴吧
  • 做多语言网站教程南宁vi设计公司
  • 百度联盟 网站备案wordpress 吾爱破解
  • 山西省建设厅网站首页网络营销推广为什么效果不好
  • 建材做网站好吗长沙做网站微联讯点不错
  • 建设小型网站分类门户网站系统
  • 文化馆网站数字化建设介绍138ip地址查询网站
  • 卖汽车的网站怎么做的建设服装网站的论文
  • 网络推广哪个网站好网站建设最低多少钱
  • 怎么在自己电脑做网站北京赛车网站开发
  • 门户网站内容wordpress上下页
  • 长安做英文网站营销型网站搭建
  • 网站开发交接清单seo排名优化方法
  • 各学院二级网站建设通报wordpress注册评论
  • 南通公司做网站无人在线完整免费高清观看
  • 廊坊网站推广局域网网站建设的步骤过程
  • 如何在工信部网站注册简易网页设计代码