12、kafka如何保证数据的不丢失
12.1生产者如何保证数据的不丢失
kafka的ack机制:在kafka发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到
如果是同步模式:ack机制能够保证数据的不丢失,如果ack设置为0,风险很大,一般不建议设置为0
producer.type=sync
request.required.acks=1
如果是异步模式:通过buffer来进行控制数据的发送,有两个值来进行控制,时间阈值与消息的数量阈值,如果buffer满了数据还没有发送出去,如果设置的是立即清理模式,风险很大,一定要设置为阻塞模式
结论:producer有丢数据的可能,但是可以通过配置保证消息的不丢失
producer.type=async
request.required.acks=1
queue.buffering.max.ms=5000
queue.buffering.max.messages=10000
queue.enqueue.timeout.ms = -1
batch.num.messages=200
12.2 消费者如何保证数据的不丢失
通过offset commit
来保证数据的不丢失,kafka自己记录了每次消费的offset数值,下次继续消费的时候,接着上次的offset进行消费即可
12.3 broker如何保证数据的不丢失:
partition的副本机制
13、kafkaManager监控工具的安装与使用
第一步:下载kafkaManager
源码下载地址:
https://github.com/yahoo/kafka-manager/
下载源码,然后上传解压准备编译
cd /export/servers/kafka-manager-1.3.3.15
unzip kafka-manager-1.3.3.15.zip -d ../servers/
./sbt clean dist
编译完成之后,我们需要的安装包就在这个路径之下
/export/servers/kafka-manager-1.3.3.15/target/universal
需要下载源码进行自己编译,比较麻烦,不要自己编译,已经有编译好的版本可以拿过来直接使用即可
第二步:上传编译好的压缩包并解压
将我们编译好的kafkamanager的压缩包上传到服务器并解压
cd /export/softwares
unzip kafka-manager-1.3.3.15.zip -d
/export/servers/
第三步:修改配置文件
cd /export/servers/kafka-manager-1.3.3.15/
vim conf/application.conf
kafka-manager.zkhosts="node01:2181,node02:2181,node03:2181"
第四步:为kafkamanager的启动脚本添加执行权限
cd /export/servers/kafka-manager-1.3.3.15/bin
chmod u+x ./*
第五步:启动kafkamanager进程
cd /export/servers/kafka-manager-1.3.3.15
nohup bin/kafka-manager -Dconfig.file=/export/servers/kafka-manager-1.3.3.15/conf/application.conf
-Dhttp.port=8070 2>&1 &
第六步:浏览器页面访问
==================================================
课程总结:
1、kafka的基本介绍
2、kafka与传统消息队列的比较
为什么业务系统用activeMQ:基于事务的保证
为什么大数据平台用kafka:吞吐量大,速度快
3、kafka的组件模型的介绍: 搞定
producer:消息的生产者
topic:一类消息的集合
broker:服务器
consumer:消费者,消费topic当中的数据
partition:分区,一个topic由多个partition组成
segment:一个partition由多个segment组成
.log:数据文件
.index:数据的索引数据
4、kafka的安装:搞定
5、kakfa命令行的使用 搞定
创建topic 模拟生产者 模拟消费者
6、kafka的java API 跑通就行
7、kafka的数据的分区策略:知道
第一种:指定分区号
第二种:没有分区号,有了数据的key值,直接按照key取hashCode进行分区
第三种:没有分区号,也没有key值,轮循发送
第四种:自定义分区
8、kafka的配置文件的说明 了解
9、flume与kafka的整合 搞定
10、kakfa的监控工具的使用 尽量安装成功