• RabbitMQ初识及简单实践


    这篇文章比较全面详细的介绍了RabbitMQ中涉及的相关概念及组件,推荐阅读 超详细的RabbitMQ入门,看这篇就够了!-阿里云开发者社区 (aliyun.com).

    文章是java实现的,因为工作使用的是C#, 所以使用C#进行实践。

    1. 生产者:

     1 //1、创建连接工厂
     2 var factory = new ConnectionFactory()
     3  {
     4     HostName = "localhost",
     5     Port = 5672,
     6     Password = "guest",
     7     UserName = "guest",
     8     VirtualHost = "/"
     9 };
    10 using (var connection = factory.CreateConnection())
    11 {
    12     var channel = connection.CreateModel();
    13     // 2、定义队列
    14     channel.QueueDeclare(queue: "test",
    15                     durable: false,
    16                     exclusive: false,
    17                     autoDelete: false,
    18                     arguments: null);
    19 
    20     string message = "Hello World!";
    21     var body = Encoding.UTF8.GetBytes(message);
    22 
    23     // 3、发送消息
    24     var properties = channel.CreateBasicProperties();
    25     properties.Persistent = true; // 设置消息持久化
    26     channel.BasicPublish(exchange: "",
    27     routingKey: "test",
    28     basicProperties: properties,
    29     body: body);
    30 }
    31 _logger.LogInformation("成功发送消息");

    2. 消费者:

     1     // 1、创建连接
     2     var factory = new ConnectionFactory()
     3     {
     4         HostName = "localhost",
     5         Port = 5672,
     6         Password = "guest",
     7         UserName = "guest",
     8         VirtualHost = "/"
     9      };
    10      var connection = factory.CreateConnection();
    11      var channel = connection.CreateModel();
    12      channel.QueueDeclare(queue: "test", durable: false, exclusive: false, autoDelete: false, arguments: null);
    13      var consumer = new EventingBasicConsumer(channel);
    14      consumer.Received += (model, ea) =>
    15                 {
    16                     Console.WriteLine($"model:{model}");
    17                     var body = ea.Body;
    18                     //业务逻辑
    19                     var message = Encoding.UTF8.GetString(body.ToArray());
    20                     Console.WriteLine(message);
    21                 };
    22       channel.BasicConsume(queue: "test",
    23                                      autoAck: true,
    24                                      consumer: consumer);

    实践为 最简单的单生产者,单消费者模式。

  • 相关阅读:
    CSS3媒体查询总结
    关于前端学习规划
    开发技术版本
    Visual Studio 问题汇总
    asp.net web core 开发问题汇总(1)
    asp.net web core 部署问题汇总
    报表平台需求文档(V0.0.0.1)
    Git使用说明
    派生类
    cin、cout的重载
  • 原文地址:https://www.cnblogs.com/lyyd/p/15962227.html
Copyright © 2020-2023  润新知