kafka理解及使用
1.什么是kafka???
kafka是一个分布式的,可分区的,多副本的,多订阅者的消息订阅系统。
1.1那么问题来了什么是消息队列呢(我们对比一下消息和消息队列):
**消息:**是指在应用之间传送的数据,消息非常简单,比如只包含文本字符串,也可以更加复杂,可能包含插入对象
消息队列:是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递,消息发布这只管把消息发布到MQ中不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的,这样发布者和使用者都不用知道对方的存在
1.2
2.消息队列的应用场景:
应用耦合:
多应用间通过消息队列进行同一消息进行处理,避免调用接口失败导致整个过程失败
异步处理:
多应用对消息队列中的同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间
限流削峰
这个场景广泛应用于秒杀或者抢购活动中,避免流量过大导致应用系统挂掉的情况
3.kafka生态系统中都有什么角色呢??
- [ 生产者(producer) ]
- [ kafka集群(broker) ]
- [ 消费者(consumer) ]
- [ zookeeper ]