上次课程内容回顾:
1、kafka的基本介绍:kafka是一个消息队列2、消息队列的作用:解耦3、kafka与传统消息队列的对比: 传统消息队列:支持事务 kafka的特点:比较快,比较快的两个原因:顺序读写磁盘,pageCache页缓存机制4、kafka的架构模型: producer:消息的生产者,主要就是用于生产数据 topic:消息的主题,可以理解为一类消息的高度抽象的集合 broker:服务器 partition:一个topic下面有多个partition,分区,一个partition保存了一个topic的部分消息,为了防止消息不丢失,引入副本备份机制 partition究竟应该创建多少个合适???根据实际情况而定 segment:一个partition下面有多个segement,把一个partiton当中的数据,切成了多个segment段,一个segment下面由两个文件构成 .log:我们的日志数据 hello world hadoop .index:存储的我们的索引数据 hello 1 world 2 hadoop 3 便于我们快速的查找 使用的是二分查找法 0000000000.log 0000000000.index0000000100.log
0000000100.indexzookeeper:保存了我们topic的一些数据信息,比如说topic有多少个partition,partition有多少个副本等等
consumer:消费者,主要用于消费我们kafka当中的数据 offset:记录消费的偏移量 2 也就是记录了我们下次的消费数据的条数 group:消费组的概念,设置不同的组,就是不同的消费者。如果A组消费了第一条数据,那么A组就再消费不到第一条数据了,但是B组还可以从第一条开始消费5、kafka的安装: 依赖zk,需要提前安装好zk kafka的解压,修改配置,安装包分发,启动6、kafka的命令行的管理使用 第一个:创建topic 第二个:模拟生产者 第三个:模拟消费者7、kafka的javaAPI的开发8、kafka的分区策略:四种 1、指定分区号 2、没有分区号,有数据的key,按照key取上hashCode来进行分区 3、没有分区号,也没有数据的key,轮循分发数据 4、自定义分区 properties.put("partitioner.class","xxx.xxxx.xxx")9、flume与kafka的整合
10、kafka的配置文件的说明 server.properties consumer.properties producer.properties11、kafka如何保证数据不丢失
producer:消息的ack确认机制 1:leader保存好了数据 0:没有任何保证 -1 :leader以及follower都保存好了数据 consumer:消息的offset偏移量的记录 broker:备份机制12、kafka-manager监控工具的使用