消息队列&RocketMQ
1. 消息队列的作用、业务场景
解耦:对于一个消息,producer发送给MQ之后,consumer根据需要自己去MQ取消息,而不是consumer直接去调用producer的消息,通过发布/订阅这种模式,就可以实现producer和consumer的解耦。
削峰:对于一些一小段时间的高并发请求,可以交给MQ,然后让这些大量请求慢慢消费,不至于让服务挂掉,这个特别针对数据库,数据库处理并发能力小,可以通过将写请求发送给MQ,然后让MQ到数据库的并发可控,慢慢消费。
异步:consumer去消费producer的一条消息,如果没有MQ,需要调用处理完了才能接着往下让另一个consumer去调用处理,而有了MQ,producer将消息发送给MQ就可以返回了,后续只需要consumer自己去消费MQ消息进行各自的业务处理即可。
2. rocketmq各部件说明
nameServer:mq的注册管理中心。保存broker的master、slaver信息,和topic、queue信息。
Broker:消息的存储、中转中心。
Consumer:消息的消费者。
Producer:消息的生产者。
3. Rocketmq的两种消息模式
集群模式:对于订阅同一个topic的consumerGro