Kafka-之整体架构及生产者架构
1 kafka集群整体架构
众所周知,Kafka在目前的大数据市场中非常的火爆,因为kafka同时承担了以下3种角色。
- 消息队列
- 与RocketMQ差不多的吞吐量,可以削峰、解耦、异步
- 消息存储
- 在传输消息的同时还能对数据进行存储,实现可靠性,同时支持横向扩展,实现高扩展性
- 流式处理框架
- Kafka提供了客户端API,能对数据进行统计、窗口等操作
那么Kafka的整体架构如下:
2 kafka 生产者客户端架构
kafka消息是如何到达Kafka集群的呢,并不是简单的send一下,xiuxiuxiu~~就到了,话不多说,先看生产者架构
上图中的RecordAccumulator是一个消息累加器(收集器),主要是方便Sender线程可以批量发送数据到kafka集群。
整个生产者由2个线程协调工作:主线程、Sender,具体流程如下: