Kafka应用场景
消息队列常见应用常见有哪些
- 系统解耦:在重要操作完成之后,发送消息到Kafka,由别的服务系统来完成
- 流量削峰:缓存短时间内高流量带来的压力
- 异步处理:把一个消息放入到Kafka中,不立即处理,需要的时候再来处理
- 消息分发:一条消息发送给多个服务
Kafka优点
- 高性能
- 高可靠
- 支持分片水平扩展
- 被广泛使用
什么情况需要解耦
比如模块A发送消息给模块B,模块B发送短信给客户,A不需要得到回应,对于A而言只需要将消息发送给B,让B去处理即可
什么情况需要削峰
比如B一下子收到100条信息可能会挂掉,这时候需要将消息先发送给消息队列,然后B再根据自己的消费能力去消费
什么情况需要分发消息
比如信息更新场景,某个用户更新了,而B、C、D都缓存了这个消息。只要B、C、D订阅了这个主题,也都会更新
为什么选择Kafka作为消息队列
- 我们的项目对性能和可靠性有要求
- 性能要有500QPS,这里Kafka和RocketMQ都远远够用
- 可靠性要有多副本机制,这点Kafka和RocketMQ也都OK
- 其他功能不是我们项目的核心要点
- Kafka是我们团队成熟的技术栈
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 cloud_fly blog!