环境准备
应用场景
消息队列
行为跟踪
元信息监控
日志收集
流处理
事件源
持久性日志(commit log)
.......
特点
多分区
多副本
多订阅者
基于zookeeper调度
高性能
高吞吐量
低延迟
高并发
时间复杂度为 O(1)
持久性与扩展性
数据可持久化
容错性
支持在线水平扩展
消息自动平衡
kafka基本结构
另一种架构
Zookeeper下载地址:
http://zookeeper.apache.org/releases.html#download
Kafka下载:http://kafka.apache.org/downloads
Mac便捷安装:brew install kafka
启动zookeeper命令: zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
启动kafka命令: 进入kafka安装目录,cd /usr/local/Cellar/kafka/1.1.0/
启动命令:./bin/kafka-server-start /usr/local/etc/kafka/server.properties
启动kafka生存者:./bin/kafka-console-producer --broker-list localhost:9092 --topic imooc-kafka-topic
启动kafka消费者:./bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic imooc-kafka-topic --from-beginning
replication特点
Kafka 特点
分布式
多分区
多副本
多订阅者
基于 ZooKeeper 调度
高性能
高吞吐量
低延迟
高并发
时间复杂度为 O(1)
持久性与扩展性
数据可持久化
容错性
支持在线水平扩展
消息自动平衡
Replication 相关概念。
Kafka 包含 Broker, Topic, Partition.
Kafka 包含 Producer, Consumer, Consumer Group。对于同一个 topic ,众多 group 里面只有一个 consumer 可以消费该消息。
Kafka 面向数据流的生产-转换-存储-消费 的流处理平台。它是消息队列,但是它不仅仅是消息队列。
主要是第三点吧,数据流产生的时候就可以进行处理。
数据的生产者-消费者模式。
概念解析
结构设计
场景与应用
高级特性
producer 消息和数据生产者,向kafka的一个topic发布消息的进程
consumer:消息和数据的消费者,订阅数据并且处理其发布的消息的进程
ConsumerGroup:逻辑概念,对于同一个topic,会广播给不同的group,一个group中,只有一个consumer可以消费该消息
broker:物理概念,kafka集群中的每个kafka节点
topic:逻辑概念,kafka消息的类别,对数据进行区分、隔离
partition:物理概念,kafka下数据存储的基本单元。一个Topic数据,会被分散存储到多个partition,每个partition是有序的
Replication:同一个Partition可能会有多个Replica,多个Replica之间的数据是一样的(相当于一个partition有多个副本)
Replication Leader:一个Partition的多个Replica上,需要一个Leader负责Partition上与Producer和Consumer交互(有且只有一个,其他的负责同步数据,当好备胎)
ReplicaManager:负责管理当前broker所有分区和副本的信息,处理kafkaController发起的一些请求,副本状态的切换、添加/读取消息等
三个特性:
1、发布和记录消息流,作为消息队列
2、数据流存储平台
3、在数据产生时,对消息进行处理
作用:
1、数据处理上
2、数据传输
linkedIn开源:
分布式数据同步系统 Databus
高性能计算引擎 Cubert
java异步处理框架 Parseq
kafkal流处理平台
简单案例
环境启动
简单生产者
简单消费者
下载zookeeper
下载kafka
安装、解压,配置env
mac:brew install kafka,包含zookeeper
zookeeper -server-start zookeepr.propoties
进入按装目录,启动kafka
./bin/kafka-server-start /usr/local/etc/kafka.properties
应用场景
消息队列
行为跟踪
元信息监控
日志收集
流处理
事件源
持久性日志
特点
高吞吐量,低延迟,高并发,时间复杂度为0(1)
持久性和扩展性
数据可持久化,容错性,支持在线水平扩展,消息自动平衡
kafka消息结构
4bytes offset 消息偏移值
4byte length 消息长度
4bytes CRC32 校验消息完整性
1bytes Magic 分布式系统常用,固定数字,用于快速判定是否为kafka消息,通过比较magic与kafka设定magic不一致则扔掉
1bytes attributes 属性,可选
8bytes timestamp 时间戳
4bytes key length key长度
KEY 无限制,总长度length限制
4bytes value length value长度
VALUE
kafka学习笔记一
kafka:
可以发布和订阅数据的流
可以存储数据流的平台,有错误容忍
当数据产生的时候可以进行处理
kafka作用域两类应用:
实时数据流管道
作为流处理器,可以订阅或者发布或者存储数据流
多分区原子写入
零拷贝
Kafka 基本结构
Kafka 基本结构