阿帕奇卡夫卡 |介绍
Apache Kafka 是一个发布-订阅消息系统。消息传递系统允许您在进程、应用程序和服务器之间发送消息。从广义上讲,Apache Kafka 是一个可以定义和进一步处理主题(一个主题可能是一个类别)的软件。应用程序可以连接到该系统并将消息传输到主题上。消息可以包含任何类型的信息,来自您个人博客上的任何事件,也可以是非常简单的文本消息,会触发任何其他事件。
卡夫卡经纪人
Kafka 集群通常由一个或多个服务器(称为 kafka 代理)组成,这些服务器在它们之上运行 Kafka。生产者是将数据(通过触发器推送消息)发布到指定代理中的 Kafka 主题的进程。主题的消费者从 Kafka 主题中提取消息。
Kafka 主题:主题基本上是在操作期间存储和发布消息的类别或提要名称。消息大多是字节数组,可以以任何格式存储任何对象。是的,这就是卡夫卡最好的地方。任何对象都可以存储为字节数组。此外,正如我们之前所讨论的,所有 Kafka 消息都被组织成主题。如果您想发送消息,请将其发送到特定主题,如果您希望阅读消息,则从特定主题中阅读。
消费者和消费者组:消费者始终可以从特定偏移量开始读取消息,并允许从他们选择的任何偏移点读取消息。这允许消费者在任何时间点加入集群。这使得功能和工作非常顺利。
分区允许您通过将特定主题中的数据拆分到多个代理来并行化主题。
Apache Kafka 和重要的服务器概念
- 主题分区:Kafka 主题被划分为多个分区,允许您跨多个代理拆分数据。
- 消费者组:消费者组包括订阅特定主题的一组消费者进程。
- 节点:节点是 Apache Kafka 集群中的单台计算机。
- 副本:分区的副本是分区的“备份”。副本从不读取或写入数据。它们用于防止数据丢失。
- 生产者:发送消息的应用程序。
- 消费者:接收消息的应用程序。
实时应用
- Twitter :注册用户可以阅读和发布推文,但未注册用户只能阅读推文。 Twitter 使用 Storm-Kafka 作为其流处理基础设施的一部分。
- LinkedIn :LinkedIn 使用 Apache Kafka 来获取活动流数据和运营指标。除了 Hadoop 等离线分析系统外,Kafka 消息系统还帮助 LinkedIn 提供各种产品,如 LinkedIn Newsfeed、LinkedIn Today 等在线消息消费。
- Netflix :Netflix 是一家美国跨国点播互联网流媒体提供商。 Netflix 使用 Kafka 进行实时监控和事件处理。
- Box :在 Box,Kafka 用于生产分析管道和实时监控基础设施。
参考资料:
卡夫卡官方
维基