【问题标题】:Passing Thrift service as argument传递 Thrift 服务作为参数
【发布时间】:2017-08-08 15:51:38
【问题描述】:

是否可以将服务作为参数传递给 Thrift 中另一个服务中的方法?

service MyService {
  void foo(1: MyOtherService),
}

service MyOtherService {
  void bar(),
}

【问题讨论】:

标签: thrift


【解决方案1】:

服务不是 Thrift 可序列化的(换句话说:通过网络传输服务是没有意义的 - 您的 foo 函数将在远程机器上使用传输的参数执行)。

我认为不是

什么是真正的目标? 我有直觉你想要好的 OO 模式。 这种参数化吗?

【讨论】:

  • 例如gRPC/protobuf 提供内置流,这可能是一种用例。如果您以合适的方式设计 API,则可以使用 Thrift 进行模拟
  • 目标是允许以不同的语言部分实现服务。服务将依赖于方法的签名,而不是它们的实现。但是,这在原生 Thrift 中似乎是不可能的。
  • 0。同意签名!=实现。 1. Thfit 解决方案完全可以使用混合语言,但是.... 2. 每个管道都有两端。我了解您希望在社区中为另一方在同一端工作的两个(部分)服务。问题:来自同一个世界的不同语言,例如Java/.NET?这将非常简单
猜你喜欢
  • 2020-10-26
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多