现在写的可能比较乱,回头整理
消息队列的应用场景
使用消息队列的好处
- 解耦
- 可恢复性
- 缓冲,解决生产速度和消费消息处理不一致
- 灵活性和峰值处理能力,可以更具访问压力动态的调节峰值
消息队列的两种模式
- 点对点模式
消息生产者生成消费发送到queue中,然后消费者从queue中取出并消费消息,
消息被消费后,queue不再存储,所以消费者不可能消费到已经被消费的消息,queue支持存在多个消费者,但是一个消息,只会有一个消费者可以消费
- 发布/订阅模式(一对多,消费者消费数据之后,不会清楚消息)
消息生产者,发布将消息发布到topic中,同时又多个消费者 订阅 消费该消息,和点对点方式不同,发布到topic的消费会被所有订阅者消费
发布订阅: 比如公众号,关注后,都会被订阅到
拉去点对点: 消费者主动拉去数据,第二中跟公众号一样,主动推送的消息
kafka 是基于消息队列的 发布订阅模式,基于拉取。消费者的消费速度可以由自己决定
基于拉取的缺点,要想消费者拉去,需要问下topic有没有消息,消费者,要不定时的问有没有消息,如果长时间没有消息,需要频繁去问,长连接,尝试获取,比较浪费资源
消息队列,两种模式,点对点主题模式,发布订阅模式
明晚上补