01 2015 档案
摘要:一、简介 如果在消息处理过程中出了一些异常,Storm 会重新安排这个出问题的 topology。Storm 保证一个 topology 永远运行(除非你显式杀掉这个 topology) 。 当然,如果 topology 中存储了中间状态,那么当 topology 重新被 Storm 启动的时候...
阅读全文
摘要:一、简介 Storm 可以保证 spout 发出的每条消息都能被“完全处理” ,这也是直接区别于其他实时系统的地方,如 S4。 请注意,spout 发出的消息后续可能会触发产生成千上万条消息 ,可以形象的理解为一棵消息树, 其中 spout 发出的消息为树根, Storm会跟踪这棵消息树的处理情...
阅读全文
摘要:在创建Storm的Topology时,我们通常使用如下代码:builder.setBolt("cpp", new CppBolt(), 3).setNumTasks(5).noneGrouping(pre_name);Config conf = new Config();conf.setNumWor...
阅读全文
摘要:消息格式消息由一个固定长度的头部和可变长度的字节数组组成。头部包含了一个版本号和CRC32校验码。[plain]view plaincopy/***具有N个字节的消息的格式如下**如果版本号是0**1.1个字节的"magic"标记**2.4个字节的CRC32校验码**3.N-5个字节的具体信息**如...
阅读全文
摘要:Kafka Producer APIs旧版的Procuder API有两种:kafka.producer.SyncProducer和kafka.producer.async.AsyncProducer.它们都实现了同一个接口:[java]view plaincopyclassProducer{/*将...
阅读全文
摘要:Kafka允许topic的分区拥有若干副本,这个数量是可以配置的,你可以为每个topci配置副本的数量。Kafka会自动在每个个副本上备份数据,所以当一个节点down掉时数据依然是可用的。Kafka的副本功能不是必须的,你可以配置只有一个副本,这样其实就相当于只有一份数据。创建副本的单位是topic...
阅读全文
摘要:Kafka Producer消息发送producer直接将数据发送到broker的leader(主节点),不需要在多个节点进行分发。为了帮助producer做到这点,所有的Kafka节点都可以及时的告知:哪些节点是活动的,目标topic目标分区的leader在哪。这样producer就可以直接将消息...
阅读全文
摘要:Kafka在提高效率方面做了很大努力。Kafka的一个主要使用场景是处理网站活动日志,吞吐量是非常大的,每个页面都会产生好多次写操作。读方面,假设每个消息只被消费一次,读的量的也是很大的,Kafka也尽量使读的操作更轻量化。我们之前讨论了磁盘的性能问题,线性读写的情况下影响磁盘性能问题大约有两个方面...
阅读全文
摘要:之前讨论了consumer和producer是怎么工作的,现在来讨论一下数据传输方面。数据传输的事务定义通常有以下三种级别:最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输。最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输.精确的一次(Exactly once):不...
阅读全文
摘要:Kafka大量依赖文件系统去存储和缓存消息。对于硬盘有个传统的观念是硬盘总是很慢,这使很多人怀疑基于文件系统的架构能否提供优异的性能。实际上硬盘的快慢完全取决于使用它的方式。设计良好的硬盘架构可以和内存一样快。在6块7200转的SATA RAID-5磁盘阵列的线性写速度差不多是600MB/s,但是随...
阅读全文
摘要:上篇文章中我们搭建了kafka的服务器,并可以使用Kafka的命令行工具创建topic,发送和接收消息。下面我们来搭建kafka的开发环境。添加依赖搭建开发环境需要引入kafka的jar包,一种方式是将Kafka安装包中lib下的jar包加入到项目的classpath中,这种比较简单了。不过我们使用...
阅读全文
摘要:接下来一步一步搭建Kafka运行环境。Step 1: 下载Kafka点击下载最新的版本并解压.> tar -xzf kafka_2.9.2-0.8.1.1.tgz> cd kafka_2.9.2-0.8.1.1Step 2: 启动服务Kafka用到了Zookeeper,所有首先启动Zookper,下...
阅读全文
摘要:Zookeeper节点标记当路径中的元素包括在方括号里比如[xyz],则表示xyz表示的值是不固定的,每个可能的值都有一个Zookeeper节点。比如/topics/[topic]表示每个topic名称对应/topics的一个子目录。也可以用类似[0...5]表示一个数值范围来表示含有子目录0,1,...
阅读全文
摘要:介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?首先让我们看几个基本的消息系统术语:Kafka将消息以topic为单位进行归纳。将向Kafka topic发布消息的程序成为producers.将预订topics并...
阅读全文

浙公网安备 33010602011771号