MQ:Message Queue
消息队列使用场景
- 短信网关,秒杀限流。
- 发布订阅。多个系统可能需要消息,可能又不需要这个消息。那就发布订阅。(降低耦合度)
- 非核心的业务,通过发送到MQ处理。类似放到线程池处理(是有持久化的中间件,比放到线程池处理好)
- 削峰(限流,特别是下订单)。
- 时间到了就检查关闭订单(延迟队列,类似10分钟有效的支付订单)
削峰说明
- 生产者创建订单,–>发送订单请求到MQ。
- 消费者从MQ获取订单,扣库存(注意,扣库存涉及数量要加版本号)。
常见的MQ
- kafka性能较高。专门传日志。
- rabbitMq 一致性较好,性能次之(基于erlang,不好改);
- rocketMQ就是阿里味儿的rabbitMQ。java版,容易看懂、改动。
- ZeroMq算是socket之上,mq之下。
- Pulsar更新的一个mq,基于java,非常分布式。
发表回复