首页 > 解决方案 > 使用 Spring Data Cassandra 进行实时流式传输(反应式)

问题描述

有没有办法使用 spring-data-cassandra 实时流数据?基本上,每当数据库有新添加时,我想向客户端发送数据。

这就是我想要做的: -

@GetMapping(path = "mapping", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Mapping> getMapping() {
    Flux<Mapping> flux = reactiveMappingByExternalRepository.findAll();

    Flux<Long> durationFlux = Flux.interval(Duration.ofSeconds(1));

    return Flux.zip(flux, durationFlux).map(Tuple2::getT1);
}

但是一旦流完成它就不会返回。

标签: javareactive-programmingspring-webfluxserver-sent-eventsspring-data-cassandra

解决方案


简短的回答是否定的,没有通过 Cassandra 驱动程序实时流式传输实时更改。虽然 Cassandra 有一个 CDC(更改数据捕获),但它的级别很低,您需要在服务器上使用提交日志。有关详细信息,请参阅使用 datastax 侦听 cassandra 数据库


推荐阅读