繁体   English   中英

Spring 云 stream 和使用 PubSubReactiveFactory 的背压

[英]Spring cloud stream and backpressure using PubSubReactiveFactory

我正在尝试使用 spring 云 ZF7B44CFAFD5C52223D5498196C8A2E7B 实现类似于https://cloud.google.com/pubsub/docs/pull#flow_control的流控制。

@Bean
ApplicationRunner reactiveSubscriber(PubSubReactiveFactory reactiveFactory, PubSubMessageConverter converter) {
  return (args) -> {
    reactiveFactory.poll("orders-subscription", 250L)
      // Convert a JSON payload into an object
      .map(msg -> converter.fromPubSubMessage(msg.getPubsubMessage(), Order.class))
      .doOnNext(order -> proccessOrder(order))
      // Mannually acknowledge the message
      .doOnNext(AcknowledgeablePubsubMessage::ack);
      .subscribe();
  };
}

似乎背压无法限制流经系统的数据数量。 由于处理可以持续几秒钟,我担心会导致一些 memory 问题与大量传入消息(每天数百万条传入消息)有关。

我想要实现的是不断处理不断变化的 100 条消息。 有人成功实施了吗? 也许反应 rabbitmq?

使用 spring amqp 和预取计数解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM