storm学习第四天 性能优化

1 storm如何禁止失败情况下重发
问题描述:因为测试 造了一个错误数据,
造成同一个记录会被反复的重新发送 死循环在哪里 造成无法处理
下一个请求 大量failed
原因分析:
一个任务标记是失败的时候会重新发送 造成死循环

strom消息处理3个方式
1 at-most-once:spout针对相同的tuple只发送一次即可,不需要实现fail和ack方法
2 at-least-once:是用acker机制实现的
3 exactly-once:使用storm的高级部分trident实现

storm学习第四天 性能优化_第1张图片
image.png

检查代码采用方式 2
发现异常数据 我标记this.collector.faild(input) 继续处理
此时应该标记成功就可以了this.collector.ack(input)

参考

  • Using pipelining to speedup Redis queries
    官方介绍 http://redis.io/topics/pipelining
    http://www.blogways.net/blog/2013/06/02/jedis-demo.html
    http://www.jianshu.com/p/5e12556a0aa9
    -ack机制
    https://tech.meituan.com/test-of-storms-reliability.html
    http://www.cnblogs.com/foreach-break/p/storm_at_least_once.html
    http://blog.csdn.net/cjfeii/article/details/47152653
    http://blog.csdn.net/tototuzuoquan/article/details/73539952
    -KafkaSpout实现ack机制
    http://www.cnblogs.com/intsmaze/p/5947078.html

你可能感兴趣的:(storm学习第四天 性能优化)