一般消息队列的使用主要是为了:解耦、异步、削峰。
比如举个例子,我现在有一个消息管理平台系统,对外提供接口给各个业务方调用。
他们调用接口之后其实不是同步进行下发消息,在接口处理层只是将该消息放到了消息队列中,然后直接返回结果给调用者,这样做有几个好处:
- 接口的吞吐量会大幅提高,由于并不是实际调用所以接口RT会非常低,这就实现了异步的效果
- 如果有大量的消息调用接口由于消息队列有削峰的功能所以并不会让系统收到影响
- 再比如在业务过程进行中,业务方只需要将消息数据写到消息队列,这个消息数据的topic由各个实现方自行消费使用,这就实现了解耦和并发
- 即使消息QPS猛增,但是有消息队列的削峰在,不会给服务器太大的性能压力
转载总结自《对线面试官》 Kafka 基础