石头头头的博客


  • 首页

  • 分类

  • 归档

  • 标签

  • 公益404

  • 搜索

Kafka-Pagecache原理

发表于 2017-04-27 | 分类于 技术博客 | | 阅读次数
一、Kafka PageCache简介Kafka重度依赖底层操作系统提供的PageCache功能。当上层有写操作时,操作系统只是将数据写入PageCache,同时标记Page属性为Dirty。当读操作发生时,先从PageCache中查找,如果发生缺页才进行磁盘调度,最终返回需要的数据。实际上PageCache是把尽可能多的空闲内存都当做了磁盘缓存来使用。同时如果有其他进程申请内存,回收PageCache的代价又很小,所以现代的OS都支持PageCache。 使用PageCache功能同时可以避免在JVM内部缓存数据,JVM为我们提供了强大的GC能力,同时也引入了一些问题不适用与Kafka的设计。 如果在Heap内管理缓存,JVM的GC线程会频繁扫描Heap空间,带来不必要的开销。如果Heap过大,执行一次Full GC对系统的可用性来说将是极大的挑战。 所有在JVM内的对象都不免带有一个Object Overhead(千万不可小视),内存的有效空间利用率会因此降低。 所有的In-Process Cache在OS中都有一份同样的PageCache。所以通过将缓存只放在PageCache, ...
阅读全文 »

Kafka-0.10.2.0滚动升级手册

发表于 2017-04-27 | 分类于 技术博客 | | 阅读次数
一、Kafka-0.10.2.0滚动升级方案Kafka-0.10.2.0滚动升级方案 二、Kafka-0.10.2.0兼容性Kafka broker 0.10.2.0版本的brokers支持0.8.x或更高版本的客户端。 Kafka客户端 从0.10.2.0版本开始,Kafka的Java客户端(producer和consumer)实现了与部分老版本的broker(0.10.x)通信的兼容性。 0.10.2.0版本的客户端可以与0.10.0或更高版本的broker通信。但是,如果broker的版本低于0.10.0,必须先升级所有Kafka集群中的brokers的版本,才可以继续升级客户端的版本。 三、0.8.2.1向0.10.2.0滚动升级手册1. 安装配置Kafka-0.8.2.1https://shiyueqi.github.io/2017/04/27/Kafka-0.8.2.1安装配置/ 2. 安装Kafka-0.10.2.0下载地址:http://apache.claz.org/kafka/0.10.2.0/ Kafka-0.10.2.0安装方法与0.8.2.1相同。安装完成后如 ...
阅读全文 »

Kafka-流量控制Quota功能

发表于 2017-04-27 | 分类于 技术博客 | | 阅读次数
一、Quota 功能简介官方文档http://kafka.apache.org/documentation/#design_quotas 二、Quota功能简介Kafka从0.9版本开始增加流量控制功能–Quotas,并在broker中增加了以下的配置。 可以在broker的配置文件中增加相应的对producer和consumer的流量控制配置,即每秒生产/消费的byte数目大小。 默认值是Long类型的最大值,即不限制流量,尽最大可能地生产/消费消息。 但可以看到在新版的配置中,这两项配置已经被声明为Deprecated,即不再建议使用,且官方声明在未来的release版本中,会删除这两项配置。 0.10版本的Kafka已经通过与Zookeeper结合来完成Quota的功能。将Quota限流的配置信息存储到ZK的结点中,这样配置一旦更新,可以立刻被所有的broker读取到,并且立即生效。这让我们可以更新Quota的配置,而不需要重启整体broker集群。因此,broker配置的限流功能会被废弃掉。 三、Quota使用参考文档http://kafka.apache.org ...
阅读全文 »

Kafka-0.8.2.1 producer&consumer示例

发表于 2017-04-27 | 分类于 技术博客 | | 阅读次数
一、github源码Kafka-0.8.2.1 producer&consumer 示例源码github地址: https://github.com/shiyueqi/kafka-test 二、Kafka安装与配置Kafka-0.8.2.1安装与配置 三、Kafka官方示例Kafka wiki https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example 0.8.2版本的producer代码 https://github.com/apache/kafka/blob/0.8.2/examples/src/main/java/kafka/examples/Producer.java 0.8.2版本的consumer代码 https://github.com/apache/kafka/blob/0.8.2/examples/src/main/java/kafka/examples/Consumer.java 0.10.2.0版本的producer代码 https://github.com/apache ...
阅读全文 »

Kafka-0.8.2.1安装配置

发表于 2017-04-27 | 分类于 技术博客 | | 阅读次数
一、官方地址官方地址:http://kafka.apache.org/ github地址:https://github.com/apache/kafka 二、Kafka下载下载地址:http://apache.claz.org/kafka/0.8.2.1/kafka_2.10-0.8.2.1.tgz 其他版本下载地址:http://apache.claz.org/kafka/ 注:由于我最近要做一个Kafka滚动升级测试,内部使用版本为0.8.2.1,因此在这里采用了0.8.2.1版本的Kafka。无特殊需求,推荐使用最新版本0.10.2.0。 三、Kafka安装下载成功后,执行命令,完成解压缩 tar -xvf kafka_2.10-0.8.2.1 注:2.10表示Kafka采用Scala版本为2.10。后缀的0.8.2.1为Kafka的版本。 四、Zookeeper集群安装与配置Zookeeper-3.4.9集群安装与配置 五、Kafka配置Kafka推荐使用集群模式,在这里,我启动了两台Kafka实例,构成了Kafka集群。 安装目录分别为 /home/yqshi/kafka/ ...
阅读全文 »
1…3456
Shi Yueqi

Shi Yueqi

In me the tiger sniffs the rose.

26 日志
7 分类
18 标签
GitHub 微博
© 2017 - 2018 Shi Yueqi
由 Hexo 强力驱动
主题 - NexT.Pisces