我有一个虚拟节点集群。每个操作系统都是ubuntu
。我需要将.thrift
上传到每个节点并生成.thrift
。
我的问题是这一代并不包括这些功能的实现。据我所知,thrift依赖于操作系统。当虚拟机运行win10
ubuntu
在本地计算机上生成,实现并测试后,有没有办法将实现添加到.thrift
,以便在下一次生成api时实现?
如果重要的话,用Python实现代码。
答案 0 :(得分:1)
简单地说,Thrift是关于在端点之间定义API或服务契约。 Thrift 中的代码生成步骤通常发生在开发时间,而不是在运行时。由于几个原因,实施不是该合同的一部分。
正如您所正确注意到的,特别是在RPC用例中,客户端和服务器可能位于不同的平台上,并且可能使用不同的语言编写。但即使它是同一个平台而且只有一种语言,合同及其实现仍然是两个不同的东西,它们应该是。
将.thrift
IDL文件上传到服务器并让该服务器“动态”生成端点加实现的用例不仅对我来说有点奇怪,它也不是我所说的典型的Thrift用例。最后,就安全性而言,这种情况很快就会陷入噩梦。
如果我们不知道确切的数据结构,那么在IDL中建模数据的方法显然需要非常通用。或者,在这种情况下,使用Avro(旨在在运行时处理灵活的数据结构)或完全不同的方法可能更适合。