(1)可扩展性和容错性
kafka采用了分布式设计,具有如下分布式功能:
①副本:副本功能是任何分布式技术都需要使用的默认功能,也是kafka的内置特性,保证了数据的容错性
②分区能力:同理,分区能力也是分布式架构天然需要的特性之一
(2)缓冲和削峰
上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,Kafka在中间可以起到一个缓冲的作用,把消息暂存在Kafka中,下游服务就可以按照自己的节奏进行慢慢处理
(3)冗余
可以采用一对多的方式,一个生产者发布消息,可以被多个订阅Topic的服务消费到,供多个毫无关联的业务使用
(4)健壮性
消息队列可以堆积请求,所以消费端业务即使短时间死掉,也不会影响主要业务的正常进行
(5)异步通信
很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们