SpringCloud 交互式查询
2023-11-29 15:35 更新
作为公共Kafka Streams绑定程序API的一部分,我们公开了一个名为InteractiveQueryService
的类。您可以在应用程序中以Spring bean的身份进行访问。从您的应用程序访问此bean的一种简单方法是“自动装配” bean。
@Autowired private InteractiveQueryService interactiveQueryService;
一旦获得对此bean的访问权限,就可以查询您感兴趣的特定状态存储。见下文。
ReadOnlyKeyValueStore<Object, Object> keyValueStore = interactiveQueryService.getQueryableStoreType("my-store", QueryableStoreTypes.keyValueStore());
如果有多个Kafka Streams应用程序实例正在运行,则在以交互方式查询它们之前,您需要确定哪个应用程序实例承载密钥。InteractiveQueryService
API提供了用于标识主机信息的方法。
为了使它起作用,必须按如下所示配置属性application.server
:
spring.cloud.stream.kafka.streams.binder.configuration.application.server: <server>:<port>
以下是一些代码片段:
org.apache.kafka.streams.state.HostInfo hostInfo = interactiveQueryService.getHostInfo("store-name", key, keySerializer); if (interactiveQueryService.getCurrentHostInfo().equals(hostInfo)) { //query from the store that is locally available } else { //query from the remote host }
以上内容是否对您有帮助:
更多建议: