首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AIoT通用组件服务攻略之快速定位http数据推送失败

天翼物联网平台(AIoT)通用组件服务提供http数据推送能力,在使用http推送过程中,若发现数据无法正常推送到应用服务器,如何快速定位界定问题初界面呢?此时,可以开启设备消息跟踪功能,根据消息跟踪功能返回的信息,快速辅助定位。

推送目标服务器异常

若在消息追踪页面看到“业务类型-HTTP消息推送”里有一栏信息报红,可点击“详情”进行查看。

如有以下字样:

exception=HTTP_RESPONSE_CODE:404

HTTP_RESPONSE_CODE:403

表明推送请求被禁止,请求资源不存在,平台无法正常访问推送消息,需要检查接收服务处理状态和防火墙配置

公网IP不存在

若打开消息追踪发现报红,点击详情后看到以下报错:

org.apache.hc.core5.http.ProtocolException:Target host is not specified

或错误信息:

java.net.UnknownHostException:www.xxx.com

这种情况一般是url格式或域名配置错误,需要检查订阅地址填写是否正确

服务器连接超时

若在消息跟踪里面看到“connection timed out”,这种报错是因为连接接收方的网址超时,需要排查应用服务器的公网地址是否有问题。另外,需要检查本地防火墙,是否将天翼物联网平台(AIoT)通用组件服务的推送出口地址进行了限制或未加入服务器侧白名单,然后进行相应处理,不要限制端口。

消息接收服务器处理超时

当接收到通用组件服务推送的消息后,需固定返回给平台“HTTP 200”,其它返回码平台会认为推送失败。

为了提高消息推送效率,通用组件服务会对接收方处理消息的响应时间进行判断,并以此为主要依据来确定消息推送的优先级,因此接收方收到消息后应对消息进行异步处理,立即返回HTTP响应。

若在消息跟踪的HTTP推送的报错信息中,看到以下字样:

SocketTimeoutException:5 SECONDS

这种错误一般是因为平台5s内未收到消息接收服务器响应,需检查当时服务器状态是否稳定,是否因此导致未能及时回复状态码或是否进行异步处理优化等。

若在消息跟踪中看到以下字样:

Connect to https://www.xxx.com:443

[www.xxx.com/xxx.xxx.xxx.xxx]failed:5 SECONDS

则是服务器地址有误或者状态不可取,可以根据以下几种情况排查:

地址未做IP跳转;

IP被封;

服务器未加平台出口IP;

https使用了http;

路由中转太多;

带宽不够等。

平台重传及暂停推送机制

消息推送支持失败重传机制,推送失败(超时、HTTP返回码不等于200等)的消息,平台最多会重试3次。

若消息接收服务连续失败次数超过100次或者最近10s推送失败率超过10%,平台会认为该服务暂时不可用,标记该消息接收服务处于失败冷却状态,1分钟内不再向该消息接收服务推送消息(这1分钟内的相关消息将不会被推送,但Saas的"设备增加删除"类型的消息会继续推送)。

若在消息跟踪里面看到“http推送目的地服务异常,处于推送冷却时间60秒内,直接记录日志,不推送”“冷却状态首次推送失败,不重试”“http推送冷却时间已过,但目标服务器状态尚未返回,不推送”等字样,就需要检查当时服务器是否运行正常,响应回复是否及时。

有上报无推送

当发现平台“消息查看”有数据上报,而接收端服务器和消息追踪里面并无推送信息时,这种情况下需要去“订阅管理”查看是否添加订阅推送信息。

如图,如果未勾选设备数据变化通知,那么数据将不会推送,这时候需要将设备数据变化通知勾选,输入正确的订阅地址后并添加。

如果发现消息追踪的报错信息都不在以上几种,请联系运营支撑人员进行查询。

此外,平台支持产品级订阅和设备级订阅功能。如果一个设备同时添加了产品级,那么都会推送。

以上就是http推送失败后定位的一些小方法,快来get吧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221107A0322C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券