apachestorm:基于配置的节流喷口

4sup72z8  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(354)

我的拓扑从kafka读取,并对外部系统进行http调用。Kafka的接收率大约是每秒200条信息。外部系统每秒仅支持20个http调用。我怎样才能引入节流,使发出http调用的bolt每秒只处理20条消息?

gg58donl

gg58donl1#

你可以用 topology.max.spout.pending 设置为基于拓扑中飞行的元组数来限制喷口。该设置是针对每个喷口示例的,因此如果您有10个喷口执行器,并且您设置了最大100个元组,那么您将在拓扑中获得最大1000个元组。
你可以用 resetTimeout 上的方法 OutputCollector 为了防止要延迟的元组由于超时而失败。
也就是说,您可能需要将消息打包成更大的包。如果每秒只能处理20条消息,而每秒的输入为200条,则会开始落后,永远赶不上。

相关问题