【问题标题】:Spring Boot Webflux reactive apiSpring Boot Webflux 反应式 API
【发布时间】:2020-04-05 03:37:00
【问题描述】:

我希望得到一些关于我正在构建的小型 Spring Boot 应用程序的提示。

应用程序本身的功能应该类似于使用 Kafka 主题(或任何发布/订阅模式)。然而,我没有可用的工具,如 Kafka,所以应该在应用程序本身内完成。

应用程序将有一个 RestController,当它们发生时应该公开一个“热”事件流。

@GetMapping(produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux<Event> getApis() {
    return … 
}

应用程序本身将使用来自另一个应用程序的事件流。

我需要一些提示的地方是 - 我如何将此 API 的每个使用者视为新订阅者 - 并在我加入时向他们发布事件?实现一个完整的发布-订阅模式来跟踪订阅者以及他们何时停止使用端点当然应该是可能的。但我想知道是否没有使用 Springs Reactive 功能的更简单的解决方案。 我收到的事件不需要存储 - 只需在事件发生时转发给每个订阅的消费者。

谢谢

【问题讨论】:

    标签: java spring-boot spring-webflux reactive


    【解决方案1】:

    在从控制器处理程序返回您的 Flux&lt;Event&gt; 之前,请确保您始终返回:

    • 相同的实例,例如作为属性保存在控制器中
    • 在其上应用Flux.share(),以便所有订阅者共享相同的热点事件流

    【讨论】:

    • 这正是我所需要的。并且自己实现发布/订阅更容易。感谢您的帮助
    猜你喜欢
    • 2018-06-24
    • 2019-04-12
    • 2019-01-05
    • 2018-02-08
    • 1970-01-01
    • 2021-11-18
    • 2020-04-29
    • 2020-05-04
    • 2022-11-21
    相关资源
    最近更新 更多