google-cloud-platform - google pub sub 中的消息排序是否遵守截止日期?
问题描述
我setAckDeadlineSeconds(5)
在创建订阅时设置了,但是当启用消息排序时,ackDeadlineSeconds
它不起作用。如果经过的时间超过确认截止日期,则不会重新传递消息。这是启用消息排序时所需的行为吗?
我正在创建订阅,如下所示:
Subscription request = Subscription.newBuilder()
.setName(subscriptionName.toString())
.setTopic(projectTopicName.toString())
.setEnableMessageOrdering(true)
.setAckDeadlineSeconds(5)
.build();
解决方案
启用消息排序时,应遵守确认截止日期。需要注意的一件事是客户端库管理 ack 扩展,因此不使用在订阅创建时设置的 ack 截止日期。他们默认将确认期限延长一小时。你提到你调用了setMaxAckExtensionPeriod
,虽然你只在模拟器模式下在getSubscriber
not 中这样做createSubscriber
,后者是你正在调用的方法(尽管也许你已经更新了代码以在任何地方设置它)。
如果在验证您确实设置了 max ack 扩展后,您仍然没有收到重新传递的消息,最好创建一个支持案例。对于包含您的项目和订阅信息的案例,支持人员可以查看那些未重新传递的消息的情况。
推荐阅读
- c# - 上传大文件(超过 4GB)ASP .NET CORE 5
- javascript - 为什么useEffect中的依赖数组进入无限循环?
- c# - 为什么来自 IEnumerator 的回调 lambda 函数可以更改公共变量而不是本地变量
- django - 测试数据库无法从第二个数据库查询
- python - 如何在python中移动英文字符而不是任何其他字符
- postgresql - PostgresSQL:根据我们确实有值的行填充空行的值
- scala - 如何在scala中将数组列表拆分为多行和多列
- java - 是否可以在 Spring Boot 中设置更长的单休 api 超时时间
- django - 基于另一个模型检索 Django 模型值
- python - 如何解决 TypeError: ('Keyword argument not understand:', 'groups')?