将 gRPC 用于实例级 methods/invocation?
Using gRPC for instance-level methods/invocation?
我想 new()
建立我可以与之互动的对象。 D-BUS 提供了这个功能。有没有办法用 gRPC 做到这一点?
我可以通过定义一个服务来获得类似的结果,我可以用它来更新对象,返回一个 ID,我将它传递给其他服务方法。在服务器端,我会将 ID 与要调用的实例的内部列表相关联。我只是想知道 gRPC 中是否首先 class 支持这样的东西。
不,gRPC 没有对对象引用的 first-class 支持。 D-Bus 是一种面向对象的协议(例如,第一步是在总线上查找对象),而 gRPC 是更简单的消息传递功能。 gRPC 也没有 first-class 属性和接口的概念。
大多数通过网络的面向对象的协议,如 CORBA 和 DCOM,都已经消失,因为它们非常复杂并且倾向于鼓励缓慢的应用程序设计。本地 IPC 系统可以面向对象,问题更少,因为本地 IPC 更可靠,延迟更低。
根据您的操作,在 gRPC 中使用流式调用可用于定义服务器端对象的生命周期。例如,您可以将流用作事务并将该流上的消息用于事务的各个部分。如果客户端崩溃,流自然会被杀死,这可以为事务释放任何资源。这不适用于长寿命对象。
我想 new()
建立我可以与之互动的对象。 D-BUS 提供了这个功能。有没有办法用 gRPC 做到这一点?
我可以通过定义一个服务来获得类似的结果,我可以用它来更新对象,返回一个 ID,我将它传递给其他服务方法。在服务器端,我会将 ID 与要调用的实例的内部列表相关联。我只是想知道 gRPC 中是否首先 class 支持这样的东西。
不,gRPC 没有对对象引用的 first-class 支持。 D-Bus 是一种面向对象的协议(例如,第一步是在总线上查找对象),而 gRPC 是更简单的消息传递功能。 gRPC 也没有 first-class 属性和接口的概念。
大多数通过网络的面向对象的协议,如 CORBA 和 DCOM,都已经消失,因为它们非常复杂并且倾向于鼓励缓慢的应用程序设计。本地 IPC 系统可以面向对象,问题更少,因为本地 IPC 更可靠,延迟更低。
根据您的操作,在 gRPC 中使用流式调用可用于定义服务器端对象的生命周期。例如,您可以将流用作事务并将该流上的消息用于事务的各个部分。如果客户端崩溃,流自然会被杀死,这可以为事务释放任何资源。这不适用于长寿命对象。