gcloud pubsub subscriptions pull默认是否自动ACK?
gcloud pubsub subscriptions pull 默认是否自动ACK?
答案
gcloud pubsub subscriptions pull 的默认行为是自动ACK(确认)消息。
判断依据
虽然官方文档没有直接明确说明默认启用--auto-ack,但反向选项--no-auto-ack的存在已经给出明确信号:这类以no-开头的选项,作用是关闭默认开启的功能。由此可以确定,默认状态下拉取到的消息会被自动确认。
对你的脚本的影响
你的脚本用于循环拉取消息并保存为JSONL文件,之后重新发布到其他项目:
counter=0 for x in `seq 1 9`; do messages=$(gcloud pubsub subscriptions pull subtopic1 \ --limit 1000 \ --format="value[separator='\n'](message.data)") if [ -z "$messages" ] then break fi counter=$((counter+1)) echo "$messages" >> subtopic1__$x.jsonl echo -n "$counter " done
当前逻辑下,消息一被拉取就会自动ACK并从订阅中移除。如果脚本写入文件失败、或者后续重新发布过程中出现问题,这些消息会直接丢失。如果要保证消息安全,建议拉取时添加--no-auto-ack,等确认消息成功写入且重新发布完成后,再用gcloud pubsub subscriptions ack命令手动确认消息。
内容的提问来源于stack exchange,提问作者Kokizzu
相关产品推荐
相关产品推荐

