作者:方腾飞,魏鹏,程晓明 《Java并发编程的艺术》纸质书购买地址=》天猫(价最低)  当当 京东  互动   亚马逊 《Java并发编程的艺术》电子书购买地址=》亚马逊 请使用JDK1.7及其以上版本编译源码,源码的任何问题可以通过评论告诉我们。 通过附件下载源码:ArtConcurrentBook 从SVN check out 源码:http://code.taobao.org/svn/

JAVA   book  

原文链接    译者:魏勇 一个运行中的拓扑是由什么构成的:工作进程(worker processes),执行器(executors)和任务(tasks) 在一个 Storm 集群中,Storm 主要通过以下三个部件来运行拓扑: 工作进程(worker processes) 执行器(executors) 任务(tasks) 下面是他们之间相互关系的简单图示。 在 Worker 中运行的是拓扑的一个

storm   Storm  

原文链接    译者:魏勇 本文通过问答的形式解释了 Storm 的容错性原理。 工作进程(worker)死亡时会发生什么? 工作进程死亡的时候,supervisor 会重新启动这个进程。如果在启动过程中仍然一直失败,并且无法向 Nimbus 发送心跳,Nimbus 就会将这个 worker 重新分配到其他机器上去。 节点故障时会发生什么? 一个节点(集群中的工作节点,非 Nimbus 所在服务器

storm   Storm  

原文链接    译者:魏勇 Storm 最佳实践 关于配置 Storm + Trident 的建议 worker 的数量最好是服务器数量的倍数;topology 的总并发度(parallelism)最好是 worker 数量的倍数;Kafka 的分区数(partitions)最好是 Spout(特指 KafkaSpout)并发度的倍数 在每个机器(supervisor)上每个拓扑应用只配置一个 w

storm   Storm  

原文链接    译者:魏勇 本文介绍了 Storm 命令行客户端中的所有命令操作。如果想要了解怎样设置你的 Strom 客户端和远程集群的交互,请按照配置开发环境一文中的步骤操作。 Storm 中支持的命令包括: jar kill activate deactivate rebalance repl classpath localconfvalue remoteconfvalue nimbus s

storm   Storm  

原文链接    译者:魏勇 Storm 能够保证每一个由 Spout 发送的消息都能够得到完整地处理。本文详细解释了 Storm 如何实现这种保障机制,以及作为用户如何使用好 Storm 的可靠性机制。 消息的“完整性处理”是什么意思 一个从 spout 中发送出的 tuple 会产生上千个基于它创建的 tuples。例如,有这样一个 word-count 拓扑: TopologyBuilder

storm   Storm  

原文链接    译者:魏勇 Storm 有大量配置项用于调整 nimbus、supervisors 和拓扑的行为。有些配置项是系统级的配置项,在拓扑中不能修改,另外一些配置项则是可以在拓扑中修改的。 每一个配置项都在 Storm 代码库的 defaults.yaml 中有一个默认值。可以通过在 Nimbus 和 Supervisors 的环境变量中定义一个 storm.yaml 来覆盖默认值。最后

storm   Storm  

原文链接    译者:魏勇 Storm 系统中包含以下几个基本概念: 拓扑(Topologies) 流(Streams) 数据源(Spouts) 数据流处理组件(Bolts) 数据流分组(Stream groupings) 可靠性(Reliability) 任务(Tasks) 工作进程(Workers) 译者注:由于 Storm 的几个基础概念无论是直译还是意译均不够清晰,而且还会让习惯了 Sto

storm   Storm  

原文地址  首发博客地址   译者:aCoder2013    校对:方腾飞 这个问题对于我来说是一个很常见的问题,这也是由初级程序员成长到中级程序员的时候经常会遇到的问题。程序员不知道或不信任正在使用的约定,并且小心的检查着null。还有当程序员写代码的时候,总是会依赖于通过返回空(NULL)来表明某些意义,因此需要调用者去检查Null。换种方式来说,有两种空指针的检查场景: 期望的结果就是nu

JAVA   断言,Java,null  

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏 在Java中,用System.currentTimeMillis()来测量时间最方便。 你要做的是在某些操作之前获取到时间,然后在这些操作之后你想要测量时间,算出时间差。下面是一个例子: long startTime = System.currentTimeMillis(); callOperationToTime(); long end

JAVA   date   time  
1 2 3 4 5 6 7 8 9