ipc - 将 gRPC 用于实例级方法/调用?
问题描述
我想new()
增加可以与之交互的对象。D-BUS 提供此功能。有没有办法用 gRPC 做到这一点?
我可以通过定义一个服务来获得类似的结果,该服务可用于新建对象,返回一个 ID,然后将其传递给其他服务方法。在服务器端,我会将 ID 与要调用的内部实例列表相关联。我只是想知道在 gRPC 中是否对类似的东西有一流的支持。
解决方案
不,gRPC 没有对对象引用的一流支持。D-Bus 是一种面向对象的协议(例如,第一步是在总线上查找对象),而 gRPC 是具有消息传递的更简单的函数。gRPC 也没有属性和接口的一流概念。
大多数通过网络的面向对象协议,如 CORBA 和 DCOM,已经消亡了,因为它们非常复杂并且倾向于鼓励缓慢的应用程序设计。仅本地 IPC 系统可以面向对象,问题更少,因为本地 IPC 更可靠且延迟更低。
根据您在做什么,在 gRPC 中使用流式调用对于定义服务器端对象的生命周期很有用。例如,您可以将流用作事务并将该流上的消息用于事务的各个部分。如果客户端崩溃,流自然会被杀死,这可以释放事务的任何资源。这不适用于长寿命的物体。
推荐阅读
- java - 处理 onClick 和双击
- python - 如何在python中剪切一个熊猫列,并使另一列的长度相等?
- c - 将数组的指针传递给C中的函数
- ios - 自动布局和线性方程
- android - Android应用程序动态打开/关闭wifi热点
- python - 一段时间后,Selenium 中的 Chrome 驱动程序运行速度极慢
- javascript - 如何避免 JavaScript 中的“超出最大调用堆栈大小”错误?
- c++ - 分段错误(C++ 指针)
- java - SNIHostName 的 NoClassDefFoundError 异常
- django - 在 django 中为 geojson 数据创建 API