Kafka官方文档——http://kafka.apache.org/documentation/
什么是Kafka
kafka是分布式流平台,它具有很多功能,这篇文章中我们把它当做消息队列(Kafka使用ZooKeeper作为分布式协调)
Kafka可以当做三个角色
- 消息系统(消息队列)
- 存储系统
- 流式处理平台
Kafka的架构
一个典型的kafka集群包含若干Producer(可以是应用节点产生的消息,也可以是通过Flume收集日志
产生的事件),若干个Broker(kafka支持水平扩展)、若干个Consumer Group,以及一个
zookeeper集群。kafka通过zookeeper管理集群配置及服务协同。Producer使用push模式将消息发布
到broker,consumer通过监听使用pull模式从broker订阅并消费消息。
多个broker协同工作,producer和consumer部署在各个业务逻辑中。三者通过zookeeper管理协调请
求和转发。这样就组成了一个高性能的分布式消息发布和订阅系统。
图上有一个细节是和其他mq中间件不同的点,producer 发送消息到broker的过程是push,而
consumer从broker消费消息的过程是pull,主动去拉数据。而不是broker把数据主动发送给consumer