Kafka使用场景
Kafka 以消息引擎闻名,因此它特别适合处理生产环境中的那些流式数据。以下就是Kafka在实际应用中的一些典型使用场景。
1消息传输
Kafka非常适合替代传统的消息总线(message bus)或消息代理(message broker)。传统的这类系统擅长于解耦生产者和消费者以及批量处理消息,而这些特点 Kafka 都具备。除此之外,Kafka 还具有更好的吞吐量特性,其内置的分区机制和副本机制既实现了高性能的消息传输,同时还达到了高可靠性和高容错性。因此 Kaka 特别适合用于实现一个超大量级消息处理应用。
2网站行为日志追踪
Kafka 最早就是用于重建用户行为数据追踪系统的。很多网站上的用户操作都会以消息的形式发送到 Kafka的某个对应的 topic 上。这些点击流蕴含了巨大的商业价值,事实上,目前就有很多创业公司使用机器学习或其他实时处理框架来帮助收集并分析用户的点击流数据。鉴于这种点击流数据量是很大的,Kafka超强的吞吐量特性此时就有了用武之地。
3审计数据收集
很多企业和组织都需要对关键的操作和运维进行监控和审计。这就需要从各个运维应用程序处实时汇总操作步骤信息进行集中式管理。在这种使用场景下,你会发现 Kafka 是非常适合的解决方案,它可以便捷地对多路消息进行实时收集,同时由于其持久化的特性,使得后续离线审计成为可能。
4日志收集
这可能是 Kafka 最常见的使用方式了一-日志收集汇总解决方案。每个企业都会产生大量的服务日志,这些日志分散在不同的机器上。我们可以使用 Kafka 对它们进行全量收集,并集中送往下游的分布式存储中(比如 HDFS等)。比起其他流的日志抽取框架(比如Apache
Flume),Kafka 有更好的性能,而且提供了完备的可靠性解决方案,同时还保持了低延时的特点。
5 Event Sourcing
Event Sourcing实际上是领域驱动设计(Domain-Driven Design,DDD)的名词,它使用事件序列来表示状态变更,这种思想和 Kafka 的设计特性不谋而合。还记得吧,Kafka 也是用不可变更的消息序列来抽象化表示业务消息的,因此 Kafka特别适合作为这种应用的后端存储。
6流式处理
前面简要提到过,很多用户接触到 Kafka 都是因为它的消息引警功能。自 0.10.0.0版本开始,Kafka社区推出了一个全新的流式处理组件 Kafka Streams。这标志着Kafka正式进入流式处理框架俱乐部。相比老牌流式处理框架Apache StormApache Samza,或是最近风头正劲的Spark Streaming,抑或是Apache Flink,Kafka Streams 的竞争力如何?让我们拭目以待。
《 Apache Kafka实战》
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!