参考文档: http://kafka.apache.org/documentation/#design
设计动机
Kafka被设计为统一处理所有实时数据流(大公司级别)的平台。为了达到这一目标,设想了以下使用场景:
- 高吞吐量:需要支持高吞吐量已满足大量事件流(例如:实时日志收集)
- 大数据量:需要优雅处理大量待处理数据以满足离线系统的周期性数据负载
- 低延迟:为了处理更多交易类消息需要低延迟传递。
由于希望支持流分区、分布式和实时处理,以创建新的、派生流。这催生了分区和消费者模型。
最后,在数据流传入其他数据处理系统场景下,kafka必须能够在机器故障时保证容错。