kafka学习笔记1-初识kafka

  1. kafka定义
      kafka本质上是一个分布式可伸缩的发布订阅系统,他为大型网站和应用提供了分布式流平台
  2. 消息和批次
      kafka的数据单元被称为消息,一个消息有一组字节数据组成,每一个消息都有一个被称为的元数据,kafka可以根据消息的键进行mod运算从而确定该消息应该存放在kafka对应topic下的哪个分区上。
      为了减少网络开销,消息分批次写入到kafka中。批次就是一组消息,这些消息同属一个topic和分区,开发人员需要对批次的大小进行取舍,批次大单位时间处理的消息就越多,但单个消息的传送时间就长。批次小单个消息的传送时间少但要做更多的计算处理。
  3. 模式
      对kafka来说每条消息只是一组字节数组,但是对于用户来说希望能够使用更加直观的方式来定义数据。传统的json和xml都是比较不错的选择。但这两种方式都不擅长强类型数据处理能力。大部分kafka开发人员在需要处理强类型数据时会引入apache Avro来进行处理,他提供了数据序列化处理功能。
  4. 主题和分区
      在kafka中,消息时通过Topic(主题)进行分类的,同时每个Topic又可以分为几个分区。每个分区内的消息遵循先进先出(FIFO)策略,在同分区内消息的顺序时固定的。kafka一个主题下的不同分区可以分布在不同的服务器上,这种方式使得kafka系统具有较好的扩展性和可伸缩性。
  5. 生产者和消费者
      生产者主要用来发送消息到kafka中,消费者则从kafka中获取消息并进行消费。
  6. broker和集群
      每一个部署kafka实例的机子被称为一个broker,一个kafka集群有多个broker,其中一个broker充当集群控制器的角色,该broker由集群选举而来。针对一个topic下的每一个分区都有一个分区首领,他将该分区的备份分配到其他broker上。
  7. 多集群
      kafka集群之间一般时不能够进行通信的,但是通过MirrorMaker这个工具,可以将不同集群进行通信从而实现数据备份。
  8. kafka的优势
  • 可以有多个生产者和多个消费者
  • 采用基于磁盘的数据存贮,允许消费者非实时读取
  • 有较好的伸缩性,可以快读增加集群规模从而提高集群的性能。
posted @ 2020-08-22 10:01  罗斯托夫  阅读(65)  评论(0编辑  收藏  举报