前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2021年12月 RabbitMQ EasyNetQ的用法(window11+vs2022+.NET 6)

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

作者头像
愚公搬代码
发布2022-12-01 09:20:21
3630
发布2022-12-01 09:20:21
举报
文章被收录于专栏:历史专栏

文章目录


一、EasyNetQ是什么?

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

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

二、使用步骤

1.定义公共消息类

代码语言:javascript
复制
public class TextMessage
{
    public string Text { get; set; } 
}

2.发布/订阅

代码语言:javascript
复制
// See https://aka.ms/new-console-template for more information
using 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.消息通信

同时启动两者控制台代码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、EasyNetQ是什么?
  • 二、使用步骤
    • 1.定义公共消息类
      • 2.发布/订阅
        • 4.消息通信
        相关产品与服务
        文件存储
        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档