relay-amqp中如何优雅地获取device完整信息

Blade 未结 1 39
xiaoliu
xiaoliu 剑圣 2024-09-30 16:23

一、该问题的重现步骤是什么?

  1. 问题连接:https://sns.bladex.cn/q-12550.html,如果需要在relay-amqp获取完整的iot_device信息(不只是产品Key以及deviceName,而是通过产品key或者deviceName继续获取iot_device的完整设备信息)。什么方式获取比较合适?比如blade-server中提供endpoint接口给relay-amqp,还是其他什么方式(如果在relay-amqp中直接读iot_device的数据库这样应该不合适吧?)?

image.png


二、你期待的结果是什么?实际看到的又是什么?

期待的结果:relay-amqp中如何获取到 完整的 device信息(iot_device中的device信息,不只是产品Key以及deviceName)。

实际看到的:relay-amqp中暂时未有获取device信息的写法


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

正在使用的产品:BladeX物联网平台

版本:1.1.0

操作系统:Windows11


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 2024-10-02 17:01

    有了productKey和deviceName,你可以调用blade-server里的openapi获取更多信息:https://openapi.javablade.com/doc.html#/OpenApi%E6%A8%A1%E5%9D%97/%E8%AE%BE%E5%A4%87%E6%A8%A1%E5%9D%97/queryDeviceDetail


    如果不满足你的要求,代码都有,你想怎么二开就怎么二开。你想用rest api、rpc、feign、mqtt等等各种形式获取都可以。


    还有,这个relay模块作为数据转发,必定是有大量数据的,有时会一秒会有几千几万条数据过来,每一条数据过来都要进行远程调用api或者查数据库获取设备详细信息的话,你的服务器性能压力会非常大。

    正确情况你有productKey和deviceName就够了,获取后直接入库入日志等等。事后要进行综合查询了,再通过productKey和deivceName来查device的信息。这才是正确的做法。

    0 讨论(0)
提交回复