RabbitMQ简介
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、PHP等,支持AJAX。用于在分布式系统中存储转发消息。
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。
关键字
Producer
Producer(生产者),投递消息的程序。
Consumer
Consumer(消费者),接受消息的程序。
Exchange
Exchange(交换机),它指定消息按什么规则,路由到哪个队列
Queue
Queue(队列)是RabbitMQ的内部对象,用于存储消息.
Durable
Durable(持久化),队列消息的持久化。
Binding
Binding(绑定),它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key
Routing Key(路由关键字),exchange根据这个关键字进行消息投递。
Vhost
Vhost(虚拟主机),一个服务实例里可以开设多个vhost,用作不同用户的权限分离。
Exchange Types
Fanout
Fanout类型的Exchange路由规则非常简单,它会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。
Direct
Direct类型的Exchange路由规则也很简单,它会把消息路由到那些binding key与routing key完全匹配的Queue中。
Topic
Topic类型的Exchange路由规则也很简单,它会把消息路由到那些binding key与routing key进行模糊匹配,然后发送到相应的Queue中。