消息队列(1):一个消息队列应该有的特点

消息队列常见场景

异步解耦
削峰填谷
日志收集分析
代替事务,最终一致

消息队列特点

消息队列之所以能异步,就是因为消息并不是实时处理的,那肯定会有一个存储消息,处理消息的地方,才能达到异步效果。
所以最简单的消息队列由以下三块组成:
消息生产者,消息处理中心,消息消费者。

1.消息堆积有处理策略

当生产者生产消息的速度大于消费者消费消息的速度时,消息就会在消息中心产生堆积。
所以消息队列必须能够处理这种情况,防止消息中心无限堆积。
一般会给消息队列设置一个阈值,超过阈值消息将不进入消息中心,防止整个消息中心挂掉。
这个思想和我们平时说的网络限流是一样的。比如微博一旦访问量过大,超过他们所设定的阈值,一部分人就会受到影响,甚至访问不了微博,但有些人却几乎没有影响。

2.消息应该持久化

异步消息的存储,绝对不是简单的内存存储,否则一旦断电或重启,消息就都没有了,所以消息队列一定会对消息做持久化操作,比如存在文件中。
这个和redis的持久化大同小异,内存不可靠就持久化,要么到本地文件,要么存入数据库。

3.消息应该是可靠的

消息的可靠是指:生产者生产的消息,应该可靠的被持久化保存,并被消费者消费掉。
站在生产者的角度,消息一旦发出去,就必须被消费。

4.消息不能重复消费

虽然很多消息消费者都做了消息的幂等操作,即保证即使重复的消息也不会影响消息的结果。
但是作为消息队列来说,应该是不能出现消息重复的。
所以站在消息中心的角度来看,必须要有可靠的技术手段来保证消息不被重复消费。

5.消息是有序的

这点很容易理解,某些业务场景下,消息必须是有序的。
先发出的消息,就应该先被消费。

6.支持集群

消息队列的高可用,防止单点故障,增加吞吐量,就必须要支持集群模式。

7.消息中间件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值