在安装完rabbitMq后,输入http://ip:15672/ ,是可以看到一个简单后台管理界面的。
二、RabbitMQ的特点
=============
1、被设计为一个通用的消息代理服务,支持点对点、请求-回复、发布-订阅等模式。
2、专注于消息的一致性、可靠性和稳定性。
3、对Java、.net、node.js、PHP等多语言有着非常好的支持,并且有丰富的插件来提供功能扩展,没有做不到只有想不到。
4、支持同步或异步消息通信,支持分布式部署和多节点集群部署,能提供2万/秒的消息分发能力,性能上不敌kafka。
三、RabbitMQ的相关概念
===============
通常我们谈到队列服务,会有三个概念:发消息者、队列、收消息者,RabbitMQ在这个基本概念之上,多做了一层抽象,在发消息者和队列之间加入了交换器exchange,这样发消息者和队列就没有直接联系,转而编程发消息者把消息给交换器,交换器根据调度策略再把消息给队列。
黄色的圈圈就是我们的消息推送服务,将消息推送到中间方框里面,也就是RabbitMQ服务器,然后经过服务器里面的交换机、队列等各种关系将数据处理入列,最终右边的蓝色圈圈消费者获取对应监听的消息。
那么,其中比较重要的概念就有四个,分别是:虚拟主机、交换机、队列和绑定。
-
虚拟主机:一个虚拟主机持有一组交换机、队列和绑定。为什么需要多个虚拟主机呢?很简单, RabbitMQ 当中,用户只能在虚拟主机的粒度进行权限控制。因此,如果需要禁止A组访问B组的交换机、队列、绑定,必须为A和B分别创建一个虚拟主机、每一个 RabbitMQ 服务器都有一个默认的虚拟主机“/”。
-
交换机:Exchange用于转发消息,但是它不会做存储,如果没有queue bind到Exchange的话,它会直接丢掉Producer发送过来的消息。这里有一个比较重要的概念:路由键。消息到交换机的时候,交换机转发到对应的队列中,那么究竟转发到哪个队列,就要根据该路由键。
-
绑定:也就是交换机需要和队列相绑定,这其中如上图所示,是多对多的关系。
交换机(Exchange)
交换机的功能主要是接收消息并转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct 、Topic、Headers、Fanout
-
Direct :direct类型的行为是“先匹配再投送”,即在绑定时设定一个routing_key,消息的routing_key匹配时,才会被交换机投送到绑定的队列中去。
-
Topic:按规则转发消息(最灵活)
-
Headers:设置header attribute参数类型的交换机(基本不用)
-
Fanout:转发消息到所有绑定队列