spring-integration - 是否可以使轮询器(或 PollableMessageSource)将消息作为列表轮询?
问题描述
按照 GitHub https://github.com/spring-cloud/spring-cloud-gcp/tree/master/spring-cloud-gcp-samples/spring-cloud-gcp-pubsub-polling-binder-sample中的示例轮询来自 PubSub 订阅的消息,我想知道......
每次投票是否可以进行PollableMessageSource
检索List<Message<?>>
而不是一条消息?
我已经看到该@Poller
符号仅用于Source
类型化对象,从未用于Processor
or Sink
。例如,当使用@StreamListener
或使用功能方法时,是否可以在这种情况下使用?
解决方案
PollableMessageSource
绑定和流Source
应用程序完全基于 Spring Integration 的抽象,其中它的合同是为配置的通道生成单个消息。消息传递的重点实际上是处理不影响其他人的单个消息。一条消息的失败并不意味着流中的其他消息失败。Poller
MessageSource
另一方面,您可能是指将 GCP Pub/Sub 消息作为 Spring 消息有效负载中的列表生成。这确实是可能的,但是通过来自 Pub/Sub 消费者和MessageSource
impl 的一些自定义代码。尽管我会三思而后行,期望从源头上批量处理。如果您的进一步逻辑是关于作为列表处理,您可能会使用聚合器来构建一些小窗口。但同样:这将是一个单一的 Spring 消息。
开始考虑反应式函数实现可能会更好,您确实可以期望 aFlux<Message<?>>
作为输入,Spring Cloud Stream 框架将照顾您如何将数据从 Pub/Sub 发送到您期望的反应式流中。
推荐阅读
- java - 大型阵列反序列化期间的性能下降
- java - 发送 DELETE 时实现状态 200
- python - 实时 ECS 登录 Cloudwatch
- typescript - “字符串”类型上不存在属性“trimLeft”。库:[“dom”,“es2018”]
- python - 将过去 5 个月的 Dataframe 划分为当前月份的 5 个不同的 df?
- primefaces - 在 PrimeFaces 中导出 p:datatable 到 excel
- tfs - SonarQube 上的拉取请求分析和质量门
- python - 如何将 pathlib 与子进程一起使用
- soapui - 如何在设置脚本中执行现有测试用例,并从响应中获取对 SOAP UI 中当前测试用例的值?
- docker - 无法在 fabric-ca 容器中创建的对等 docker 容器中看到用户