美文网首页
快乐大数据第6课 Kafka

快乐大数据第6课 Kafka

作者: 快乐大数据 | 来源:发表于2018-08-20 16:19 被阅读0次

Kafka

定义topic 类似于一个表  存储相同格式,有顺序的数据,传到kafka里面的数据叫消息。

按照磁盘顺序来读写数据 通过多分区,多副本提供容错性。

分区内有序读取和存储

Kafka原理

1.Partition内 顺序存储,写入新消息采用追加的方式,消费消息采用FIFO的方式顺序拉取消息

2.一个Topic可以有多个分区,Kafka只保证同一个分区内有序,不保证Topic整体(多个分区之间)

有序

3 Consumer Group(CG),为了加快读取速度,多个consumer可以划分一个组,并行消费一个Topic

一个Topic可以由多个CG订阅,多个CG之间是平等的,同一个CG内可以有一个多个consumer,同一个

CG内的consumer之间是竞争关系,一个消息在一个CG内只能被一个consumer消费。

Kafka核心概念

Topic:特指Kafka处理的消息源(feeds of messages)的不同分类,相当于数据库的表。

Broker:缓存代理,Kafa集群中的一台或多台服务器统称为broker。

Partition:Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)

相当于把一个数据集分成多份放到不同的分区中存储。

Replication:副本,一个partition可以设置一个或多个副本,副本保证系统能够持续不丢失对外提供服务,提供系统的容错能力。

Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。

Producers:消息和数据生产者,向Kafka的一个topic发布消息的过程叫做producers。

Consumers:消息和数据消费者,订阅topics并处理其发布的消息的过程叫做consumers。

Consumer Group:消费者所属组,一个Consumer group可以包含一个或者多个consumer。当一个topic被一个Consumer Group消费的时候。

Consumer Group内只能有一个consumer消费同一条消息,不会出现同一个Consumer Group多个consumer同时消费一条消息的情况。

Zookeeper:Zookeeper在kafka集群中主要用于协调管理,Kafka将

元数据信息保存在Zookeeper中,通过Zookeeper管理维护整个Kafka

集群的动态扩展、各个Broker负载均衡、Partition leader选举等

#Kafka存储

每个partition的副本是一个目录

Segment:段文件,kafka中最小数据存储单位,一个partition包含多个segment文件,每个segment以message在partition中的起始偏移量

命名以log结尾的文件Offset:消息在分区中的偏移量,用来在分区中唯一的标识这个消息。

afka为了提高写入、查询速度在partition文件夹下每一个segment log文件都有同名的索引文件,在kafka0.10以后的版本中会存在两个

索引文件,一个用offset做名字以index结尾的索引文件,我们称为偏移量索引文件。一个是以消息写入的时间戳为做名字以timeinde

结尾的索引文件,我们称为时间戳索引文件。

存在两种索引文件:

    偏移量索引:index为后缀,通过log.index.interval.bytes设置索引跨度,索引内容格式:offset,position。

    时间戳索引:timestamp,offset,通过log.index.interval.bytes设置索引跨度。

#Kafka高可用的实现

(1)多分区多副本

同一个partition的不同副本分布到不同的broker。一个分区的多个副本选举一个leader,由leader负责读写,其他副本作为follower从leader同步消息,

(2)Kafka Controller选举

从集群中的broker选举出一个Broker作为Controller控制节点;负责整个集群的管理,如Broker管理、Topic管理、Partition Leader选举等。选举过程

通过向Zookeeper创建临时znode实现,为被选中的Broker监听Controller的znode,等待下次选举。

(3)Kafka Partition Leader选举:

Controller负责分区Leader选举。ISR列表:Follower批量从Leader拖取数据;Leader跟踪不其保持同步的flower列表ISR(In Sync Replica),ISR作为

下次选主的候选列表。Follower心跳超时或者消息落后太多,将被移除出ISR。Leader失败后,从ISR列表中选择一个Follower作为新的Leader。

实际演示

(1)安装略

(2)

创建主题

bin/kafka-topics.sh --create --zookeeper 192.168.183.101:2181,192.168.183.102:2181,192.168.183.103:2181,192.168.183.104:2181,192.168.183.105:2181, --replication-factor 2 --partitions 3 --topic topicnewtest1

bin/kafka-topics.sh --create --zookeeper 192.168.183.101:2181,192.168.183.102:2181,192.168.183.102:2181,192.168.183.104:2181,192.168.183.105:2181, --replication-factor 2 --partitions 3 --topic test2

bin/kafka-topics.sh --create --zookeeper 192.168.183.101:2181,192.168.183.102:2181,192.168.183.102:2181,192.168.183.104:2181,192.168.183.105:2181, --replication-factor 2 --partitions 3 --topic test3

bin/kafka-topics.sh --create --zookeeper 192.168.183.101:2181,192.168.183.102:2181,192.168.183.102:2181,192.168.183.104:2181,192.168.183.105:2181, --replication-factor 2 --partitions 3 --topic sumer_offset

查看主题信息

bin/kafka-topics.sh --describe --zookeeper 192.168.183.101:2181 --topic topicnewtest1

查看kafka中已经创建的主题列表

bin/kafka-topics.sh --list --zookeeper 192.168.183.101:2181

删除主题

bin/kafka-topics.sh --delete --zookeeper 192.168.183.101:2181 --topic topictest1

增加分区

bin/kafka-topics.sh --alter --zookeeper 192.168.183.101:2181 --topic topicnewtest1 --partitions 5

使用kafka自带的生产者客户端脚本

在node03上,bin/kafka-console-producer.sh --broker-list 192.168.183.103:9092,192.168.183.104:9092 --topic topicnewtest1

使用kafka自带的消费者客户端脚本

bin/kafka-console-consumer.sh --zookeeper 192.168.183.101:2181 --from-beginning --topic topicnewtest1

生产者和消费者的例子

相关文章

  • 快乐大数据第6课 Kafka

    Kafka 定义topic 类似于一个表 存储相同格式,有顺序的数据,传到kafka里面的数据叫消息。 按照磁盘顺...

  • python3读写kafka

    消费kafka数据,方式一 消费kafka数据,方式二 将消息写入kafka

  • 深究canal发送kafka消息体过大异常

    上文提到在使用canal同步数据库数据时,发现kafka报消息体过大的错,当时只是调大了kafka的max.me...

  • 尚硅谷大数据技术之Kafka

    第7章 扩展7.1 Kafka与Flume比较在企业中必须要清楚流式数据采集框架flume和kafka的定位是什么...

  • Kafka0.8集群部署与shell命令行操作

    1、kafka简介在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。KAFKA...

  • kafka集群搭建

    1、kafka简介在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。KAFKA...

  • kafka相关知识总结

    一、kafka基础知识 1、kafka是什么 2、kafka生产数据时的分组策略 3、kafka如何保证数据的完全...

  • Kafka 使用 MirrorMaker 跨机房数据同步实践

    kafka 跨机房数据同步需求 南京 kafka 集群有 200+ kafka topic 数据需要镜像同步到重庆...

  • Kafka 详解一 简介

    目录 Kafka 是什么 Kafka 核心组 Kafka 整体架构以及解析 Kafka数据处理步骤 Kafka名词...

  • kafka详解

    目录 Kafka 是什么 Kafka 核心组 Kafka 整体架构以及解析 Kafka数据处理步骤 Kafka名词...

网友评论

      本文标题:快乐大数据第6课 Kafka

      本文链接:https://www.haomeiwen.com/subject/quyliftx.html