当前位置 主页 > 服务器问题 > Linux/apache问题 >

    C#调用RabbitMQ实现消息队列的示例代码

    栏目:Linux/apache问题 时间:2019-12-26 00:50

    前言

    我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的。

    所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始。

    关于消息队列

    其实消息队列没有那么神秘,我们这样想一下,用户访问网站,最终是要将数据以HTTP的协议的方式,通过网络传输到主机的某个端口上的。

    那么,接收数据的方式是什么呢?自然是端口监听啦。

    那消息队列是什么就很好解释了?

    它就是端口监听,接到数据后,将数据排列起来。

    那这件事,我们不用中间件能做吗?

    当然能做啦,写个TCP/UDP/Socket的软件就可以做啦。

    举个简单的例子,如下图:

    既然自己可以做消息队列,那为什么要用RabbitMQ?

    因为,RabbitMQ成熟的开源中间件,可靠性有保证,bug少,性能也非常好。

    而C#代码默认是使用托管内存的,所以,想写出媲美RabbitMQ性能的消息队列,就必须离开我们常用的托管内存,使用非托管内存,但这个代价就太大了;而且最终能否达到RabbitMQ的性能水平还是个未知数。

    还有就是RabbitMQ除了基础的消息队列管理,还有很多很强大的额外功能,而自己开发消息队列,很难如此尽善尽美。

    我们还会发现,在消息队列里有很多概念,什么消息总线啊,什么工作队列啊等等。

    要怎么理解这些概念呢?

    很简单,不要去理解。这些概念其实是人家代码架构的模式,不要去理解他们,【记】就完了,人家的中间件就是按照这个模式工作的。

    比如,我写了一个接收消息的总控制器,然后我为他命名为总线,那这个控制器就是总线,没有理由,这就是定义。

    准备工作

    首先,我们访问官网【https://www.rabbitmq.com/】,点击Get Started。

    然后,网站会自动跳转到当前首页Get Started的锚点位置,如下图:

    Get Started锚点:

    然后我们点击DownLoad+Installation,进入到下载界面。

    在下载页面中,我们找到安装指南,然后在点击官网推荐的Windows系统的安装包,如下图:

    现在,我们进入了Windows安装指南界面了。

    首先,我们看一下预览信息,如下图:

    在预览里,我们得知,安装RabbitMQ有两种方法,一种是使用Chocolatey安装,一种是使用官方安装包安装。

    Chocolatey是什么呢?随手百度一下,原来他是一个软件包管理工具,也就是说,Chocolatey是类似于Nuget的一种工具。

    由于Chocolatey的使用,我不是很熟悉,所以,这里选择使用官方安装包安装。

    点击【Using the official installer】,我们进入了【Using the official installer】对应的锚点,如下图。

    在【Using the official installer】段落里找到有推荐标志的安装包,然后下载。

    下载完成后,我们可以得到这样一个安装包,如下图:

    除了下载安装包,我们还会发现,在【Using the official installer】段落里,有提醒我们,RabbitMQ是有依赖的,依赖一个Erlang语言的框架(类似于C#语言的NetFramework)。

    我们可以发现,在依赖的段落里,官网非常坑的给出了三个链接网址,如下: