作家
登录

如何优雅的使用RabbitMQ

作者: 来源: 2017-07-26 14:15:32 阅读 我要评论

  •   
  •     Console.ReadLine(); 
  •   
  • private static async void SendCommand(IBusControl bus,Uri sendToUri) 
  •     var endPoint =await bus.GetSendEndpoint(sendToUri); 
  •     var command = new GreetingCommand() 
  •     { 
  •         Id = Guid.NewGuid(), 
  •         DateTime = DateTime.Now 
  •     }; 
  •   
  •     await endPoint.Send(command); 
  •   
  •     Console.WriteLine($"send command:id={command.Id},{command.DateTime}");  
  • 这一段代码隐蔽了浩瀚关于消息队列的细节,将我们的留意力集中在发送消息上,同时ServiceBus供给的API也更接近营业,我们固然发送的是一个消息,然则在这种场景下表现出来是一个敕令,Send(command)这一API描述了我们的意图。

    3、办事端接收这一敕令

    新建一个敕令台控制法度榜样:Masstransit.RabbitMQ.GreetingServer:

    1. var bus = BusCreator.CreateBus((cfg, host) => 
    2.     cfg.ReceiveEndpoint(host, RabbitMqConstants.GreetingQueue, e => 
    3.     { 
    4.         e.Consumer<GreetingConsumer>(); 
    5.   
    6.     }); 
    7. }); 

    这一代码可以懂得为办事端在监听消息,我们在办事端住册了一个名为“GreetingConsumer”的花费者,GreetingConsumer的定义:

    该consumer可以花费类型为GreetingCommand的消息。这一实例几乎隐蔽了有关RabbitMQ的技巧细节,将代码中间放在了营业中,将这两个控制台应用跑起来尝尝:

    两个控制台应用

    五、实现Publish/Subscribe模式

    1. public class GreetingConsumer :IConsumer<GreetingCommand> 
    2.     public async Task Consume(ConsumeContext<GreetingCommand> context) 
    3.     { 
    4.   
    5.         await Console.Out.WriteLineAsync($"receive greeting commmand: {context.Message.Id},{context.Message.DateTime}"); 
    6.     } 

    宣布/订阅模式使得基于消息传递的软件架构成为可能,这一才能表示为ClientA发送消息X,ClientB和ClientC都可以订阅消息X。

    1、我们在膳绫擎的例子中改革一下,当GreetingConsumer收到GreetingCommand后发送一个GreetingEvent:

    1. var greetingEvent = new GreetingEvent() 
    2.  { 
    3.      Id = context.Message.Id, 
    4.      DateTime = DateTime.Now 
    5.  }; 
    6.   
    7.  await context.Publish(greetingEvent); 

    2、新建控制台法度榜样Masstransit.RabbitMQ.GreetingEvent.SubscriberA用来订阅GreetingEvent消息:


        推荐阅读

        CVPR 2017论文解读:特征金字塔网络FPN

      论文:Feature Pyramid Networks for Object Detection论文地址:https://arxiv.org/abs/1612.03144这里介绍的文┞仿是来自 Facebook 的特点金字塔收集 Feature Pyramid Networks(FPN)。F>>>详细阅读


      本文标题:如何优雅的使用RabbitMQ

      地址:http://www.17bianji.com/lsqh/36412.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)