当前位置:   article > 正文

C# rabbitMQ 接收消息和发送消息_c# 使用rabbitmq进行消息对话

c# 使用rabbitmq进行消息对话

RabbitMQ是比较流行的消息中间件,最近在使用这个消息队列,就抽空把此潦草的学习了一下:

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。

RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。

所有主要的编程语言均有与代理接口通讯的客户端库。(百度百科)

先笼统的说一下吧:

ConnectionFactory:消息中间件的对象

Connection:创建链接

Channel:会话和模型

Queue:队列的对象

ExChange:交换器

RoutingKey:路由钥匙

如果要使用ExChange和RoutingKey时要Queue创建相关的链接,要不消息就会放进无效的队列中,在我们的站点上可以进行配置,下面看一下发送的代码:

  1. static void Main(string[] args)
  2. {
  3. var factory = new ConnectionFactory();
  4. factory.HostName = "127.0.0.1";//主机名
  5. factory.UserName = "";//默认用户名
  6. factory.Password = "";//默认密码
  7. using (var connection = factory.CreateConnection())
  8. using (var channel = connection.CreateModel())
  9. {
  10. channel.QueueDeclare("HelloQueue",true,false,false,null);
  11. channel.ExchangeDeclare("HelloExchange", "direct", false, false, null);
  12. for (int i = 0; i < 1000; i++)
  13. {
  14. string message = "Hello World";
  15. var body = Encoding.UTF8.GetBytes(message);
  16. channel.BasicPublish("HelloExchange", "HelloRouting", null, body); //开始传递
  17. Console.WriteLine("已发送: {0}", message + DateTime.Now + Environment.NewLine);
  18. Thread.Sleep(1000);
  19. }
  20. }
  21. Console.WriteLine(" 点击 [enter] 结束本次对话。");
  22. Console.ReadLine();
  23. }

接收消息的代码:

  1. static void Main(string[] args)
  2. {
  3. var factory = new ConnectionFactory();
  4. factory.HostName = "127.0.0.1";//主机IP
  5. factory.UserName = "";//用户名
  6. factory.Password = "";//密码
  7. factory.Port = 5672;
  8. using (var connection = factory.CreateConnection())
  9. {
  10. using (var channel = connection.CreateModel())
  11. {
  12. var consumer = new EventingBasicConsumer(channel);
  13. channel.BasicConsume("HelloQueue", true, consumer);
  14. consumer.Received += (model, ea) =>
  15. {
  16. var body = ea.Body;
  17. var message = Encoding.UTF8.GetString(body);
  18. Console.WriteLine("已接收: {0}", message);
  19. };
  20. }
  21. }
  22. Console.WriteLine(" 点击 [enter] 结束本次对话。");
  23. Console.ReadLine();
  24. }

记录一下rabbitmq的基本操作,如果还需要更复杂的生产环境就需要进一步去学习了,研究了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/994146
推荐阅读
相关标签
  

闽ICP备14008679号