使用场景
- 异步处理
我可以将消息放在消息队列中,而去做其他事,不用一直等你 - 解耦
我只用将数据放在消息队列中,至于数据之后怎么处理,我不关心。
即我发送数据和你接受数据进行了分离 - 流量削峰
来的数据太多我没办法处理,可以暂存到消息队列中慢慢处理,但如果消息队列的消息满了,消息队列也会被压垮
kafka架构
producer:生产者,发布消息的人
topic:主题,理解为消息的分类
partition:分区,一个主题分为多个区,用作负载,多个消费者可以同时消费不同分区内的数据
broker:kafka服务器,一个broker中可以包含多个topic中的多个分区,里面有patition的leader和follower
consumer:消费者,消费消息
consumer group:消费者组,一个partition只能被一个消费者组所接受