MQ是什么?RabbitMQ是什么?AMQP是什么?
消息队列( message queuing )使用消息将应用程序连接起来。这些消息通过像RabbitMQ 这样的消息代理服务器在应用程序之间路由。这就像是在应用程序之间放置一个邮局。
RabbitMQ是一个消息代理和队列服务器。
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品、不同开发语言等条件的限制。Erlang中的实现有RabbitMQ
消息队列的工作方式(理解消息通信)
生产者 消费者 代理服务器
生产者( producer)创建消息,然后发布(发送)到代理服务器( RabbitMQ )。生产者将信息发送给Exchange并带有一个routing key,消费者从队列中获取消息。
消息
什么是消息呢?消息包含两部分内容:有效载荷( payload )和标签( label )。有效载荷就是你想要传输的数据。标签描述了有效载荷,并且RabbitMQ 用它来决定谁将获得消息的拷贝。举例来说,不同于TCP 协议的是,当你明确指定发送方和接收方时, AMQP 只会用标签表述这条消息(一个交换器的名称和可选的主题标记),然后把消息交由Rabbit。 Rabbit会根据标签把消息发送给感兴趣的接收方。这种通信方式是一种“发后即忘”( fire-and-forget )的单向方式。
信道Channel
你必须首