Java TickTuple不起作用
我有一个storm拓扑,其中我有一个bolt,它从数据库中读取数据,并以批处理的方式放入kafka队列。它在大约5秒内获得超过20000行。但是螺栓不接收tick元组。最后我收到堆空间错误。因此,我将计数限制为10k,以便将消息推送到kafka队列。当从db中读取完成后,我开始收到滴答声元组消息 喷口计算要从数据库中获取的下一个数据,并将其提供给bolt、表名和时间范围Java TickTuple不起作用,java,apache-kafka,apache-storm,Java,Apache Kafka,Apache Storm,我有一个storm拓扑,其中我有一个bolt,它从数据库中读取数据,并以批处理的方式放入kafka队列。它在大约5秒内获得超过20000行。但是螺栓不接收tick元组。最后我收到堆空间错误。因此,我将计数限制为10k,以便将消息推送到kafka队列。当从db中读取完成后,我开始收到滴答声元组消息 喷口计算要从数据库中获取的下一个数据,并将其提供给bolt、表名和时间范围 受保护的静态布尔isTickTuple(Tuple-Tuple){ 返回tuple.getSourceComponent().
受保护的静态布尔isTickTuple(Tuple-Tuple){
返回tuple.getSourceComponent().equals(Constants.SYSTEM\u COMPONENT\u ID)
&&tuple.getSourceStreamId().equals(Constants.SYSTEM\u TICK\u STREAM\u ID);
}
@Override
public Map<String, Object> getComponentConfiguration() {
Config conf = new Config();
int tickFrequencyInSeconds = 5;
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, tickFrequencyInSeconds);
return conf;
}`
@覆盖
公共映射getComponentConfiguration(){
Config conf=new Config();
int tickFrequencyInSeconds=5;
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS,tickfrequencycuinds);
返回形态;
}`
Storm的版本是0.9.3当您调用Submitter.submitTopology时,必须将拓扑配置作为参数之一传递
很可能是您在其他地方配置了tick tuple frequency,但没有将其置于将被传递到拓扑的conf中。您的spout实现是什么?背压似乎正在扼杀tick tuple管理层。您是否设置了一些并行性/任务参数以更好地处理负载?spout只给出了三个字段,一个是键,另一个是要从数据库中读取的日期范围。日期范围在循环中递增,直到达到当前时间。如何在螺栓中指定记号元组频率,我想我们使用问题中给出的方法来实现。