写在前边:本文学习尚硅谷的springboot高级整理笔记。
消息队列是什么,有什么好处?我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列。
第一个场景:异步处理异步处理的好处是:缩短了反馈的时间。
第二个场景:应用解耦关于解耦我就不赘述重要性了。
第三个场景:流量削峰比方说一个秒杀需求,一用有10000件商品,如果每笔秒杀订单,都去访问一次数据库,查一查库存,那得花费多长时间啊。
我们可以这样做,用一个消息队列,定制它的长度为10000,10000以内可以存到消息队列,一万10000以后不再近消息队列。
10000以内立马反馈一个秒杀成功。之后再去做减库存等一系列操作。
消息处理的几种方式
- 点对点式:
生产者生产消息,存到消息队列中去,消费者去消息队列里边消费。消费一条消息,就从消息队列移除一条消息,从而保证不重复消费信息。
- 发布订阅式:
发送者发送一个消息主题,消费者以订阅的形式同时收到消息。
两种规范两种规范的对比:
消息队列里边的交换器就像我们网络中的路由器一样。根据消息的路由键来确定去哪个消息队列。
我自己制作了一张图
老师的一张图