您使用Apache Kafka的目的是什么?

Lor*_*a L 15 apache-kafka

我想问一下我对卡夫卡的理解是否正确.

对于真正非常大的数据流,传统数据库是不够的,所以人们使用Hadoop或Storm之类的东西.Kafka位于所述数据库之上并提供实时数据的指示方向?

Rav*_*abu 15

我不这么认为.

Kafka是消息传递系统,它不会位于数据库之上.

您可以将KafkaActiveMQ,RabbitMQ等消息系统进行比较.

来自Apache文档页面

Kafka是一种分布式,分区,复制的提交日志服务.它提供了消息传递系统的功能,但具有独特的设计.

关键要点:

  1. Kafka在称为主题的类别中维护消息的提要.
  2. 我们将调用将消息发布到Kafka主题生成器的进程.
  3. 我们将调用订阅主题的流程并处理已发布消息的消费者.
  4. Kafka作为由一个或多个服务器组成的集群运行,每个服务器称为代理.

在此输入图像描述

客户端和服务器之间的通信使用简单,高性能,语言无关的TCP协议完成.

用例:

  1. 消息传递:Kafka可以替代更传统的消息代理.在这个领域,Kafka可与传统的消息传递系统(如ActiveMQ或RabbitMQ)相媲美
  2. 网站活动跟踪: Kafka的原始用例是能够将用户活动跟踪管道重建为一组实时发布 - 订阅源
  3. 度量标准:Kafka通常用于运营监控数据,其涉及聚合来自分布式应用程序的统计信息以生成运营数据的集中式提要
  4. 日志聚合
  5. 流处理
  6. 事件源是一种应用程序设计风格,其中状态更改被记录为按时间排序的记录序列.
  7. 提交日志:Kafka可以作为分布式系统的一种外部提交日志.该日志有助于在节点之间复制数据,并充当故障节点恢复其数据的重新同步机制


mgo*_*osk 8

要完全理解Apache Kafka的角色,您应该有更广泛的了解并了解 Kafka 的用例。现代数据处理系统试图打破经典的应用程序架构。可以从 kappa 架构概览开始:

在此架构中,您不会将世界的当前状态存储在任何 SQL 或键值数据库中。所有数据都被处理并作为一个或多个事件系列存储在一个仅附加的不可变日志中。不可变事件更容易在分布式环境中复制和存储。Apache Kafka 是一个系统,用于存储这些事件并在其他系统组件之间进行中介。