kafka
文章平均质量分 52
有上进心的阿龙
吃不了自律的苦,就要受平庸的罪!学到老,活到老!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
16_Kafka高级_数据一致性问题
(1)follower故障follower发生故障后会被临时踢出ISR,待该follower恢复后,follower会读取本地磁盘记录的上次的HW,并将log文件高于HW的部分截取掉,从HW开始向leader进行同步。等该follower的LEO大于等于该Partition的HW,即follower追上leader之后,就可以重新加入ISR了。(2)leader故障leader发生故障之后,会从ISR中选出一个新的leader,之后,为保证多个副本之间的数据一致性,其余的follower会先将各自的.原创 2021-01-08 20:13:46 · 189 阅读 · 0 评论 -
15_Kafka高级_生产者ACk机制
3)ack应答机制对于某些不太重要的数据,对数据的可靠性要求不是很高,能够容忍数据的少量丢失,所以没必要等ISR中的follower全部接收成功。所以Kafka为用户提供了三种可靠性级别,用户根据对可靠性和延迟的要求进行权衡,选择以下的配置。acks参数配置:acks:0:producer不等待broker的ack,这一操作提供了一个最低的延迟,broker一接收到还没有写入磁盘就已经返回,当broker故障时有可能丢失数据;1:producer等待broker的ack,partition的le原创 2021-01-08 19:49:03 · 238 阅读 · 0 评论 -
14_Kafka高级_生产者ISR
生产者数据的可靠性保证。刚才已经讲完了,数据发到哪个分区,但是,数据生产者已经发过去了,但是kafka有没有接到,那就是另一个问题。现在就准备讲,生产者数据的可靠性保证怎么实现的。生产者发送数据一般是和leader进行交互的,怎么才能保证数据不丢失呢?正常来说生产者是给leader来发消息的,follower向leader同步数据。那什么时候发送ack呢?比较半数机制和全部机制:kafka选择了这种:但是这种方案有个问题就是,同步的时候,有个副本挂了,而且很久才能好起来,那就需原创 2021-01-08 18:52:08 · 260 阅读 · 0 评论 -
13_Kafka高级_生产者分区策略
刚才主要讲的是存储的内容,主要的index和.log两个文件。kafka的生产者:有个分区策略:分区的原因:1、可以以partition为单位进行读写2、提高集群的负载能力。生产者分区的原则:可以在生产数据的时候,1、指定分区号,指定将来这条消息进入到哪个分区。2、当然,也可以不指定分区号,但是又KV键值对。是按照key的hash值再%当前主题分区的个数。和MR hash分区规则一样。3、既没有指定要发到哪个分区,也没有指定key,key=null,那就轮询。但是第一条给谁不清楚,随原创 2021-01-08 17:37:35 · 226 阅读 · 0 评论 -
12_Kafka高级_文件存储
实际上能看到的就是topicName+partitionID这个文件。这个文件下有两个东西很重要。.log结尾的文件是真正存储数据的。.index是存放索引的。先看看.log文件:默认会存储7天。七天过了会把这些老的数据删除掉。再server.properties配置文件种,还有一个参数:存储1G这个log是这个而不是它的日志。如果这个文件超过了1G,就会再创建一个文件。而不会再往里面放数据了。超过1G之后,新创建一个文件,怎么命名呢?1G的文件,存储的都是消息,怎么快速从1.原创 2021-01-08 16:55:44 · 169 阅读 · 0 评论 -
11_Kafka高级_工作流程
kafka的工作流程和文件存储机制:当生产者往一个不存在的主题发送数据的时候,也可以发送。自己会帮你创建主题,一个分区,一个副本。是server.properties文件里面配置的。这是默认值。我们一般会先创建topic叫做topicAtopicA有三个分区,两个副本。副本数=2,是说,leader+follower=2partition-0的follower一定不会和partition-0的leader在同一个broker(节点)。因为没有任何意义。现在生产者往三个broker里面发送原创 2021-01-08 14:37:42 · 361 阅读 · 1 评论 -
09_Kafka入门_数据日志分离
关闭kafka但是会有延时,关闭的比较慢。之后再看一下就没了,需要等待一下。我们删除每台机器的logs文件夹:我们希望把数据和logs分开来放。这时候,就相当于kafka新装的一样。这时候需要注意:还有很多信息再zi里面。进入zk根目录:除了zk,其他的都是kafka的数据。在kafka里面,并没有指定哪个broker是老大。那它怎么直到102 103 104是一个kafka集群呢?就是通过zk因为,我们在102 103 104上装的kafka连的都是同一套zk,原创 2021-01-08 14:15:15 · 393 阅读 · 0 评论 -
任务8:08_Kafka入门_命令行控制台生产者消费者
刚才已经学习了主题的增删查学习了。缺的就是生产者和消费者。生产者和消费者有专门的命令。控制台的生产者,控制台的消费者。既然是生产者,就需要告诉我,你要往哪个主题生产。往这个first主题生产的时候,你需要告诉我连接哪个kafka的集群。因为kafka集群和cosumer这块,是需要往zk里面存数据的。–broker-list hadoop102:9092这里的9092的端口号主要是因为要连接kafka本地集群。在102上开启生产者:这里出现一个小箭头。在这里就可以输入一些消息了。也就是原创 2021-01-08 12:31:45 · 341 阅读 · 0 评论 -
任务7:07_Kafka入门_命令行操作Topic增删查
我们现在已经安装好了kafka并且写好了群起kafka的脚本熟悉几个命令:关于kafka的主题增删改查都用它–list:属于把topic类出来。–describe:查看当前主题的详情,查看分区数,副本数等–create:创建–delete:删除topic当前的kafka集群是新创建的,并没有topic,所以执行完–list之后,什么也不显示。我们现在需要去手动创建主题。同样,你拿数据往zk里面拿,写数据就要往zk里面写,所以连的还是zk创建topic的时候,需要指定zk,需要设置分区原创 2021-01-08 00:05:56 · 217 阅读 · 0 评论 -
任务6:06_Kafka入门_安装&启动&关闭
启动kafka之前需要启动zk因为kafka是依赖于zk的。使用的版本是0.11的前面的2.11是scala的版本,因为kafka使用scala写的。将压缩包放到/opt/software里面。解压:改名进到kafka目录下面:进到conf目录里面:需要修改的是server.properties文件可以看到配置文件里面也有消费者和生产者的配置信息。都是给命令行使用的,做测试。改动server.properties文件。1、修改文件里面的broker.idbro原创 2021-01-07 19:57:50 · 189 阅读 · 0 评论 -
任务5:05_Kafka入门_基础架构
之前flume分为:source+channel+sink这里kafka也有组件生产者,消费者,kafka集群生产者:后台消费者:类似spark我们这里说消息,flume那里说事件,其实就是封装了,里面是一条数据。生产者能生产消息前提是:kafka集群必须启动。kafka是一个分布式的。每一个broker是一个啥?是一个服务器,只不过,相当于起的一个kafka的进程。这三台服务器组成了kafka集群。存数据存在broker里面。如果只有一个broker服务器来存储数据,消息容易乱套,如原创 2021-01-07 18:58:21 · 160 阅读 · 0 评论 -
任务4:04_Kafka入门_消费模式
消息队列的两种模式:点对点模式:一对一,消息只能给一个人,比较单一。明显感觉到点对点的模式缺点:就是不可复用,加入这个消息需要给多个人处理,就会很麻烦,flume可以给多个,但是需要多个channel和多个sink点对点模式如果要复用,就必须发给多个消息队列,然后消费者再去接收。浪费资源。发布/订阅模式(kafka):一对多。它只是一个消息队列,不是文件存储系统,所以保存是有时间限制的,不像hdfs,它有时限要求。类似于,公众号主动推送文章,大家都能收到消息。点对点模式:是消费者主动去拉原创 2021-01-07 15:47:48 · 156 阅读 · 0 评论 -
任务3:03_Kafka入门_消息队列
消息队列:我和技术老师的通信通过班主任进行对接。队列的数据结构:先进先出需要通信,没有消息队列,只能直连,两人保证都要在线。同步处理:同步处理的特点:不高效,所有的事情是串起来的。异步处理:同步VS异步:拿修手表的事情:同步:你给他修,然后我必须坐在那里等着。异步:约定时间,两天后再来取,我自己做我自己的事情,不耽误。异步的好处就是:1、解耦。不需要两个人同时在线2、销峰。到高峰期的时候,服务器可能会崩,这个时候不直连,先把它放到MQ里面,接下来总有一刻不是高峰期。如果一直是高原创 2021-01-07 15:20:30 · 115 阅读 · 0 评论 -
任务2:02_Kafka入门_定义
kafka是一个分布式的,发布/订阅模式的消息队列。说一说MQ的模式有哪些:发布/订阅。。。。kafka应用于大数据实时处理的领域。如果spark作为实时分析框架的话,90%以上的数据来源是和kafka对接的。所以kafka在大数据实时领域的重要性。在以后学习sparkstreaming那里,和kafka对接的代码是学习的重要内容。有些公司直接让你敲那部分代码。所以总结:kafka就是一个MQ消息队列。...原创 2021-01-07 14:57:58 · 117 阅读 · 0 评论
分享