写在前面
Kafka 解决了什么问题:
系统解耦(异步)
在复杂的分布式系统中,需要将系统拆解为多个小系统,小系统之间通过RPC通讯调用。
在复杂的调用链中,总是会出现前面的系统等待后面的系统的结果,这是由于各系统间的处理信息的速度不一致导致。
如果使用Kafka,就可以做到发送消息给kafka后就返回消息给用户,然后后面的系统异步的去处理。
削峰
在秒杀的系统中就需要减少后面系统处理消息的数量,不然就会崩溃。有人会问,难道Kafka就不会崩溃,理论它是什么也没做只是收发数据,所以肯定是比业务系统的能力强的。但是Kafka也不是神,它也是会有扛不住的情况。这个概念是相对的。