Kafka 是一套流处理系统,可以让后端服务轻松的相互沟通,是微服务架构中常用的组件。
Topic:Topic 是生产者发送消息的目标地址,是消费者的监听目标。一个服务可以监听、发送多个 Topics。
consumer group(消费组): 一组服务,扮演一个消费者;如果一个消费组接收了消息,那么kafka会把该消息路由到其中的一个服务上,策略是轮询。
Partition: 一个topic是由多个parttion组成的,每个parttion可以看成一个队列,生产者发送消息的时候,随机(默认使用轮询策略)发送到一个parttion,消费者监听这个topic中的所有parttion,parttion发送完消息后,会把消息留在队列中,持续时间可以设置,还可以设置生产者发送消息到哪个parttion。
架构(zookeeper+kafka)
ZooKeeper 管理者所有的 Topic 和 Partition。
Topic 和 Partition 存储在 Node 物理节点中,ZooKeeper负责维护这些 Node。
parttion分布在各个node中,zookeeper会选择一个leader节点,从节点也会copy主节点的数据