阅读 9

Kafka简介

kafka1.png

​ 消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它。 分布式消息传递基于可靠消息队列的概念。 消息在客户端应用程序和消息传递系统之间异步排队。 有两种类型的消息模式可用 - 一种是点对点,另一种是发布 - 订阅(pub-sub)消息系统。

Kafka概述

关于kafka

​ Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。 Kafka适合离线和在线消息消费。 Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。 Kafka构建在ZooKeeper同步服务之上。 它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。

​ Kafka是一个统一的平台,用于处理所有实时数据Feed。 Kafka支持低延迟消息传递,并在出现机器故障时提供对容错的保证。 它具有处理大量不同消费者的能力。 Kafka非常快,执行2百万写/秒。 Kafka将所有数据保存到磁盘,这实质上意味着所有写入都会进入操作系统(RAM)的页面缓存。 这使得将数据从页面缓存传输到网络套接字非常有效。

好处

  1. 可靠性:kafka是分布式,分区,复制的容错的。
  2. 可扩展性:kafka消息传递系统轻松缩放,无需停机。
  3. 耐用性:kafka使用“分布式提交日志”,消息会尽可能快地保留在磁盘上,因此它是持久的。
  4. 性能:kafka对于发布和订阅消息都是具有高吞吐量的的。即时存储了许多TB的消息,它也保持稳定的性能。

kafka非常快,并保证零停机和零数据丢失。

kafka术语

kafka2.jpg

  1. Topics(主题):属于特定类别的消息流称为主题(就是将消息进行分类)。数据存储在主题中。主题被拆分成分区。对于每个主题,kafka保存一个分区的数据。每个这样的分区包含不可变有序序列的消息。分区被实现为具有相等大小的一组分段文件。
  2. Partition(分区):主题可能有许多分区,因此它可以处理任意数量的数据,分区布置在不同的服务器上,负载均衡,打破性能瓶颈。
  3. Partition offset(分区偏移):每个分区消息具有称为“offset”的唯一序列标识, 用于标识这个分区, 方便Consumer可能会指定消费特定的分区。
  4. Replicas of partition(分区备份):副本只是一个分区的“备份”。副本从不读取或写入数据。他们用于防止数据丢失。
  5. Brokers(代理):简单的说代理就是运行Kafka的服务器;(1)代理是负责维护发布数据的简单系统。每个代理中的每个主题可以具有0个或多个分区。假设,如果在一个主题和N个代理中有N个分区,每个代理将有一个分区。(2)假设在一个主题中有N个分区并且多于N个代理(n+m),则每N个代理将在具有一个分区,并且下一个M代理将不具有用于该特定主题的任何分区。(3)假设在一个主题中有N个分区并且小于N个代理(n-m),每个代理将在他们之间具有一个或多个分区共享。由于代理之间的负载分布不相等,不推荐使用此方案。
  6. kafka cluster(kafka集群):kafka有多个代理被称为kafka集群。可以扩展kafka集群,无需停机。这些集群用于管理消息数据的持久性和复制。
  7. Producers(生产者):生产者是发送给一个或多个kafka主题的消息的发布者。生产者向kafka经纪人发送数据。每当生产者将消息发布给代理时,代理只需将消息附加到最后一段文件。实际上,该消息将被附加到分区。生产者还可以向他们选择的分区发送消息。
  8. Consumers(消费者):消费者从服务器处读取数据。消费者订阅一个或多个主题,并通过从服务器中提取数据来使用已发布的消息。
  9. Leader(领导者):负责给定分区的所有读取和写入的节点。每个分区都有一个服务器充当Leader。
  10. Follower(追随者):跟随领导者指令的节点被称为Follower。如果领导失败,一个追随者将自动成为新的领导者。跟随者作为正常的消费者,拉取消息并更新自己的数据存储。
关注下面的标签,发现更多相似文章
评论