如何删除GlobalKTable商店的状态?

时间:2018-03-09 12:28:45

标签: apache-kafka apache-kafka-streams

我想删除<?php get_header(); $catID = get_queried_object_id(); ?> <?php if ( have_posts() ) : ?> <header class="page-header no-image"> <?php the_archive_title( '<h1 class="page-title u-text-center">', '</h1>' ); ?> </header><!-- .page-header --> <?php get_template_part( 'template-parts/filter-category' ); ?> <?php /*QUERY: This is the problem if I move the query from there the category works but If I leave the query the pagination doesn't have the post_per_page argument to take and doesn't work... */ $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $args = array( 'post_type'=>'post', 'post_status'=>'publish', 'posts_per_page' => 6, 'cat' => $catID, 'paged' => $paged ); $wp_query = new WP_Query( $args ); /*END QUERY*/ ?> <div id="blogpost-list" class="container"> <div class="row blogpost-wrapper"> <?php /* Start the Loop */ $i = 1; while ( $wp_query->have_posts() ) : $wp_query->the_post();?> <?php if ($i % 3 == 0): ?> <div class="blogpost-item-grid"> <!-- some stuff to display the post.. doesn't really matter--> <?php get_template_part( 'template-parts/content-post-preview-large' ); ?> </div> <?php else: ?> <div class="blogpost-item-grid"> <!-- some stuff to display the post doesn't really matter --> <?php get_template_part( 'template-parts/content-post-preview' ); ?> </div> <?php endif; ?> <?php $i++; ?> <?php endwhile;?> </div> </div> <?php get_template_part( 'template-parts/pagination' ); ?> <?php else : get_template_part( 'template-parts/content', 'none' ); endif; ?> <?php get_footer(); 商店的状态。

我试图通过以下方式移除州:

  • 通过致电GlobalKTable<Integer, Long>
  • 删除整个Kafka主题
  • 在应用程序启动时运行kafka-topics.sh --zookeeper localhost:8080 --delete --topic my-topic
  • 向我的流生成'Test:null'消息,因为空值应该被视为商店中的DELETE语句,如here所述。但是,我的流应用程序失败,因为无法将null值反序列化为LONG。

请参阅以下例外:

KafkaStreams.cleanUp()

如何删除GlobalKTable的状态?

2 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的方法。要删除GlobalKTable的整个状态,还需要清除RocksDB缓存文件。

RocksDB文件存储在StreamsConfig.STATE_DIR_CONFIG位置。我已删除文件,现在我的状态已完全清除。

但是,可能有更好的解决方案吗?

答案 1 :(得分:0)

KafkaStreams.cleanUp()实际上应该删除那些RocksDB文件。这个错误已在即将发布的1.1版本中修复:issues.apache.org/jira/browse/KAFKA-6259。