网站建设公司昆明,wordpress屏蔽谷歌蜘蛛,高权重外链,做网站的图哪来消息队列常见场景
异步解耦 削峰填谷 日志收集分析 代替事务#xff0c;最终一致
消息队列特点
消息队列之所以能异步#xff0c;就是因为消息并不是实时处理的#xff0c;那肯定会有一个存储消息#xff0c;处理消息的地方#xff0c;才能达到异步效果。 所以最简单的…消息队列常见场景
异步解耦 削峰填谷 日志收集分析 代替事务最终一致
消息队列特点
消息队列之所以能异步就是因为消息并不是实时处理的那肯定会有一个存储消息处理消息的地方才能达到异步效果。 所以最简单的消息队列由以下三块组成 消息生产者消息处理中心消息消费者。
1.消息堆积有处理策略
当生产者生产消息的速度大于消费者消费消息的速度时消息就会在消息中心产生堆积。 所以消息队列必须能够处理这种情况防止消息中心无限堆积。 一般会给消息队列设置一个阈值超过阈值消息将不进入消息中心防止整个消息中心挂掉。 这个思想和我们平时说的网络限流是一样的。比如微博一旦访问量过大超过他们所设定的阈值一部分人就会受到影响甚至访问不了微博但有些人却几乎没有影响。
2.消息应该持久化
异步消息的存储绝对不是简单的内存存储否则一旦断电或重启消息就都没有了所以消息队列一定会对消息做持久化操作比如存在文件中。 这个和redis的持久化大同小异内存不可靠就持久化要么到本地文件要么存入数据库。
3.消息应该是可靠的
消息的可靠是指生产者生产的消息应该可靠的被持久化保存并被消费者消费掉。 站在生产者的角度消息一旦发出去就必须被消费。
4.消息不能重复消费
虽然很多消息消费者都做了消息的幂等操作即保证即使重复的消息也不会影响消息的结果。 但是作为消息队列来说应该是不能出现消息重复的。 所以站在消息中心的角度来看必须要有可靠的技术手段来保证消息不被重复消费。
5.消息是有序的
这点很容易理解某些业务场景下消息必须是有序的。 先发出的消息就应该先被消费。
6.支持集群
消息队列的高可用防止单点故障增加吞吐量就必须要支持集群模式。
7.消息中间件