将 gRPC 用于实例级方法/调用?



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

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

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

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

根据你正在执行的操作,在 gRPC 中使用流式处理调用对于定义服务器端对象的生存期非常有用。例如,您可以将流用作事务,并将该流上的消息用于事务的各个部分。如果客户端崩溃,流自然会被杀死,这可以释放事务的任何资源。这对于长期生存的对象效果不佳。

最新更新