java - Apache Storm - Spout/Bolt crashing with high latency -
while using storm 1.1.0 topology faced problem, storm reschedules or let bolts , spouts crash, when topology has bolt high latency.
now created latencytest-topology testing , playing around problem.
i have spout, emit random values:
public void nexttuple() { outputcollector.emit(new values(math.random())); }
and have bolt, recieves these values , sleeps specific time.
public void execute(tuple tuple) { double input = tuple.getdouble(0); try { thread.sleep(this.latencyms); } catch (interruptedexception e) { e.printstacktrace(); } outputcollector.ack(tuple); }
so if set latencyms 10, can see, storm works "fine" (just 2000 acked tuples in bolt)for 3 minutes. bolts latency goes 60-100ms instead of 10ms , storm starts "reassign" (log in nimbus) executors. statistics in ui going 0.
image 1: no crash , 2000 tuples acked high latency
image 2: crashed no information in ui
since working files in spout of real topology, not acceptable reopen these.
i played around timeout values in storm.yaml , "config.setmaxspoutpending(200);" option, nothing seems have effect. using 3 node zookeeper cluster , 5 node storm cluster test.
do have ideas how solve or understand this? need storm go on, if latency high.
maxspoutpending not timeout config, should config topology.message.timeout
.
Comments
Post a Comment