RabbitMQ的5种模式
队列截图,去rabbitMq.com去找学习文档
=============================================================================================================================
==============================================================================================================================
第一种模式:简单模式
缺点:没有实现解耦,比如说购物车和搜索,需要创建两个队列
=================================================================================================================================
第二种模式:work模式
上图注意:只能有一个消费者获取到消息;谁先拿到呢?靠争抢,哪个争抢到给哪个.
应用场景:
比如说现在有一个系统,这个系统作用是写数据到数据库,但是你想如果其他系统都去访问这个系统的话,就会导致本系统的压力变大,
解决这个问题:做一个集群,做写入数据到数据库这件事情,这两个系统做的是同一件事情,他们写数据时不能重复写入数据,其他系统调用这个系统时就可以看做是给他下发任务.做的是不同的事情.
===================================================================================================================================
消息的确认模式
自动确认:例如美团消费,只要消息拿走,不管使用出不出错,就算消费成功
手动确认:顾客使用的优惠券需要商家确认后才算消费成功
==========================================================================================================================
第三种:发布订阅模式(交换机第一种)
将消息发送到了交换机,然后上下两个队列绑定到了交换机,然后消息发送到队列,每个队列有一个消费者
结果:发一个消息能够通知多个消费者
===========================================================================================================================
第四种模式:路由模式(routing)(交换机第二种)
交换机类型type=direct路由模式
消费者一:队列一绑定到交换机时指定了一个路由key叫error
消费者二:指定了三个
如果现在发送error的消息,消费者一和消费者二都能拿到
如果发送info消息,只有消费者二能拿到;
通过图示可以看出,有选择性的来接收消息
===================================================================================================================================
第五种:主题模式(交换机第三种)
#:匹配一个或者多个词
*:匹配一个词
通配符模式比较路由模式:
改进:可以匹配key
仔细看上图!!!