C# RabbitMq帮助类 UtilsSharp.RabbitMq .net Core 3.1使用RabbitMq 快速搭建RabbitMq项目 RabbitMq 公共类standard版

最近花了一些时间封装了基于RabbitMq.Client5.2.0的RabbitMq帮助类UtilsSharp.RabbitMq,执行了下效果还是不错的,现在分享给大家,RabbitMq的基础知识这边就不赘述了,百度一下还是挺多的。下面以一个案例来简述下怎么使用UtilsSharp.RabbitMq,一般队列都是包括生产者和消费者的,所以今天就主要跟大家分享下这两块的代码:

1.首先第一步就是Nuget搜索:UtilsSharp.RabbitMq,下载最新版本的:

2.生产者:

 /// <summary>
 /// 执行生产者
 /// </summary>
 public void Execute()
 {
    //连接串,这个可以配置到全局
    RabbitMqHelperConfig.RabbitMqConfig = new RabbitMqConfig
    {
      RabbitMqConnection = "amqp://连接串"
    };
    //创建对象
    var rabbitMqHelper = new RabbitMqHelper();
    //定义交换机名称
    var exchangeName = "Occ.Order.Exchange";
    //定义路由
    var routingKey = "Occ.Order.RoutingKey";
    //定义队列名称
    var queueName = "Occ.Order.Queue";

    //申明交换机
    rabbitMqHelper.ExchangeDeclare(exchangeName);
    //申明队列
    rabbitMqHelper.QueueDeclare(queueName);
    //绑定
    rabbitMqHelper.QueueBind(queueName, exchangeName, routingKey);
    
    //发布消息到队列
    rabbitMqHelper.Send(exchangeName, routingKey, "消息");
}

3.消费者:

 /// <summary>
 /// 执行消费者
 /// </summary>
 public void Execute()
 {
    //连接串,这个可以配置到全局
    RabbitMqHelperConfig.RabbitMqConfig = new RabbitMqConfig
    {
      RabbitMqConnection = "amqp://连接串"
    };
    //创建对象
    var rabbitMqHelper = new RabbitMqHelper();
    //定义交换机名称
    var exchangeName = "Occ.Order.Exchange";
    //定义路由
    var routingKey = "Occ.Order.RoutingKey";
    //定义队列名称
    var queueName = "Occ.Order.Queue";

    //申明交换机
    rabbitMqHelper.ExchangeDeclare(exchangeName);
    //申明队列
    rabbitMqHelper.QueueDeclare(queueName);
    //绑定
    rabbitMqHelper.QueueBind(queueName, exchangeName, routingKey);
    
    //要开启的消费者数量
    var consumerCount = 50;
    //每个消费者每次获取到的消息数量
    var consumerHandleCount= 100;

    for (var i = 0; i < consumerCount; i++)
    {
      rabbitMqHelper.BatchReceived(queueName, ReceiveCallBack, consumerHandleCount);
    }
 }

  /// <summary>
  /// 消费者委托
  /// </summary>
  /// <param name="contents">拉取到的内容</param>
  public void ReceiveCallBack(List<string> contents)
  {
  
      //contents 是从队列里面每次拿到的消息集合,每次的数量由上面配置的consumerHandleCount决定
      //这边主要是执行业务代码:把拉取到的消息进行处理     
  }

 

以上就UtilsSharp.RabbitMq的简单使用,大家试试吧!上面的消费者采用的是批量获取的模式,大家也可以试试单条获取的模式。单条的是调用这个方法:rabbitMqHelper.Received(xxx,xxx,xxx);


版权声明:本文为agoling原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。