(0人评价)
尚硅谷大数据技术之Kafka(2019新版)

大数据技术之Kafka(2019新版)

价格 免费

同步:程序按顺序执行

异步:

 

消息队列好处:

解耦  削峰 异步   缓冲(生产大于消费)

 

消息队列的两种模式:
(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)生产者生产消息发送到queue

(2)发布/订阅模式(一对多,topic中的消息会被所有消费者消费){可分为queue推送消息数据和消费者拉取消息数据}

 

Kafka是发布订阅模式,消费者主动去拉去消息(消费者一直去询问topic对列,需要去维护一个长轮询)

 

kafka架构

 

同一分区的消息只能被同一个消费者组的一个消费者消费  

 

 

 

 

[展开全文]

同步:程序按顺序执行

异步:

 

消息队列好处:

解耦  削峰 异步   缓冲(生产大于消费)

 

消息队列的两种模式:
(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)生产者生产消息发送到queue

(2)发布/订阅模式(一对多,topic中的消息会被所有消费者消费){可分为queue推送消息数据和消费者拉取消息数据}

 

Kafka是发布订阅模式,消费者主动去拉去消息(消费者一直去询问topic对列,需要去维护一个长轮询)

 

[展开全文]

同步:程序按顺序执行

异步:

 

消息队列好处:

解耦 

削峰 

异步   

缓冲(生产大于消费)

 

 

[展开全文]

server.properties文件中的log.retention.hours=168是设置纪录消费者消费偏移量的默认值

log.segment.bytes=1073741824设置Kafka数据文件切分的最大值

为了防止log文件过大,导致数据定位效率低下,Kafka采取分片盒索引机制

每个partition分为多个segment

index存储的是当前消息的起始偏移量

数据消息的大小固定

二分查找方法

 

[展开全文]

同一个分区的leader和follower不能再同一台机器

每一个分区里面维护一个全局偏移量

follower需要主动找到对应的leader把数据同步过去

消费者要保存的偏移量就是分区中的维护的全局偏移量

有序指生产顺序和消费顺序一致

Kafka职能保证分区内有序,不能保证全局有序

topic是一个逻辑上的概念

partition是一个物理上的概念,每个partition对应一个log文件,文件中存储的是生产者生存的数据

生产者生存的数据会被不断的追加到log文件末端

且每条数据都有自己的偏移量,消费者组中的每个消费者会实时记录自己消费到那个偏移量

 

[展开全文]

kafka消息中间件,为了保持生产者和消费者各自速度,不出现崩溃。

[展开全文]

rm -rf logs/清除数据

bin/zkCli.sh  进入zk

进入zkdata 中的zookeeper的myid是服务id

                         zookeeper.pid是进程号

                 zk.sh stop 停止zookeeper命令

                rm -rf version-2 删除除zookeeper外的文件

vi config /server.properties 修改文件命令

logs.dir=新路径

xcall.sh jps 查看集群是否全部启动

创建命令还可以写成

bin/kafka-topics.sh --zookeeper hadoop102:2181 --topic first --partitions 2 --replication-factor 2 --create

控制台消费者

bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic first

 

[展开全文]

控制台的生产者:执行后,输入实时消息

bin/kafka-console-producer.sh --topic first --broker-list hadoop102:9092

控制台消费者:消费生产者的消息0.9版本以前

bin/kafka-console-consumer.sh --topic first --zookeeper hadoop102:2181 --from-beginning

必须加参数,否则不知道起始位置

新版本的控制台消费者消费命令

bin/kafka-console-cunsumer.sh --topic first --bootstrap-server hadoop102:9092

通过此命令会将消费者的消费位置存储到ka f

数据存储在Kafka本地,该位置保留168小时,7天,7天之后就清除。

 

[展开全文]

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

bin/kafka-topics.sh --create --zookeeper hadoop102:2181 --topic first  --partitions 2 --replication factors 2

 

bin/kafka-topics.sh --delete --zookeeper haddop102:2018 --topic first

 

bin/kafka-topics.sh --describe --topic first --zookeeper hadoop102:2181

[展开全文]

Kafka集群管理消息,将Kafka分成不同的broker,

主题是区分消息存放的broker,partition号用了做负载均衡的。

leader指当前的分区,消费者只找leader

follower指的副本,做数据备份的

消费者组:同一个分区只能被同一个组中的一个消费者消费

zookeeper保存消息

0.9之前消费者消费消息的位置保存到zookeeper中

0.9版本之后消费者的消费位置存储到Kafka中的一个主题。

 

[展开全文]

消息队列模式:

点对点模式:一对一模式(消费者主动拉取消息,消费者消费了消息后清除消息)需要主动获取,需要轮询生产者

发布/订阅模式:一对多,消费者消费数据后不清楚消息(不清除的消息有时限要求,主动推送消息)造成消费者处理能力不足,崩了,或者资源浪费

[展开全文]

解藕:

可靠性:

缓存:生成大于消费,

灵活性或峰值处理能力:动态

[展开全文]

公司用spark做数据分析,则大部分用Kafka应用于大数据实时处理

[展开全文]

Kafka分布式基于发布/订阅模式的消息队列

[展开全文]

消息队列的两种模式:

点对点模式:一对一,消费者主动拉取数据后清除消息

发布/订阅模式:一堆多,消费者消费数据后不会清除消息

[展开全文]

kafka的事物:

kafka从0.11版本开始引入了事物支持,事物可以保证kafka在Exactly Once 语义的语义的基础上,生产和消费可以跨分区和回话,要么全部成功,要么全部失败。

producer事物

为了实现跨分区会话的事务,需要引入一个全局唯一的Transaction ID,并将Producer获得的PID和Transaction ID绑定。这样当producer重启后就可以通过正在进行的Transaction ID获得原来的PID。

为了管理Transaction,kafka引入了一个新的组件Transaction coordinator。producer'就是通过和Transaction coordinator交互获得Transaction ID对应的任务状态。transaction coordinator还负责将事务所有写入kafka的一个内部topic,这样即使整个服务器重启,由于事务状态得到保证,进行中的事务状态可以得到恢复,从而继续进行。

 

consumer事务

上述事务机制主要是从producer方面考虑,对于consumer而言,事务的保证就会相对较弱,尤其无法保证commit的信息被精确消费。这是由于consumer可以通过offset访问任意信息,而且不同的segment file生命周期不同,同一个事务的消息可能会chu xian

[展开全文]

故障处理细节

数据一致性问题:

LEO:指的是每个副本最大的offset

HW:指的是消费者能见到的最大的offset,ISR队列中最小的LEO。

1、follower故障

follower发生故障后会被临时踢出ISR,待该follower恢复后,follower会读取本地磁盘记录的上次的HW,并将log文件高于HW的部分截取掉,从HW开始向leader进行同步。等到follower的LEO大于等于该partition的HW,即follower追上leader之后,就可以重新加入ISR了。

2、leader故障

leader发生故障之后,会从ISR中选出一个新的leader之后,为保证多个副本之间的数据一致性,其余的follower会将各自的log文件高于HW的部分截掉,然后从新的leader同步数据。

注意:这只能保证副本之间的数据一致性,并不能保证数据不丢失或者bu chong fu

[展开全文]
业界大牛亲自授课
前沿技术实时更新
足不出户学编程
关注尚硅谷微信 一键下载全部视频教程

关注尚硅谷微信

一键下载全部视频教程

©2018课程版权均归谷粒学院所有  京ICP备17055252号