rabbitMQ的工作模式
1.RabbitMq
1.1介绍
RabbitMQ是一个消息代理:它接受并转发消息。你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里。在这个例子中,RabbitMQ就相当与投递箱、邮局和邮递员。
AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列。生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机。先由Exchange来接收,然后Exchange按照特定的策略转发到Queue进行存储。同理,消费者也是如此。Exchange 就类似于一个交换机,转发各个消息分发到相应的队列中。
1.1 simple简单模式
消息产生着§将消息放入队列
消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)
1.2 work工作模式(资源的竞争)
消息产生者将消息放入队列消费者可以有多个,消费者1,消费者2,同时监听同一个队列,消息被消费?C1 C2共同争抢当前的消息队列内容,谁先拿到谁负责消费消息(隐患,高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(syncronize,与同步锁的性能不一样) 保证一条消息只能被一个消费者使用)
1.3 publish/subscribe发布订阅(共享资源)
erlang 消息产生者是代码完成,代码的执行效率不高,消息产生者将消息放入交换机,交换机发布订阅把消息发送到所有消息队列中,对应消息队列的消费者拿到消息进行消费
1.4 routing路由模式
消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;
根据业务功能定义路由字符串
从系统的代码逻辑中获取对应的功能字符串,将消息任务扔到对应的队列中业务场景:error 通知;EXCEPTION;错误通知的功能;传统意义的错误通知;客户通知;利用key路由,可以将程序中的错误封装成消息传入到消息队列中,开发者可以自定义消费者,实时接收错误;
1.5 topic 主题模式(路由模式的一种)
消息产生者产生消息,把消息交给交换机
交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费
- 05-02_RabbitMQ_工作模式_WorkQueue工作队列模式
- RabbitMQ工作模式详解
- RabbitMQ的工作模式之五主题(Topic)模式
- RabbitMQ Java 工作模式
- RabbitMQ的工作模式之四路由(Routing)模式
- RabbitMQ学习:RabbitMQ的六种工作模式终结篇(四)
- RabbitMQ的工作模式之三发布/订阅(Publish/Subscribe)模式
- rabbitmq 消息队列工作模式
- RabbitMQ的工作模式之二工作(Work)模式
- RabbitMQ的工作模式之一简单(Simple)模式
- RabbitMQ工作模式
- rabbitmq的五种工作模式
- RabbitMQ的几种工作模式
- RabbitMQ 6种工作模式
- RabbitMQ的工作模式
- RabbitMQ 研究以及六种工作模式
- rabbitmq几种工作模式
- 05-05_RabbitMQ_工作模式_主题模式
- 05-04_RabbitMQ_工作模式_路由Routing模式
- python使用rabbitMQ介绍二(工作队列模式)