定义
MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。
RabbitMQ是MQ的一种。
概念
- 简单队列模式和工作模式
队列是RabbitMQ的内部对象,用于存储消息。生产者(下图中的P)生产消息并投递到队列中,消费者(下图中的C)可以从队列中获取消息并消费。
多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。
2.发布订阅模式
在应用中,只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。
- 路由模式和主题模式
路由模式跟发布订阅模式类似,然后在订阅模式的基础上加上了类型,订阅模式是分发到所有绑定到交换机的队列,路由模式只分发到绑定在交换机上面指定路由键的队列。
topics主题模式跟routing路由模式类似,只不过路由模式是指定固定的路由键routingKey,而主题模式是可以模糊匹配路由键routingKey,类似于SQL中=和like的关系。
4.RPC模式
总结
以上就是rabbitmq在实际应用中具体的功能概念,具体使用哪种模式要根据业务需要。