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实战读书笔记的更多相关文章

  1. 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...

  2. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  3. 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...

  4. 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...

  5. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...

  6. Spring实战读书笔记

    Spring实战读书笔记 Spring-core Spring之旅 - DI 和 AOP 概念 spring 的Bean容器 spring 的 核心模块 Spring的核心策略 POJO 最小侵入式编 ...

  7. <<Java RESTful Web Service实战>> 读书笔记

    <<Java RESTful Web Service实战>> 读书笔记 第一章   JAX-RS2.0入门 REST (Representational State ransf ...

  8. 机器学习实战 - 读书笔记(06) – SVM支持向量机

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第6章:SVM 支持向量机. 支持向量机不是很好被理解,主要是因为里面涉及到了许多数学知 ...

  9. 【转载】 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能

    原文地址: https://www.cnblogs.com/steven-yang/p/5686473.html ------------------------------------------- ...

随机推荐

  1. pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字

    1.pdf除密码: http://pan.baidu.com/share/link?shareid=308194398&uk=370045712  2.去除水印:http://wenku.ba ...

  2. 【iCore1S 双核心板_ARM】例程十:SYSTICK定时器实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出,采用 灌电流的方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒变 ...

  3. select理解

    https://www.cnblogs.com/skyfsm/p/7079458.html

  4. MyBatis XML转义字符

    当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...

  5. Linux 目录结构_004

    前言 Linux文件系统层次标准,英文全称Filesystem Hierarchy Standard,英文简称FHS. 由于利用Linux来开发产品的团队和个人实在太多了,如果每个人都以自己的想法来配 ...

  6. mysql delete两种关联删除方式

    基本格式:  DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id  示例应用: ...

  7. Spark搭建HA具体解释

    实验环境: zookeeper-3.4.6 Spark:1.6.0 简单介绍: 本篇博客将从下面几点组织文章: 一:Spark 构建高可用HA架构 二:动手实战构建高可用HA 三:提交程序測试HA 一 ...

  8. Mac OSX安装启动 zookeeper

    安装 zookeeper支持brew安装 ➜ ~ brew info zookeeper zookeeper: stable (bottled), HEAD Centralized server fo ...

  9. 我的Mac Pro coding环境配置

    新装了OS X 10.11.1. 记录一下开发用得到的一些玩意,方便下次再次配置. homebrew国内源:http://mirrors.tuna.tsinghua.edu.cn/help/#home ...

  10. NUC972---Linux驱动开发

    驱动开发是嵌入式 Linux 产品开发的重要组成部分,驱动是将芯片底层与Linux应用连接起来的桥梁.驱动程序的好坏直接影响和决定着产品的稳定性,稳定的驱动程序是产品可靠性的基石. 编写 Linux ...