本文介绍通过物联网平台配置的AMQP服务端订阅消息无法接收的常见问题及解决方法。
配置AMQP服务端订阅后,为什么在线消费端收不到消息?
问题描述
AMQP服务端订阅完成后,消费组对应在线AMQP客户端没有接收到消息。
可能原因
当前设备通信的消息类型,不在AMQP服务端订阅的消息类型内。
实时消息推送限流了,超过限流的消息不能实时消费,物联网平台会重试推送。
AMQP客户端的一个连接限流1,000 TPS,消息转发TPS限流由实例下已购买规格决定。
消息消费慢,导致消息不能实时消费,而进入堆积队列。
消费客户端恢复稳定消费能力后,物联网平台会重试推送堆积消息。
如果客户端对重试推送的消息消费失败,可能导致堆积队列阻塞。按大约一分钟间隔,物联网平台会向客户端再次重试推送。
解决方法
在物联网平台控制台对应实例下,进入 页面,确认已创建的产品订阅中已添加推送消息类型。
具体操作,请参见配置AMQP服务端订阅。
在服务端订阅页面,单击在消费组详情页面,查看实时消息消费速率。
您可根据服务端订阅使用限制,通过增加AMQP客户端连接数扩容、增加AMQP客户端启动数扩容或升配实例下消息转发TPS规格,提高消息消费速率。
物联网平台提供的AMQP SDK中可通过connectionCount配置连接数,最大为128。
一个消费组可开启多个AMQP消费客户端,最大为64。
实例升配方法,请参见实例升配。
为什么设备上报消息推送不成功?
问题描述
AMQP服务端订阅的消息类型为设备上报消息,设备上报的物模型数据没有推送到AMQP客户端。
可能原因
设备上报的物模型数据,在产品侧没有定义对应物模型功能。
设备上报的数据格式,不符合Alink协议标准数据格式,无法推送消息到消费组的AMQP客户端。
设备上报数据中的物模型功能标识符,与定义的功能标识符不一致。
解决方法
在物联网平台控制台对应实例下,进入产品详情页面的功能定义页签,查看是否定义物模型功能。
如果没有定义物模型功能,按照业务需求添加物模型功能。具体操作,请参见添加物模型。
如果已定义物模型功能,确保设备端上报物模型数据的功能标识符正确,且数据格式符合Alink协议标准数据格式,然后重新上报物模型数据。
Alink协议格式说明,请参见设备属性、事件、服务。
设备上报消息成功,业务侧消费端仍然没有收到消息,为什么?
问题描述
设备上报数据后,从物联网平台控制台对应实例下的 的云端运行日志页签确认设备到云消息成功,但服务端订阅消息推送失败了。
可能原因
订阅消费组没有开启的AMQP消费客户端接入物联网平台,或已接入的AMQP客户端已离线。
创建产品时,定义校验类型为免校验,设备上报数据没通过校验直接上报到物联网平台了。设备上报数据若不符合Alink协议标准数据格式,无法被推送到消费组的AMQP客户端。
解决方法
为AMQP服务端订阅产品关联的消费组,开启AMQP消费客户端连接物联网平台,并确保业务运行时,AMQP客户端保持在线。
AMQP客户端离线可能原因,请参见AMQP客户端自动离线,为什么?。AMQP客户端接入方法,请参见AMQP客户端接入说明。
确保设备端上报数据格式符合Alink协议标准数据格式,然后重新上报物模型数据。
Alink协议格式说明,请参见设备属性、事件、服务。
相关文档
什么是服务端订阅:了解AMQP服务端订阅应用场景和使用优势。
物模型支持的数据类型:了解设备物模型支持的数据格式。
校验物模型数据:了解设备物模型数据校验的逻辑。
设备使用物模型通信:了解设备物模型通信的完整流程。