首页 > 解决方案 > 将 gRPC 用于实例级方法/调用?

问题描述

我想new()增加可以与之交互的对象。D-BUS 提供此功能。有没有办法用 gRPC 做到这一点?

我可以通过定义一个服务来获得类似的结果,该服务可用于新建对象,返回一个 ID,然后将其传递给其他服务方法。在服务器端,我会将 ID 与要调用的内部实例列表相关联。我只是想知道在 gRPC 中是否对类似的东西有一流的支持。

标签: ipcgrpc

解决方案


不,gRPC 没有对对象引用的一流支持。D-Bus 是一种面向对象的协议(例如,第一步是在总线上查找对象),而 gRPC 是具有消息传递的更简单的函数。gRPC 也没有属性和接口的一流概念。

大多数通过网络的面向对象协议,如 CORBA 和 DCOM,已经消亡了,因为它们非常复杂并且倾向于鼓励缓慢的应用程序设计。仅本地 IPC 系统可以面向对象,问题更少,因为本地 IPC 更可靠且延迟更低。

根据您在做什么,在 gRPC 中使用流式调用对于定义服务器端对象的生命周期很有用。例如,您可以将流用作事务并将该流上的消息用于事务的各个部分。如果客户端崩溃,流自然会被杀死,这可以释放事务的任何资源。这不适用于长寿命的物体。


推荐阅读