一、为什么使用RabbitMQ及其优点:
1、RabbitMQ基于AMQP的协议。AMQP协议:高级消息队列协议。它支持很多种协议消息中间件的里面的这种这种业务场景,比如是这种点对点的这种发布、以及这种交换机路由、包括那种发布订阅模式,通过这种AMQP协议提供的多种各样的模式,从而适应了咱们项目中的不同的业务场景。这是它的第一个广受欢迎的原因之一。
2、它使用erlang语言开发,那erlang语言本身就是做这种socket的这个编程,做这个在socket编程里面做这个效率是非常不错的。
3、RabbitMQ,它天生的和咱们的spring框架无缝的整合,我们在使用Spring框架去整合RabbitMQ,非常的简单,快捷快速。
4、RabbitMQ自身的特点了,它对数据一致性的要求,以及这个消息的错误丢失错误处理,非常的友好,它可以说是甚至不丢失任何的数据。即使咱们数据出现错误的话,通过它内部的机制,咱们也可以对消息进行恢复。
AMQP是一种协议,更准确的说是一种链接协议, AMQP不是从a p i层进行限定的,而是直接从网络的这个传输的过程中进行数据交换的,这就使得了AMQP的这个这个生产者具有天然性的这种跨平台,AMQP里面的协议模型里面,有这个生产者和这个消费者。生产者和消费者之间是互相没有做任何通信的,是利用了RabbitMQ去进行通信。因为RabbitMQ的本质,咱们也给大家说过了,他要实现这个跨系统之间通信的解耦:
二、 RabbitMQ 支持的消息模型:
1、简单模式(直连)
2、工作模式
3、发布/订阅模式
4、路由模式
5、Topics主题模式/动态路由模式
6、发布确认模式