相对于ActiveMQ,RabbitMQ 更专业,更灵活,大企业,大型高要求的应用。不同于ActiveMQ,它是由Erlang语言编写的,因此要想使用必须先安装Erlang环境。
此处省略安装Erlang语言环境。
运行测试,使用快捷键 win+r, 然后输入 cmd, 接着运行 erl。 出现如图所示的界面,就表示安装成功了。
然后下载安装RabbitMQ
此处省略安装RabbitMQ 。
运行以下命令以重启 rabbitmq:(需要管理员身份才可以执行)
net stop RabbitMQ && net start RabbitMQ
对RabbitMQ安装插件,在你的安装目录下
运行如下命令,可以做到对 rabbitmq的插件配置。
"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
环境搭建好以后,下面正式开始
Rabbitmq 使用的是一种叫做 AMQP 的协议来通信。 AMQP 是 Advanced Message Queuing Protocol 的缩写。
协议内容我们就没必要深入研究了,简单地说,通过这种协议,可以处理更为复杂的业务需求~
与 ActiveMQ 拿到消息就直接放在队列等待消费者拿走不同, Rabbit 拿到消息之后,会先交给 交换机 (Exchange), 然后交换机再根据预先设定的不同绑定( Bindings )策略,来确定要发给哪个队列。
如图所示,比起 ActiveMQ 多了 Exchange 和 Bindings。
正式由于有了 Exchange 和 Bindings, RabbitMQ 就可以灵活地支撑各种模式。
RabbitMQ提供了四种Exchange模式:fanout,direct,topic,header 。 header模式在实际使用中较少,这里只讨论前三种模式.
fanout 模式就是广播模式~
消息来了,会发给所有的队列~
Direct 模式就是指定队列模式, 消息来了,只发给指定的 Queue, 其他Queue 都收不到。
主题模式,注意这里的主题模式,和 ActivityMQ 里的不一样。 ActivityMQ 里的主题,更像是广播模式。
那么这里的主题模式是什么意思呢? 如图所示消息来源有: 美国新闻,美国天气,欧洲新闻,欧洲天气。
如果你想看 美国主题: 那么就会收到 美国新闻,美国天气。
如果你想看 新闻主题: 那么就会收到 美国新闻,欧洲新闻。
如果你想看 天气主题: 那么就会收到 美国天气,欧洲天气。
如果你想看 欧洲主题: 那么就会收到 欧洲新闻,欧洲天气。
这样就可以灵活搭配~