消息队列简单笔记
消息队列是什么?
可简单理解为:把要传输的数据放在队列中
在Java中已经有很多的队列,但我们任然使用消息队列(MQ)中间件。
消息队列的优点
解耦
在生产者消费者模式中,但生产者给多个消费者提供服务时,生产者可以将数据放进消息队列中。
异步
同样在消费者生产者模式中,生产者将数据放进消息队列后,就可以直接返回,处理其他请求。
削峰、限流
在高并发的场景中,如果会有每秒1W+的请求,而机器每次只能处理5000+的请求,那么多出来的请求会把系统搞崩。这时候可以用消息队列来进行限流。
将请求都写到队列中,机器可以根据自身从消息队列中拿取请求,由系统自己控制。
使用消息队列会出现的问题
提升系统的复杂性
消息队列是不能单机的,因为若消息队列挂了,那么数据将会丢失。
且会增加系统的复杂性,添加中间件,维护等问题也会接踵而至。
数据丢失问题
的复杂性,添加中间件,维护等问题也会接踵而至。
数据丢失问题
如果消息队列挂掉则会导致数据丢失