zoukankan      html  css  js  c++  java
  • RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理

    上一篇已经讲了Rabbitmq如何在Windows平台安装

    不懂请移步: RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列

    一、理论

    .net环境下,C#代码订阅RabbitMQ消息队列,本文用easynetq开源的.net Rabbitmq api来实现,EasyNetQ 是一个易于使用的RabbitMQ的.Net客户端API,本文win服务基于topshelf实现,不懂请移步:windowsSevice程序和topshelf程序创建服务对比

    二、项目搭建

    1、此处省略topshelf服务搭建步骤

    2、服务项目结构

    3、结构简要说明

    NoticeProcess.cs 获取消息体后处理类

    BusBuilder.cs 消息服务器连接器

    Installer.cs 消息服务安装实现类

    ServiceMain.cs 消息服务执行类

    VaultService.cs C#订阅消息服务后的处理类,进行routingkey的约束等

    Program.cs 程序启动类

    三、测试发布和订阅
    1、发布消息(此处省略,具体实现参照第二篇文章)

    2、C#订阅服务启动测试

    3、C#服务调试获取消息

    可以看到这里启动后,获取到了1步骤当中的消息routingkey

    4、c#处理代码

    如果队列有其他的pcm.notice.xxxxx消息,同样会被c#服务获取到,都是基于pcm.notice.#这样的#完全匹配原则。

    这样基本简单的c#订阅Rabbitmq消息,获取信息就完成了。

    问题整理:

    如果C#读取的Rabbitmq中message消息实体和你c#程序中的不一样,会报错如下:

    EasyNetQ.EasyNetQInvalidMessageTypeExcepion:Message type is incorrect.Expected 'RabbitMQ_Message:RabbitMQ',but was ''

  • 相关阅读:
    数据结构之线段树
    数据结构之线段树
    数据结构之树状数组
    codevs1073 家族
    codevs1069 关押罪犯
    codevs1001 舒适的路线
    codevs1282 约瑟夫问题
    codevs1081 线段树练习 2
    codevs1225 八数码难题
    codevs1080 线段树练习
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7891458.html
Copyright © 2011-2022 走看看