41、使用 Pub/Sub 和 IoT Core 进行消息传递

使用 Pub/Sub 和 IoT Core 进行消息传递

1. 消息传递模式

1.1 推送和拉取消息传递

Cloud Pub/Sub 支持两种消息传递方法:推送订阅和拉取订阅。传递方法是按订阅进行配置的,并且订阅可以随时在推送和拉取之间转换。推送和拉取订阅都提供至少一次传递,并将消息保留长达 7 天,但两者之间有几个关键区别。

1.2 拉取订阅

在拉取消息传递模型中,订阅者向 Cloud Pub/Sub API 发起请求,并在 API 响应中接收排队的消息。当队列为空时,API 会返回错误代码以表明没有可用消息。除了消息体、属性和消息 ID 外,每条消息还会返回一个确认(ack)ID。订阅者必须通过使用该消息的 ack ID 进行额外的 API 调用,通知 Cloud Pub/Sub 应从队列中删除该消息。

Google 为许多常用语言提供了 Cloud Pub/Sub 客户端库。这些客户端库抽象了通过 Cloud Pub/Sub API 摄取消息的大部分开销,应尽可能使用。大多数客户端库支持同步和异步拉取。同步拉取提供了最简单的拉取消息模型,使用单线程重复检查新消息。这为处理消息提供了非常可预测的负载,因为客户端可以配置在给定时间内处理的最大消息数。

对于支持并发工作流的语言,客户端库可以配置为异步拉取消息。这样做的优点是通过优先执行长寿命、非阻塞操作,为消息处理提供更高的总体吞吐量。此外,消息可以一次确认一条,而同步拉取更适合批量处理操作。

许多 Cloud Pub/Sub 客户端库还支持流式拉取操作,该操作利用双向 RPC 流。在这种模型中,客户端与 Cloud Pub/Sub 建立长期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值