第1节 kafka消息队列:11、kafka的数据不丢失机制,以及kafka-manager监控工具的使用;12、课程总结
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的监控工具的使用 尽量安装成功
第1节 kafka消息队列:11、kafka的数据不丢失机制,以及kafka-manager监控工具的使用;12、课程总结的更多相关文章
- 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
一.消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构.目前使用较多的消息队列有ActiveMQ,RabbitM ...
- 使用Cloudera Manager部署Kafka消息队列
使用Cloudera Manager部署Kafka消息队列 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载需要安装的Kafka版本 1>.查看Cloudera Dis ...
- Kafka:docker安装Kafka消息队列
安装之前先看下图 Kafka基础架构及术语 Kafka基本组成 Kafka cluster: Kafka消息队列(存储消息的队列组件) Zookeeper: 注册中心(kafka集群依赖zookee ...
- kafka消息队列的简单理解
kafka在大数据.分布式架构中都很流行.kafka可以进行流式计算,也可以做为日志系统,还可以用于消息队列. 本篇主要是消息队列相关的知识. 零.kafka作为消息队列的优点: 分布式的系统 高吞吐 ...
- Kafka消息队列初识
一.Kafka简介 1.1 什么是kafka kafka是一个分布式.高吞吐量.高扩展性的消息队列系统.kafka最初是由Linkedin公司开发的,后来在2010年贡献给了Apache基金会,成为了 ...
- 初试kafka消息队列中间件一 (只适合初学者哈)
初试kafka消息队列中间件一 今天闲来有点无聊,然后就看了一下关于消息中间件的资料, 简单一点的理解哈,网上都说的太高大上档次了,字面意思都想半天: 也就是用作消息通知,比如你想告诉某某你喜欢他,或 ...
- 初试kafka消息队列中间件二(采用java代码收发消息)
初试kafka消息队列中间件二(采用java代码收发消息) 上一篇 初试kafka消息队列中间件一 今天的案例主要是将采用命令行收发信息改成使用java代码实现,根据上一篇的接着写: 先启动Zooke ...
- Canal Server发送binlog消息到Kafka消息队列中
Canal Server发送binlog消息到Kafka消息队列中 一.背景 二.需要修改的地方 1.canal.properties 配置文件修改 1.修改canal.serverMode的值 2. ...
- Kafka基础教程(四):.net core集成使用Kafka消息队列
.net core使用Kafka可以像上一篇介绍的封装那样使用(Kafka基础教程(三):C#使用Kafka消息队列),但是我还是觉得再做一层封装比较好,同时还能使用它做一个日志收集的功能. 因为代码 ...
随机推荐
- Vue-设置默认路由选中
需求分析: 一个导航组件,需要其中一个是选中状态,并且样式呈现高亮,选中的导航对应的页面也需要展示出来. 功能实现: router-link内置有一个选中状态,当处于当前路由时,会给 router-l ...
- 「JSOI2013」贪心的导游
「JSOI2013」贪心的导游 传送门 多次询问区间内%一个数的最大值 我们不妨设这个数为M_sea 值域比较小所以考虑分块维护. 我们观察到对于给定的一个 \(p\) ,函数 \(y = x \% ...
- LLC半桥谐振变换器调试记录
1.判断二极管是否击穿 2.判断mos管是否烧坏 直接用声音档,发出响声说明击穿了 3.测试二极管的正负极方法 将万用表调到二极管档 1.信号发生芯片周围的电阻 2.反馈部分的电阻 3.实验准备部分: ...
- 绕过QQ群文件下载限速
绕过QQ群文件下载限速 引言 众所周知,用QQ客户端下载QQ群文件,速度往往被限为10KB/s.这里我们来讲讲如何绕过这一限制. 原始事件发生在2020年2月2日,值武汉疫情爆发,全国各省市纷纷下令推 ...
- Vim:Vim入门级配置
转:https://vimjc.com/vimrc-config.html Vim配置文件.vimrc Vim编辑器相关的所有功能开关都可以通过.vimrc文件进行设置. .vimrc配置文件分系统配 ...
- 【 hibernate 】基本配置
hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe ...
- 监控Tomcat状态!(重点)
方法一:开发JAVA监控页面 [root@localhost ~]# mkdir /usr/local/tomcat8/webapps/memtest/[root@localhost ~]# cd / ...
- apache、mysql、php核心、phpmyadmin的安装及相互关联
1.apache的安装 https://blog.csdn.net/ashendove/article/details/52206198 里面的serverName 就是你在服务中 设置的apach ...
- 十八 OGNL特殊符号的作用,#,%,$
主要有哪些字符? #:获取Context的数据,构建map %: 强制解析OGNL,强制不解析OGNL $ : 在配置文件中(xml,属性文件(国际化))使用OGNL #的用法: <body&g ...
- C++常量表达式、const、constexpr(C++11新增)的区别
常量表达式是指值不会改变且在编译过程中就能够得到计算结果的表达式,能在编译时求值的表达式. 程序先编译再运行: 在编译阶段, 编译器将在编译过程中把用到该常量的地方都全都替换为 常量的值. 但是常量 ...