可从不同的应用程序 ID 访问的 QueryableStore
QueryableStore accessible from different application id
我有一个应用程序将所有用户活动作为流使用,我想计算他查看主页的次数等等。我将 count 实体化为一个持久的键值存储。我想从不同的应用程序访问这个键值存储并从这个存储中获取数据,因为我想通过休息端点共享这些统计信息。可能吗?
I want to have access from a different application to this key-value store and get data from this store because I want to share these statistics via rest endpoint. Is it possible?
是的,这是可能的。该功能称为 interactive queries in Kafka Streams. There is also a demo application called Kafka Music,您可以将其用作起点。
您的第一个应用程序使用 Kafka Streams 连续计算状态,它还需要提供诸如 REST/Thrift/... API 之类的东西,您的第二个应用程序可以查询。您的第二个应用程序可以是任何东西:它可以是 Python 应用程序、JavaScript 应用程序,甚至是像 curl
这样的命令行工具——它不必是另一个 Kafka Streams申请。
您必须使用您喜欢使用的任何 REST 工具等手动实现第一个应用程序的 "API",就像任何其他需要实现 REST API 的 Java 应用程序一样].通过上述 interactive queries 功能,Kafka Streams 提供了所有必要的方法来通过您的 DIY API 挖掘和公开 Kafka Streams 状态存储中的数据。 (Kafka Streams 有意不提供 "a REST API" 或 "a gRPC API" 等本身,因为开发人员之间的需求通常非常不同。)
我有一个应用程序将所有用户活动作为流使用,我想计算他查看主页的次数等等。我将 count 实体化为一个持久的键值存储。我想从不同的应用程序访问这个键值存储并从这个存储中获取数据,因为我想通过休息端点共享这些统计信息。可能吗?
I want to have access from a different application to this key-value store and get data from this store because I want to share these statistics via rest endpoint. Is it possible?
是的,这是可能的。该功能称为 interactive queries in Kafka Streams. There is also a demo application called Kafka Music,您可以将其用作起点。
您的第一个应用程序使用 Kafka Streams 连续计算状态,它还需要提供诸如 REST/Thrift/... API 之类的东西,您的第二个应用程序可以查询。您的第二个应用程序可以是任何东西:它可以是 Python 应用程序、JavaScript 应用程序,甚至是像 curl
这样的命令行工具——它不必是另一个 Kafka Streams申请。
您必须使用您喜欢使用的任何 REST 工具等手动实现第一个应用程序的 "API",就像任何其他需要实现 REST API 的 Java 应用程序一样].通过上述 interactive queries 功能,Kafka Streams 提供了所有必要的方法来通过您的 DIY API 挖掘和公开 Kafka Streams 状态存储中的数据。 (Kafka Streams 有意不提供 "a REST API" 或 "a gRPC API" 等本身,因为开发人员之间的需求通常非常不同。)