kafka知识要点

2019-02-06  本文已影响0人  风暴之芽
卡夫卡的位置

kafka的特点:

1.消息持久化:通过0(1)的磁盘数据结构提供数据的持久化,kafka中可以存储数据,存储量决定可以放多少数据,数据按照接受顺序发送给streaming,批量发送

2.高吞吐:每秒百万级的消息读写,消息来源广

3.分布式:强大的扩展能力

4.实时性:消费者可以即时看到生产者的message

组件:

1.broker:一台机器即一个broker,kafka一般拥有多个broker,

2.producer:消息的生产者,用来写日志的,接flume

3.consumer:日志的消费者,用来读数据的,接streaming、storm、flink等

4.topic:不同的消费者往不同的topic读数据,不同的生产者向不同的topic写数据

5.partition:topic的基础上做的进一步分层,一般命名方式为topic名字是“test”,partition名字为“test-0”、“test-1”,一个partition只对应一个consumer,一个consumer可以对应多个partition

6.zookeeper负载均衡:将topic分成多个区,每个broker存储一个或者多个partition

topic和log

topic是一个用于发布消息的分类和feed名,kafka使用分区的日志,每个分区有顺序且不变的消息队列

commit的log可以不断追加,消息在每个分区中都分配了一个叫offset的id序列,这个序列可以识别分区中的消息

topic的剖析

可以在/kafka-consumer-offset-checker.sh中查看offset,在zookeeper中:get /consumers/group_test/offsets/中得到offset

数据持久化

topic中的partition对应一个逻辑日志,日志是相同大小的一组分段文件;producer发布消息到一个分区中,broker会将数据追加到最后一个段文件中,当接收的数据达到已经设定好最大值或者经过设定好的时间后,一段文件真正flush到磁盘中,写入完成后,消息再公开给消费者,这个消息通过offset来公开。

上一篇 下一篇

猜你喜欢

热点阅读