消息队列简单笔记

消息队列是什么?

可简单理解为:把要传输的数据放在队列中

消息队列简单笔记

在Java中已经有很多的队列,但我们任然使用消息队列(MQ)中间件。

消息队列简单笔记

消息队列的优点

解耦

在生产者消费者模式中,但生产者给多个消费者提供服务时,生产者可以将数据放进消息队列中。

异步

同样在消费者生产者模式中,生产者将数据放进消息队列后,就可以直接返回,处理其他请求。

削峰、限流

在高并发的场景中,如果会有每秒1W+的请求,而机器每次只能处理5000+的请求,那么多出来的请求会把系统搞崩。这时候可以用消息队列来进行限流。

将请求都写到队列中,机器可以根据自身从消息队列中拿取请求,由系统自己控制。

使用消息队列会出现的问题

提升系统的复杂性

消息队列是不能单机的,因为若消息队列挂了,那么数据将会丢失。

且会增加系统的复杂性,添加中间件,维护等问题也会接踵而至。

数据丢失问题

的复杂性,添加中间件,维护等问题也会接踵而至。

数据丢失问题

如果消息队列挂掉则会导致数据丢失