很多人一听到 RabbitMQ 就头大,觉得那是只有架构师才懂的“高深莫测”的黑魔法,其实它就是个让程序们学会“礼貌聊天”的中间人。想象一下,你不想直接给同事打电话(RPC),而是把话写在纸条上扔进信箱,对方有空了再取走,这就是消息队列的核心逻辑——解耦。RabbitMQ 用 Erlang 这门以“挂了也能自动重启”著称的语言写出来,天生就带着一种“皮实耐用”的基因。它最牛的地方在于那套 AMQP 协议下的 Exchange 和 Queue 机制,简单说就是交换机负责按规则分信,队列负责暂存等待,这样生产者和消费者根本不用知道对方在哪,甚至不用同时在线,这种异步带来的松弛感,才是系统高可用的秘密武器。
不过看那些安装教程时,千万别被一堆环境变量和命令行吓跑。其实核心就三步:装 Erlang 环境、开管理插件、连上浏览器改个密码就能进后台看热闹。至于代码层面,不管是 Java 还是 Python,那套“连接 - 通道 - 队列”的三板斧,本质上就是建立一条私密的传送带。很多人纠结要不要用交换机,其实新手完全可以偷懒,直接用默认的空字符串交换机,先把逻辑跑通再说。别被那些复杂的绑定键和路由键绕晕了,它们只是让消息流转更聪明的规则而已。记住,技术不是用来炫技的,RabbitMQ 的价值在于它能让你的系统在某个节点挂掉时,其他节点还能接着干活,这才是真正的工程智慧。

软件亮点
1、可靠性
RabbitMQ可通过队列持久化,交换机持久化,消息持久化及ACK回应等机制保证可靠性。
2、支持多种语言与协议
RabbitMQ几乎支持所有的编程语言,还支持AMQP,STOMP,MQTT等多种协议。
3、管理界面
RabbitMQ有一个可视化的管理界面可以用来直观的查看RabbitMQ的状态及运行情况。
4、可灵活的扩展
多个RabbitMQ节点可以组成一个集群,队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队仍然可用。
软件特色
1、支持producer:消息生产者
2、支持consumer:消息消费者
3、支持virtual host:虚拟主机,在RabbitMQ中,用户只能在虚拟主机的层面上进行一些权限设置,比如我可以访问哪些队列,我可以处理哪些请求等等
4、broker:消息转发者,也就是我们RabbitMQ服务端充当的功能了,那么消息是按照什么规则进行转发的呢,需要用到下面几个概念:
①exchange:交换机,他是和producer直接进行打交道的,有点类似于路由器的功能,主要就是进行转发操作的呗,那么producer到底用哪个exchange进行路由呢,这个取决于routing key(路由键),每个消息都有这个键,我们也可以自己设定,其实就是一字符串
②queue:消息队列,用于存放消息,他接收exchange路由过来的消息,我们可以对队列内容进行持久化操作,那么queue到底接收那个exchange路由的消息呢,这个时候就要用到binding key(绑定键)了,绑定键会将队列和exchange进行绑定
RabbitMQ安装使用教程
1、双击安装下载好的RabbitMQ插件,安装完成之后,点击计算机属性,高级系统设置,创建一个名为ERLANG_HOME的环境变量,其值指向erlang的安装目录,同时将%ERLANG_HOME%\bin加入到Path中,最后打开命令行,输入erl,如果出现erlang的版本信息就表示erlang语言环境安装成功
2、打开命令行cd进入rabbitmq的sbin目录(我的目录是:E:\software\rabbitmq\rabbitmq_server-3.6.5\sbin),输入:rabbitmq-plugins enable rabbitmq_management命令,稍等会会发现出现plugins安装成功的提示,默认是安装6个插件
3、插件安装完之后,在浏览器输入http://localhost:15672进行验证,你会看到下面界面,输入用户名:guest,密码:guest你就可以进入管理界面,当然用户名密码你都可以变的
4、producer(生产者)端创建步骤:
①:创建ConnectionFactory,并且设置一些参数,比如hostname,portNumber等等
②:利用ConnectionFactory创建一个Connection连接
③:利用Connection创建一个Channel通道
④:创建queue并且和Channel进行绑定
⑤:创建消息,并且发送到队列中
注意:在我们当前的例子中,并没有用到exchange交换机,RabbitMQ默认情况下是会创建一个空字符串名字的exchange的,如果我们没有创建自己的exchange的话,默认就是使用的这个exchange
5、consumer(消费者)端创建步骤:
①:创建ConnectionFactory,并且设置一些参数,比如hostname,portNumber等等
②:利用ConnectionFactory创建一个Connection连接
③:利用Connection创建一个Channel通道
④:将queue和Channel进行绑定,注意这里的queue名字要和前面producer创建的queue一致
⑤:创建消费者Consumer来接收消息,同时将消费者和queue进行绑定















共有 0条评论