首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PubSub配置的GCP PubSub Spring集成

使用PubSub配置的GCP PubSub Spring集成
EN

Stack Overflow用户
提问于 2022-11-03 09:38:43
回答 1查看 74关注 0票数 0

因此,创建订阅服务器时使用

代码语言:javascript
复制
pubSubTemplate.subscribeAndConvert( subs, { message ->
...

非常简洁。

但是,是否可以使用这种方法设置Ack模式来创建订阅者呢?

使用通道适配器(不那么简洁的imo,以及ia正在探索subscribeAndConvert选项的原因),正如这里所描述的,https://cloud.google.com/pubsub/docs/spring#receiving-messages-using-channel-adapters -我可以这样做。

代码语言:javascript
复制
adapter.setAckMode(AckMode.MANUAL);

有一个配置与弹簧云流可用于此;

代码语言:javascript
复制
 spring.cloud.stream.gcp.pubsub.default.consumer.ack-mode: AUTO_ACK

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-13 15:14:16

在方法AckMode(AckMode.AUTO).中没有设置pubSubSubscriberTemplate.subscribeAndConvert的参数。

在Subscription中,可以使用PubSubInboundChannelAdapter将输入通道配置为Pub/Sub订阅。

正如您已经提到的使用PubSubInboundChannelAdapter,您可以设置确认模式为自动使用语法adapter.setAckMode(AckMode.AUTO)

示例代码:

代码语言:javascript
复制
@Bean
public MessageChannel orderRequestInputChannel() {
  return MessageChannels.direct().get();
}

@Bean
public PubSubInboundChannelAdapter orderRequestChannelAdapter(
    @Qualifier("orderRequestInputChannel") MessageChannel inputChannel,
    PubSubTemplate pubSubTemplate) {
  PubSubInboundChannelAdapter adapter =
      new PubSubInboundChannelAdapter(
          pubSubTemplate, "orders-subscription");
  adapter.setOutputChannel(inputChannel);
  adapter.setPayloadType(Order.class);
  adapter.setAckMode(AckMode.AUTO);

  return adapter;
}

可以将消费者端点的application.properties模式设置为:

spring.cloud.stream.gcp.pubsub.bindings.{CONSUMER_NAME}.consumer.ack-mode=AUTO_ACK

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74300865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档