java - 关于Storm spout消息重发的问题
伊谢尔伦
伊谢尔伦 2017-04-17 16:00:24
0
0
288
项目采用kafku + storm,  当kafka堆积数据过多,或消息生产数据量过大,bolt处理不过来,导致spout超时,消息重发
由于项目bolt处理是做统计数量用,虽然在处理时,一分钟内的重复数据会做处理,但消息过多时,spout超时很多,导致统计的数据大于实际数据(部分数据在一分钟后才处理)
解决方案如下:
  1.topology.max.spout.pending值减小,对于我的应用,取1000时,能处理目前生产峰值20倍数据
  2.将原先一分钟处理重复消息的时间放大
  3.加大bolt处理的线程数
  4.将spout超时时间取消(但无法统计或告警fail的数量)


但这个还是不能根本上解决问题,目前应用可能要接入日志系统,消息量会是原先数据量的几十倍甚至几百倍,最后统计可能会出现严重的误差,有朋友能给个更好的解决方案么
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all(0)
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template