kafka基本认知(一)

kafka是一个分布式的流平台,作为流平台有3个标志:
   1.发布和订阅流记录;
   2.以容错持久的方式存储记录流;
   3.在记录流出现时处理它们。

kafka主要用于2种应用:
   1.构建实时流数据管道,并且在系统或应用程序之间可靠地获取数据;
   2.构建实时流应用程序用于转换或响应数据流。

想要了解kafka是如何工作,我们需要了解下它的一些特性:
   1.Kafka作为一个集群运行在一个或多个服务器上,这些服务器可以跨越多个数据中心;
   2.kafka集群存储流记录是按照类别进行划分的,这个类别被称为topic主题;
   3.每一条流记录是按照key、value、timestamp组成的。

kafka有5个核心API:
   1.生产者API(Producer API):用于应用向流记录发送到一个或多个topic上面。
   2.消费者API(Consumer API):用于订阅一个或多个topic并且处理这些topic上面的流记录。
   3.流API(Streams API):将应用程序充当流处理器,使用一个或多个主题的输入流并生成一个或多个输出主题的输出流,有效地将输入流转换为输出流。
   4.连接API(Connector API):用于构建并运行可重用的生产者或消费者,它可以将Kafka topic连接到现有的应用程序或数据系统。比如一个连接器可以连接到关系数据库并有可能可以获取到对表的每个更改。
   5.管理API(Admin API):用于管理和检查主题、节点和其他Kafka对象。

kafka集群中客户端和服务器是通过tcp协议进行交互的。对于每个topic,kafka集群都会提供一个分区日志

 

      每个分区都是一个有序的、不可变的记录序列,它们被不断地附加到一个结构化的提交日志中。分区中的每个记录都被分配了一个称为偏移量的连续id号,它惟一地标识分区中的每个记录。Kafka集群将会保存发布的记录在配置的保留期内,不管他们是否被消费过,例如,如果保留策略设置为两天,那么在这个记录发布后的两天内,它是可用的,超过两天该记录将被丢弃从而释放空间。Kafka的数据多少对性能是没有影响的,因此可以长时间存储数据。每个消费者在消费数据时保留的唯一元数据是该消费者在日志分区中的偏移量或位置,因此消费者可以自己控制消费消息的位置,可以从头部、尾部或者指定的偏移量offset位置开始进行消息的消费。作为分布式系统,kafka日志分区肯定也是分布式的,他们都分布在kafka集群的服务器上面,每个分区有一台服务器充当leader的角色,然后可以有0到n台服务器作为follower角色,这个leader将会接收所有的读写请求,并且会将读写产生的偏移量等信息同步到follower上面,这里有个概念需要区分下,就是分区partition和复制replicate,如上面图片所示,一个日志可以有多个分区partitions,并且消费者会根据负载均衡算法每次都会去特定的分区上面消费消息,消费者同时也会记录消费的最新偏移量offset,当然Kafka只提供当前分区内记录的总顺序,而不提供主题中不同分区之间的总顺序,而复制replicate是指复制其中一个分区信息到其他的follower节点上面,用于实现容错性,follower节点的数量不能超过server服务器数量。

      在往kafka上面通过生产者写入消息的时候,生产者可以通过消息确认等所有的消息都完全写入到服务器以后来保证消息正确的发送。kafka在消息消费顺序上的保证通过在主题中引入并行(即分区)的概念,Kafka能够在用户进程池上提供订购保证和负载平衡。这是通过将主题中的分区分配给消费者组中的消费者来实现的,这样每个分区只由该组中的一个消费者使用。通过这样做,我们确保消费者是该分区的唯一读取器,并按顺序消费数据。由于有许多分区,因此仍然在许多消费者实例上平衡负载。但是请注意,消费者组中的消费者实例不能多于分区。

      在接下来的文章我会大体整理一些相关知识点,更多的细节可以参考http://kafka.apache.org/documentation/ 官方文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值