Kafka必知必会

本文介绍了Kafka在消息队列中的重要性,包括解耦、异步和削峰的优势,以及其与其他消息队列的比较。同时,讨论了如何保证消息队列的高可用、消息不被重复消费、消息不丢失、消息顺序性,以及应对消息队列满载的策略,并探讨了Kafka的高性能原因。
摘要由CSDN通过智能技术生成

前置知识:

Kafka消息队列理解
Kafka发送消息和读取消息

1. 为什么使用消息队列?

  • 解耦
  • 异步
  • 削峰

面试时要结合自己项目中的业务场景回答, 而不是直接背诵概念, 如果面试官没有问到这些问题, 我们可以主动提出聊聊自己的理解.

(1) 解耦

现有系统A, B, C, 系统B和C需要系统A的数据, 然后我们就修改系统A的代码, 给系统B, C发送数据. 这时系统D也需要系统A的数据, 我们又要修改系统A的代码, 给系统D发送数据. 如果这时系统B不需要系统A的数据了呢? 简直崩溃了, 新增或减少一个系统, 我们都要去修改系统A的代码, 而且我们还需要考虑调用的系统挂掉了怎么办, 是否要将数据存起来, 是否要重发等等, 这是非常不合理的一种设计, 我们需要引入消息队列.

在这里插入图片描述

引入消息队列后, 系统A产生的数据直接发送到消息队列中, 哪个系统需要系统A的数据就直接去消息队列中消费, 这样系统A就和其他系统彻底解耦了.

(2) 异步

客户端调用A系统的一个接口处理某个功能, 该功能需要调用B, C, D系统进行处理, 如果A系统自身耗时为20ms, B, C, D系统耗时分别是300ms, 450ms, 200ms, 最终接口返回时总共耗时970ms, 这肯定是不可接受的, 我们需要引入消息队列.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值