如何有效降低云消息使用成本?涂鸦Pulsar云消息史诗级大更新来了!超级干货攻略快收藏

月末了,相信大家都会有信用卡额度超支的担忧,生怕一不留神就会超出预算,并且事后还需要仔细核对消费情况。类似的焦虑,也会出现在使用涂鸦 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADI-DSP|在指定内存写入数据

一、LDF文件设置内存空间 user_data_test { TYPE(BW RAM) START(0x00380010) END(0x0039bfff) WIDTH(8) }//usr data dxe_user_data_bw BW{INPUT_SECTION_ALIGN(4)INPUT_SECTIONS( $OBJS_LIBS(user_data) )} > user_data_test 二、在C文件中设置数据 /************…

IOU 与 IOF

IOU 与 IOF IOU是指:重叠区域/联合区域的面积,也就是box1与box2的交集面积和并集面积的比例。 IOF是指:重叠区域/前景区域编辑,也就是box1与box2的交集面积和box1面积的比例。 参考资料:https://github.com/open-mm…

使用LabVIEW和示波器测试IGBT参数

使用LabVIEW和示波器测试绝缘栅双极型晶体管(IGBT)参数的综合解决方案。过程包括硬件设置、示波器和其他必要设备的配置,以及开发LabVIEW程序以自动化数据采集、过滤、关键参数计算和结果显示。该方法确保了IGBT测试的准确性、可靠性和高效性…

巡检机器人智能联网,促进工厂自动化

随着工业4.0和智能制造的快速发展,企业引入自动化设备和智能机器人以提高生产效率和降低人工成本已成为大势所趋。其中,巡检机器人作为一种能够在复杂和危险环境中进行自动巡检的设备,受到了广泛关注。如何实现巡检机器人稳定、安全的联网是每…

【光伏开发】工商业光伏的优势

随着全球对可再生能源的日益重视和环保意识的增强,工商业光伏作为一种清洁、高效的能源利用方式,正在得到广泛的推广和应用。工商业光伏系统通过安装在工厂、仓库、办公楼等工商业场所的太阳能电池板,将太阳能转化为电能,以满足工…

C# OpenCvSharp 入门

摘要 C# OpenCvSharp 是一个基于OpenCV(开源计算机视觉库)的C#封装库,它提供了一组功能强大的工具和函数,用于图像处理、计算机视觉和计算机图形学等领域。通过使用OpenCvSharp库,您可以在C#应用程序中轻松地实现各种图…

SpringBoot整合Nacos并开启鉴权

关于Nacos的介绍就不在多说,不知道的可以看看Nacos的官网:nacos.io    1、下载安装Nacos 下载地址:https://nacos.io/download/nacos-server/,下载后将Nacos解压到本地磁盘即可,Nacos使用Java语言开发,因…

Ant Design Vue Upload 自定义上传 customRequest,这一篇很详细

Upload 常用属性和方法 示例上传接口 # 接口文档 url https://www.mocky.io/api/main/upload 头部 x-token: xxx 参数 file: File // 上传的文件 flag: xxx // 上传的标识// 文件上传 api 函数简单封装 export const uploadApi ({ file }) > {const formData new Fo…

面向对象编程(Object-Oriented Programming,OOP)编程思想

面向对象编程(Object-Oriented Programming,OOP)是一种编程思想,它通过将程序组织为相互交互的对象来解决复杂的问题。OOP的核心思想是将现实世界的事物抽象为对象,通过对象之间的交互来构建软件系统。 OOP的主要特点…

Markdown的使用

这里写自定义目录标题 欢迎使用Markdown新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

iOS之如何创建.framework静态库

番外:想要查看如何创建.a静态库可前往看我iOS之如何创建.a静态库-CSDN博客这篇文章。 一、创建framework项目 创建framework工程要选择iOS --> Cocoa Touch Framework输入项目名称PrintFramework也是编译生成的framework的名称。framework的名称也可以以后在项目…

CID引流电商:传统电商破局的新动力

摘要:CID引流电商为传统电商带来破局新机遇,通过跨平台引流、精准定位和高效转化,解决了流量获取难、成本高的问题,提升了销售业绩和市场竞争力。CID引流电商助力传统电商在激烈竞争中保持领先,推动行业持续发展。 随…

WEB攻防【5】——JS项目/Node.js框架安全/识别审计/验证绕过

1、test.php和test.html对比 #知识点: 1、原生JS&开发框架-安全条件 2、常见安全问题-前端验证&未授权 #详细点: 1、什么是Js渗透测试? 在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞 JS开发的WEB应用和PHP、java.NET…

学习笔记——动态路由——RIP(RIP路由汇总介绍)

四、RIP路由汇总介绍 当网络中路由器的路由条目非常多时,可以通过路由汇总(又称路由汇聚或路由聚合)来减少路由条目数,加快路由收敛时间和增强网络稳定性。 路由汇总的原理是,同一个自然网段内的不同子网的路由在向外…

WebKit防御战:跨站点脚本攻击的克星

WebKit防御战:跨站点脚本攻击的克星 在当今数字化时代,网络攻击手段层出不穷,其中跨站点脚本(XSS)攻击以其隐蔽性和破坏力尤为令人头疼。WebKit,作为许多流行浏览器如Safari的核心引擎,其对XSS…

recogito-js:用于文本注释/图像注释的前端插件

创建批注: 继续批注: 右侧批注列表: 1、功能与应用: 文本注释:recogito-js可以将注释功能添加到网页上,或者作为构建完全自定义注释应用程序的工具箱。图像注释:除了文本注释外,它还…

PyTorch 版本与 CUDA 版本的兼容性示例

PyTorch 1.9.0 及以上版本支持 CUDA 11.1。PyTorch 1.8.0 支持 CUDA 11.0。PyTorch 1.7.0 支持 CUDA 10.2。PyTorch 1.6.0 支持 CUDA 10.1。PyTorch 1.5.0 支持 CUDA 10.1。PyTorch 1.4.0 支持 CUDA 10.1。PyTorch 1.3.0 支持 CUDA 10.0。PyTorch 1.2.0 支持 CUDA 9.2。PyTorch…

WITS核心价值观【创新】篇|从财务中来,到业务中去

「客尊」、「诚信」、「创新」 与「卓越」 是纬创软件的核心价值观。我们秉持诚信态度,致力于成为客户长期且值得信赖的合作伙伴。持续提升服务厚度,透过数字创新实践多市场的跨境交付,助客户保持市场领先地位。以追求卓越的不懈精神&#xf…

腾讯云点播VOD(sprintboot后端+vue前端)

1. 腾讯云点播 官网文档入口: 云点播简介_云点播购买指南_云点播操作指南-腾讯云 2. 业务需求 2.1.上传视频 2.2.浏览视频 2.3.删除视频 3. 腾讯云提供服务器上传和客户端上传。我使用springboot后端实现客户端上传视频。 3.1 后端要求 生成签名,前端拿着签名凭证,才能上…

easyui的topjui前端框架使用指南

博主今天也是第一次点开easyui的商业搜权页面,之前虽然一直在使用easyui前端框架(easyui是我最喜欢的前端ui框架),但是都是使用的免费版。 然后就发现了easyui的开发公司居然基于easyui开发出了一个新的前端框架,于是我…