一、simple简单模式
1. 消息生产者将消息放入队列
2.消息的消费者监听消息队列,如果队列中有消息就消费掉, 消息被拿走后,自动从队列中删除(隐患:消息没有被消费者正确消费,已经从队列中删除,导致消息丢失。)
3. 应用场景聊天工具,一个P端一个C端,中间是腾讯服务器。
二、work工作模式(资源的竞争)
1.消息生产者将消息放入队列,消费者可以有多个C1,C2同时监听同一个队列,C1,C2共同争抢当前消息队列内容,谁先拿到谁负责消费消息(隐患:高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(Syncronize,与同步锁的性能不一样)保证一条消息只能被一个消费者使用)
2. 应用场景:红包;大项目中的资源调度(任务分配系统不需要知道哪一个任务执行系统在空闲,直接将任务扔到消息队列中,空闲系统自动争抢)
三、publish/subscribe发布订阅(共享资源)
1. X代表交换机-rabbitmq的内部组件,erlang消息产生者是代码完成,代码的执行效率不高,消息产生者将消息放入交换机,交换机发布订阅把消息发送到所有消息队列中,对应消息队列的消费者拿到消息进行消费。
2.应用场景:邮件群发,群聊天,广播(广告)