为啥需要消息队列
-
异步:允许用户把一个消息放入队列,但不立即处理它,在需要的时候再去处理他它们
-
解耦:只要遵守同样的接口约束,就可以独立的扩展或修改两边的处理过程
-
缓冲/消峰:有利于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。
消息队列的模式
-
点对点模式:消费者一个个去消息队列中拉取数据。缺点是,消费者需要额外的线程去监控队列中是否有消息要被消费。
-
发布订阅模式:生产者将消息放入消息队列后,队列会将消息推送给订阅过该类信息的消费者,但消息队列由于无法感知消费者消费的速度,速度慢了会造成资源的浪费,速度快了会让速度慢的消费者无法承受。