我一直在想着将gRPC用于'IoT'型设备;没有像传感器那样受限制的东西;更像是单板计算机内置设备,如机器人,无人机等。设备和集中控制器之间的接口需要什么,因为这些设备是由其他公司单独开发的。所以版本化的界面语言是必须的;它不应该只是在word文档中;可编程的东西,如头文件或WSDL或IDL或ProtocolBuffer。在设备和控制器之间,应该为注册,重新注册等常见用例指定行为。这可以在word文件或某些非技术文档中。
协议缓冲区(第3版)中的(rpc)接口规范以及通过gRPC的高效实现使我能够通过CoAP / LWM2M(乐山Java和C ++实现)进行选择。
使用过LWM2M和grPC后,我会说gRPC对开发人员更友好;与OMA LWM2M进程相比,接口定义和实现速度很快。当然,gRPC中没有Observer-Notify,但对于MQTT应该足够了。
严格来说,无法将LWM2M与gRPC进行比较。 LWM2M不仅仅是接口,而且还定义了许多物联网案例中的行为,如BootStrap,Registration,KeepAlive,SW Upgrade等,其通用HTTP如GET,PUT在URL类型可寻址资源上使其非常完整。但是,大多数这些行为都可以通过一些努力自定义。
我们计划编排的一些物联网事物远不是像灯泡这样的小脑器,更像是机器人。有没有人使用gRPC用于类似目的。任何失败故事的成功分享
答案 0 :(得分:2)
我已经采取了一切措施并将其用于连接“设备”的项目中;这些是像Raspberry-pi这样的小型计算机。总的来说,这是一次很好的经历使用的语言主要是C ++和Java,也是Node.js中的JavaScript。我们使用它作为Dockerized微服务;负载平衡是我们没有做过的事情;我读到基于HTTP / 2的负载平衡很棘手;将更新该部分;计划使用Kubernetes。具有版本化接口的整体容器技术 - GRPC似乎非常适合(微)服务
答案 1 :(得分:2)
答案 2 :(得分:1)
我们在考虑与Joe's相同的解决方案,其中包括CoAP + Protobuf:
答案 3 :(得分:0)
我将esp32和R_Pi与CoAP和protobufs一起使用。据我所知,esp32 / 8266不支持gRPC。我对此非常满意,但是没有针对lwm2m进行任何具体测试。实现是here