kafka基本信息介绍

kafka特点

分布式
  • 多分区
  • 多副本
  • 多订阅者:注:订阅者的数量<=partition的数量
  • 基于zookeeper的调度
高性能
  • 高吞吐量
  • 高并发
  • 低延迟
  • 时间复杂度为O(1)
持久性和扩展性
  • 数据可持久性
  • 容错性
  • 支持在线水平扩展(topic有1或多的partition;consumer group的划分;服务器增加,也就是broker增加)
  • 消息自动平衡(避免服务端消息过于集中在某几个服务器,数据导致频繁访问这几台服务器,从而产生热点问题;通过消息在服务器间的平衡和消费者订阅时连接的平衡实现)

kafka应用场景

  • 消息队列
  • 行为跟踪
  • 元信息监控
  • 日志收集(elk等)
  • 流处理
  • 事件源
  • 持久性日志

结构图

kafka提供了四类API

 

kafka作为消息队列的数据运作流程:

kafka依赖于zookeeper:
1、broker信息 存在zookeeper中
2、topic和partition的分布,也存在zookeeper上
zookeeper通过订阅kafka的消息,来获取到kafka信息的变更通知
 

kafka的消息结构

offset:消息的偏移量
length:消息的长度
CRC32: 校验信息的完整性,避免信息消费的不完整性导致生产或消费失败
magic:是一个固定的数字,kafka通过这个字段,可以快速判断是不是kafka消息
attribute:可选,一位,放当前消息的属性,枚举型
timestamp:时间戳
key length:key长度
key:key的值
value length:value的长度
value:value的值
原文地址:https://www.cnblogs.com/starstarstar/p/9665202.html