写在前面的话
系列教程都是从网络上收集和本人的理解所编辑而成,仅供广大爱好者学习所用,请尊重本人的劳动成果。欢迎评论指正和转帖!(请保留连接谢谢!)
一、MQ是什么?
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。
二、AMQP是什么?
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。
三、RabbitMQ是什么?
RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
四、RabbitMQ有什么用及使用场景?
场景1:单发送单接收(使用场景:简单的发送与接收,没有特别的处理。)
场景2:单发送多接收(一个发送端,多个接收端,如分布式的任务派发。为了保证消息发送的可靠性,不丢失消息,使消息持久化了。同时为了防止接收端在处理消息时down掉,只有在消息处理完成后才发送ack消息。)
场景3:发布/订阅模式(使用场景:发布、订阅模式,发送端发送广播消息,多个接收端接收。)
场景4:routing&按路线发送接收(使用场景:发送端按routing key发送消息,不同的接收端按不同的routing key接收消息。)
场景5:Topics&主题 (使用场景:发送端不只按固定的routing key发送消息,而是按字符串“匹配”发送,接收端同样如此。)
写在后面的话
You have to believe in yourself.That's the secret of success.
人必须相信自己,这是成功的秘诀。