Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TickTuple不起作用_Java_Apache Kafka_Apache Storm - Fatal编程技术网

Java TickTuple不起作用

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().

我有一个storm拓扑,其中我有一个bolt,它从数据库中读取数据,并以批处理的方式放入kafka队列。它在大约5秒内获得超过20000行。但是螺栓不接收tick元组。最后我收到堆空间错误。因此,我将计数限制为10k,以便将消息推送到kafka队列。当从db中读取完成后,我开始收到滴答声元组消息

喷口计算要从数据库中获取的下一个数据,并将其提供给bolt、表名和时间范围

受保护的静态布尔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只给出了三个字段,一个是键,另一个是要从数据库中读取的日期范围。日期范围在循环中递增,直到达到当前时间。如何在螺栓中指定记号元组频率,我想我们使用问题中给出的方法来实现。