【问题标题】:Testing Interactive Queries in Kafka Streams在 Kafka Streams 中测试交互式查询
【发布时间】:2021-01-24 08:55:21
【问题描述】:

我有一个函数,它接受一个 Kafka 流的实例,获取状态存储,解析它并进行一些计算。

void func1(KafkaStreams streams)
{
   StoreQueryParameters<ReadOnlyKeyValueStore<String, Long>> storeQueryParams = 
                StoreQueryParameters.fromNameAndType(...);
   ReadOnlyKeyValueStore<String, Long> stateStore = streams.store(storeQueryParams);
   KeyValueIterator<String, Long> range = stateStore.all();
   ...
   // using this iterator, I will read each record in state store and do some computation.
}

让我们假设 Kafka 流的拓扑是一个简单的拓扑,我们从一个主题中读取并将确切的记录存储在状态存储中。

如何测试这些需要Kafka设置的功能?

【问题讨论】:

    标签: unit-testing apache-kafka apache-kafka-streams


    【解决方案1】:

    您可以尝试通过TopologyTestDriver直接测试商店

    这是一个例子:

    https://github.com/openzipkin-contrib/zipkin-storage-kafka/blob/56afb2e7a0bd4381cab9c97002018d301c331b29/storage/src/test/java/zipkin2/storage/kafka/streams/TraceStorageTopologyTest.java#L186-L200

    如果您想测试访问 KafkaStreams 实例的 func1,则需要进行集成测试。 TestContainers 可以帮助您使用 Kafka 集群进行测试https://www.testcontainers.org/modules/kafka/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2021-05-04
      • 2018-04-02
      相关资源
      最近更新 更多