写点什么

【愚公系列】2022 年 03 月 RabbitMQ EasyNetQ 的用法 (window11+vs2022+.NET 6)

作者:愚公搬代码
  • 2022 年 3 月 18 日
  • 本文字数:895 字

    阅读完需:约 3 分钟

一、EasyNetQ 是什么?

RabiitMQ Client 非常地灵活,但是伴随着灵活性而来是复杂性。这意味着你为了需要写大量代码,以便执行 RabbitMQ client。通常,这些代码包括一下这些:


实现消息传递模式,例如 Publish/Subscribe 或 Request/Response。尽管,公平来讲,这个 .NET client 也提供了一些这样的支持。实现路由策略。你将需要设计你如何去 exchange-queue 绑定。并且你将设计怎样在生产者和消费者之间进行消息路由。实现消息的序列化/反序列化。 你将如何转换 AMQP 的二进制消息为你编程语言能理解的格式?为订阅去实现一个消费者线程。你将需要有一个专门的消费者循环等待你订阅的消息。你会如何处理多个订阅者,或者瞬间订阅者,像哪些等待答复的请求。实现消费者重新连接。假如连接崩溃了或者 RabbitMQ 服务挂了,你怎样能检测到并确保你所有的订阅都能被重建?懂得和实施服务质量设置。你需要什么样的设置来确保一个可靠的客户端。实现一个错误处理策略。假如接受到一个错误的消息,或者发生一个未处理异常被抛出,你的客户端应该做什么呢?实现发布者可靠的消息确认。EasyNetQ目标是在 AMQP 之上封装所有这些关注点在一个简单好用的类库中。

二、使用步骤

1.定义公共消息类

public class TextMessage{    public string Text { get; set; } }
复制代码

2.发布/订阅

// See https://aka.ms/new-console-template for more informationusing EasyNetQ;using RabbitMQTest;
using (var bus = RabbitHutch.CreateBus("host=localhost")){ //订阅 bus.PubSub.Subscribe<TextMessage>("test", HandleTextMessage); var input = ""; Console.WriteLine("Enter a message. 'Quit' to quit."); //发布 while ((input = Console.ReadLine()) != "Quit") { bus.PubSub.Publish<TextMessage>(new TextMessage { Text = input }); }}static void HandleTextMessage(TextMessage textMessage){ Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Got message: {0}", textMessage.Text); Console.ResetColor();}
复制代码


4.消息通信

同时启动两者控制台代码

发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2022.03.01 加入

该博客包括:.NET、Java、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、python、大数据等相关使用及进阶知识。查看博客过程中,如有任何问题,皆可随时沟通。

评论

发布
暂无评论
【愚公系列】2022年03月 RabbitMQ EasyNetQ的用法(window11+vs2022+.NET 6)_Rabbit MQ_愚公搬代码_InfoQ写作平台