搜尋

首頁  >  問答  >  主體

java - 关于Storm spout消息重发的问题

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


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

全部回覆(0)我來回復

無回覆
  • 取消回覆