kafka实战读书笔记
1、katka_2.12-l.0.0.tgz
上面两个文件中的 2.11 /2.12 分别表示编译 Kafka 的 Scala 语言版本,后面的 1.0 .0 是 Kafka的版本 。
2、kafka的好多脚本,如kafka-console-producer.sh 如果不加任何参数直接运行它们,则会打印它们各自的使用帮助文档
3、Kafka 的消息是用二进制方式来保存的,但依然是结构化的消息 。
4、最常见的两种消息引擎范型是消息队列模型和发布/订阅模型
消息队列模型:一旦消息被消费( consumed ),就会从队列中移除该消息 。 每条消息由一个发送者生产 出来,且只被一个消费者( consumer)处理一一发送者和消费
者之间是一对一的关系 。
5、吞吐量/延时 是一对矛盾体
6、kafka只是把数据写入到操作系统的页缓存( page cache )中,然后由操作系统自行决定什么时候把页缓存中的数据写回磁盘上
7、事实上普通 SAS 磁盘随机读/写的吞吐量的确是很慢的,但是磁盘的顺序读/写操作其实是非常快的
8、只能在日志文件末尾追加写入新的消息,且不允许修改己写入的消息,因此kafka属于典型的磁盘顺序访问型操作
9、Kafka 在读取消息时会首先尝试从 OS的页缓存中读取,如果命中便把消息经页缓存直接发送到网络的 Socket 上
10、

11、每台 Kafka 服务器上的状态统一交由 ZooKeeper 保管 。 Kafka 服务器上并不是所有状态都不保存,它只保存了很轻量级的内部状态
12、Kafka 服务器有一个官方名字: broker
13、Key:消息键,对消息做 partition 时使用,即决定消息被保存在某 topic 下的哪个 partition。
14、follower replica 是不能提供服务给客户端的,也就是说不负 责响应客户端发来的消息写入和消息消费请求。
15、Kafka 保证同 一个 partition 的多个 replica 一定不会分配在同一台 broker 上
16、ISR 的全称是 in-sync replica,翻译过来就是与 leader replica 保持同步的 replica 集合 。因为各种各样的原因,一小部分 replica 开始落后于 leader replica 的进度 。
当滞后 到 一定程度 时, Kafka 会将这些 replica “踢”出 ISR 。replica 重新“追上”了 leader 的进度时 , 那么 Kafka 会将它们加 回到 ISR 中
17、Kafka 的服务器端代码是由 Scala 语言编写的,而新版本客户端代码是由 Java语言编写的
18、因为 Kafka 是顺序写磁盘的,而磁盘顺序 VO 的性能,即使机械硬盘也是不弱的一一顺序 1/0 不需要频繁地移动磁头,因而节省了耗时的寻道时间
19、推荐用户为每个 broker 都配置多个日志路径,每个路径都独立挂载在不同的磁盘上,这使得多块物理磁盘磁头同时执行物理 I/O 写操作,可以极大地加速 Kafka 消息生产的速度。
20、磁盘容量计算

21、假设单个日志段文件大小设置为 lOGB,那么你至少应该给予 page cache 1OGB 以上的内存空间 。这样,待消费的消息有很大概率会保存在页缓存中
22、内存规划

23、Kafka 不属于计算密 集型( CPU-bound )的系统,因此对于 CPU 需要记住一点就可以了:追求多核而非高时钟频率。
Kafka 的机器有 16 个 CPU 核这件事情比该机器 CPU 时钟高达 4GHz 更加重要,因为 Kafka 可能无法充分利用这 4GHz 的频率,但几乎肯定会用满 16 个 CPU 核。
24、宽主要也有两种: lGb/s 和 lOGb/s,即平时所说的千兆位网络和万兆位网络
25、根据业务量和带宽计算需要几台broker

26、单节点伪分布式环境是指集群由一台 ZooKeeper 服务器和一台 Kafka broker 服务器组成
多节点 Kafka 集群由一套多节点 ZooKeeper 集群和一套多节点 Kafka 集群组成
27、安装java

28、启动kafka

29、最好使用奇数个服务器,即 2n + 1 个服务器,这样整个 ZooKeeper 集群最多可以容忍 n 台服务器容机而保证依然提供服务 。假如我们使用了 4
台服务器,若 2 台服务器岩机,剩下的 2 台服务器不满足“半数以上服务器存活”的条件,因此此时 ZooKeeper 集群将停止服务
30、zookeeper关键参数

myid 文件位于 zoo.cf运中 dataDir 配置的目录下,其内容也很简单,仅是一个数字,即 ID 。
31、一台机器上的三台zookeeper

32、查看集群状态

33、ZooKeeper 的主进程名是 QuorumPeerMain

34、一台机器上启动三个kafka

在上面 3 个配置文件中我们需要每台 Kafka 服务器指定不同的 broker ID 。 该由在整个集群中必须是唯一的

35、topic删除是个异步过程,执行 kafka-topics 脚本来列出当前的 topic 列表,如果 test-topic 不在该列表中,则表明该 topic 被删除成功
36、Kafka 还提供了性能吞吐量测试脚本,它们分别是 katka-producer-perf-test 脚本和 katkaconsumer-perf-test 脚本
37、生产者吞吐量测试

38、消费者吞吐量测试

39、当前对于绝大多数的 broker 端参数而言, 尚不支持动态修改一一这就是说,如果要新增、修改,抑或是删除某些 broker 参数的话,需要重启对应的 broker 服务器。
1)、log.dirs一一-非常重要的参数!该参数指定了 Kafka 持久化消息的目录 。该参数可以设置多个目录,以逗号分隔,比如/home/kafkal ,/home/kafka2
2)、如果要使用 一套 ZooKeeper环境管理多套 Kafka 集群,那么设置该参数的时候就必须指定 ZooKeeper 的 chroot,比如 zkl :218 l ,zk2:2181,zk3:2181/kafka_clusterl o 结尾的/kafka_cluster 1 就是 chroot,它
是可选的配置,如果不指定则默认使用 ZooKeeper 的根路径 。
3)、listeners一-broker 监听器的 csv 列表,格式是[协议]://[主机名 ]:[端口],[[协议]]://[主机名]:[端口]]。该参数主要用于客户端连接 broker 使用,
可以认为是 broker 端开放给 clients的监听端口 。 如果不指定主机名,则表示绑定默认网卡:如果主机名是 0.0.0.0,则表示绑定所有网卡。
4)、advertised.listeners一一与 listeners 类似,该参数也是用于发布给 clients 的监听器,不过该参数主要用于 IaaS 环境,比如云上的机器通常都配有多块网卡(私网网卡和公网网
卡)。对于这种机器,用户可以设置该参数绑定公网 IP 供外部 clients 使用,然后配置上面的 listeners 来绑定私网 IP 供 broker 间通信使用 。在实际使用场景中,对于配有多块网
卡的机器而言,这个参数通常都是需要配置的。
5)、unclean.leader.election.enable- 该参数默认值是 false ,即表明如果发生这种情况, Kafka 不允许从剩下存活的非 ISR 副本中选择一个当 leader
6)、log.retention. {hourslminuteslms} 若同时设置,优选ms,minutes次之,hours最后
7)、min.insync.replicas 也只有在 acks=-1 时才有意义 。

40、Kafka 会频繁地创建井修改文件系统中的文件 ,如果一个 broker 上面有很多 topic 的分区,那么这个 broker 势必就需要打开很多个文件一一大致数量约等于分区数 × (分区
总大小/日志段大小〉 × 3
41、
kafka实战读书笔记的更多相关文章
- 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...
- 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...
- 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...
- 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...
- iPhone与iPad开发实战读书笔记
iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...
- Spring实战读书笔记
Spring实战读书笔记 Spring-core Spring之旅 - DI 和 AOP 概念 spring 的Bean容器 spring 的 核心模块 Spring的核心策略 POJO 最小侵入式编 ...
- <<Java RESTful Web Service实战>> 读书笔记
<<Java RESTful Web Service实战>> 读书笔记 第一章 JAX-RS2.0入门 REST (Representational State ransf ...
- 机器学习实战 - 读书笔记(06) – SVM支持向量机
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第6章:SVM 支持向量机. 支持向量机不是很好被理解,主要是因为里面涉及到了许多数学知 ...
- 【转载】 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
原文地址: https://www.cnblogs.com/steven-yang/p/5686473.html ------------------------------------------- ...
随机推荐
- CINATRA发布第一个版本
cinatra是什么? cinatra是C++开源社区–purecpp发起的一个开源项目,现在正式发布第一个版本cinatra0.9.0,cinatra是一个现代C++写的web framework, ...
- 前端异常监控 - BadJS
前端异常监控 - BadJS 简介:BadJS 是 web 前端异常监控解决方案,提供一种 web 页面的脚本错误监控.上报.统计.查看等系统化的跟踪解决方案.目前BadJS覆盖了腾讯课堂.公众号.邮 ...
- 一键解包/打包boot.img/recovery.img工具(高通/MTK双版 支持android 5.1以上)
下载地址: 链接: https://pan.baidu.com/s/1hsA2oWc 密码: skdx
- (原)关于获取ffmpeg解析rtsp流sdp中带有sps,pps的情况
转载请注明出处:http://www.cnblogs.com/lihaiping/p/6612511.html 今天同事准备在android下使用ffmpeg来获取rtsp流,问我如何获取获取sps ...
- WebSphere集群环境修改IHS端口号的方法 分类: WebSphere 2015-08-06 13:41 14人阅读 评论(0) 收藏
参考资料:http://wenku.baidu.com/link?url=E9BkuEjJ16i9lg7l91L0-xhKCYkHV0mAnlwAeSlDCFM4TjZyk4ZVxmUu64BGd4F ...
- Mac获取公网ip
终端输入 curl http://members.3322.org/dyndns/getip way 2: ➜ ~ wget http://ipecho.net/plain -O - -q ; ech ...
- 09观察者模式ObServer
一.什么是观察者模式 Observer模式是行为模式之一,它的作用是当 一个对象的状态发生变化时,能够自动通知其他 关联对象,自动刷新对象状态. Observer模式提供给关联对象一种同步通信的 手段 ...
- [原]openstack-kilo--issue(十一)Failed connect to 169.254.169.254:80; No route to host
本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. # curl http://169.254.169.254/latest/use ...
- day_10 py
整理代码!!2018-7-24 20:53:49 直接复制了东西: 一些的demo 重点看蓝字部分! 就是一些简单的方法 基础的而已! 2018-4-22 15:50:26 继续py 还是py好玩感觉 ...
- DOM常用事件绑定方式与实例
一.常用的事件 onclick 点击事件 模态框实例 <input type="button" id="b1" style="width:50p ...