Storm Transaction 原理+实战
Storm guarantees data processing by providing an at least once processing guarantee. The most common question asked about Storm is "Given that tuples can be replayed, how do you do things like counting on top of Storm? Won't you overcount?" Storm 0.7.0 introduces transactional topologies, which enable you to get exactly once messaging semantics for pretty much any computation. So you can do things like counting in a fully-accurate, scalable, and fault-tolerant way. Storm默认的reliable特性支持 at least once processing guarantee. 这个在某些场景下明显是不够的, 比如计数, 不断的replay必然导致计数不准, 那么需要支持 exactly once semantics.