月末了,相信大家都会有信用卡额度超支的担忧,生怕一不留神就会超出预算,并且事后还需要仔细核对消费情况。类似的焦虑,也会出现在使用涂鸦 Pulsar 云消息服务时。虽然涂鸦 Pulsar 云消息能满足开发者对设备各类事件实时性和持久化的需求,但随着部分设备上报频繁、接入设备量越来越多,开发者也会担心因消息量超额产生额外费用、消息问题太多导致接入效率低等难题。
了解涂鸦 Pulsar 消息队列👇:https://t.tuya.com/AY1D3RF3XX
本期涂鸦开发者小玄就来和大家聊聊,如何通过一系列工具节省消息成本、提高接入效率,完美解决上面的困扰!
1、场景设定
设想你通过调研发现,在忙碌的现代都市生活中,宠物主人常常因为工作繁忙,而难以确保宠物的饮食规律与健康。因此,你决定开发一款可以帮助宠物主人克服这一挑战的宠物喂食器。刚好,涂鸦拥有全品类的智能解决方案,可以快速帮你实现各类大胆有趣的想法,通过以下步骤,你就能在涂鸦云开发者平台轻松开发宠物喂食器产品。接下来,就跟小玄一起动手尝试一下!教程详细,上手超简单。
首先登录涂鸦云开发者平台,创建产品如下👇:
投入市场后,如果你想实时感知设备的各类信息,并及时通知用户,这时候可以考虑接入涂鸦 Pulsar 云消息(涂鸦云消息基于 pulsar 实现,具有高性能、可扩展、多租户隔离优点),按照如下步骤即可快速接入:
- 登录涂鸦云开发者平台,创建云项目
- 开通消息订阅
- 接入消息订阅服务
- 开发具体业务,进行实践
①涂鸦云开发者平台链接:https://platform.tuya.com/
②开通消息订阅链接:https://t.tuya.com/AY1D3RF3cQ
③接入消息订阅服务链接:https://t.tuya.com/AY1D3RF3Zy
④最佳实践指南链接:https://t.tuya.com/AY1D3RF3Y9
2、攻略介绍
2.1 合理选择消息协议
首先,你需要根据实际业务需求,选择合适的消息推送协议,避免因配置多种推送协议造成重复接收和处理。例如,选择新版 IoT Core 连接服务(设备、空间 API),推荐使用与之配套的消息推送协议;如果使用了旧版家庭、资产模型,推荐使用旧版本协议号,这样可以减少 50% 的消息投递量。
【注】:
IoT Core 协议号 1001 推送的 deviceOnline ,和旧版本协议号 20 推送的 online,均表示设备上线,只是推送的数据内容不同。
①查看新版本协议号:https://t.tuya.com/AY1D3RF5H4
②查看旧版本协议号:https://t.tuya.com/AY1D3RF5Im
2.2 精细化消息过滤
在开发业务时,我们往往只需要关注部分 bizCode 的 Pulsar 消息,而非全部。通过精细化配置过滤规则,我们可以有效地节省消息费用,并降低消费端的资源消耗,专注于处理关键的业务信息。
详情参见 bizCode 消息类型:https://t.tuya.com/AY1D3RF3dR
一开始为了验证市场反应,你想实时了解设备入网情况和删除情况,可以如此配置:
投入市场一段时间了,你可能会发现用户出现了抱怨,比如:没有及时感知到宠物喂食器缺粮,导致宠物挨饿了,这时候你就需要基于属性的更细粒度进行过滤。
以消息量较大的 bizCode=statusReport 为例,你可能只关心故障告警(fault),而不关心其他的标准状态,那你就可以通过如下属性进行配置,以减少大量其他无关的上报消息。当出现食物短缺、设备电量低等情况,你就可以接收到相应的 Pulsar 消息,并在处理后及时通知用户。
通过上面按需推送的规则,你将只接收到你所关心的消息;同时,被过滤掉的消息也不会产生任何费用,帮助你有效节省成本。相信过一个阶段,你的产品在市场将会大受欢迎!
如果这时候你想开发中高端产品,增加通过分析历史信息(每天投喂次数 feed_report 和宠物每次食量 feed_amount)来检测宠物健康状态的功能,从而发现异常并及时通知用户。这时候你可以在涂鸦云开发者平台新建一个产品,把接收的 Pulsar 消息存储起来,通过一定的机器学习算法,分析历史信息和当前信息就可以实现了。
例如可以按照如下规则配置👇:
实际效果:有大客户按照上面精细化的配置,减少了 35% 消息量,节省了约 20% 的消费机器成本。
愉快地使用一段时间后,你可能会发现突然有一天信息异常,怀疑是不是消息哪里出现了问题?这时候推荐你使用涂鸦云开发者后台的日志回溯功能,来详细查看消息从涂鸦云到 Pulsar 的完整投递链路。这有助于帮你分析,并确定某些消息未被接收的具体原因。
2.3 消息接受问题排查
具体操作入口:【云开发】–【云端监控】–【服务端消息日志】
预期效果如下,推荐你购买 IoT Core,可以免费使用这个功能👇:
当你通过搜索设备 ID 得到如下情况:
这时候基本可以确定是没有消费者 SDK 启动,或者消费逻辑有问题,没有 ack 导致的。解决方案如下👇:
●检查消费逻辑,是否有及时 ack
●检查消费 SDK 是否运行正常
●消费逻辑是否有阻塞逻辑
如果有遇到其他场景的问题,可在下面这个链接里寻找解决方案:https://t.tuya.com/AY1D3RF3el
2.4 AI助手
最后,和大家安利下我们的 AI 助手工具–T Smart AI,目前免费开放,有关 Pulsar 的各类疑问,都可以向它咨询哦。示例:
涂鸦超火爆的开发AI助手工具来了!
后期还会开放更多有意思、更强大的功能,敬请期待!
结束语
如果你对 Pulsar 消息感兴趣,或在使用过程中有任何疑问和建议,欢迎来到我们涂鸦开发者论坛–云开发板块,进行交流和反馈,我们会第一时间给你回复~
涂鸦开发者论坛链接:
https://tuyaos.com/viewforum.php?f=4