Tag: thrift

可以从现有的java / scala接口和数据类型生成.thrift文件吗?

是否有一种简单的方法来获取现有的Java / scala数据类型和API接口并生成相应的.thrift文件? 让Thrift生成服务器数据结构是过度侵入的,因为它会产生后果: 我无法注释我的数据结构(例如,XML,JSON,hibernate持久性……) 此模式与其他想要拥有或需要修改源文件的序列化框架冲突。 结果,它看起来像thrift强制自己成为我的服务器的独有持久性格式 – 除非,我创建一个围绕Thrift的数据编组包装器或其他处理这些数据结构的持久性格式(hibernate, Jackson,scala BeanProperty,…)。 然而,这违背了自动化数据编组工具(如节俭)的目的,直接导致容易出错的世界,即必须保持相同但独立的接口和数据结构(=浪费有才华的工程师时间和能量)。 我对Thrift自动生成客户端代码感到非常满意。 但是,我(强烈)认为我需要自由编辑我的服务器在API中处理的数据结构。

RPC框架可用吗?

我希望使用RPC框架供内部使用。 框架必须是跨语言的。 我正在探索Apache Thrift。 Google协议缓冲区不能完全提供RPCfunction。 除了Thrift,我有什么选择。 (我的服务器主要是Java,客户端将是Java,Python,PHP)。

在jar启动时预加载java类/库?

我用Java编写了一个Thrift服务器来利用特定的Java包/库,但我不是一个java程序员。 问题是; 我看到第一次RPC调用服务器的超时。 子请求请求在没有任何问题的情况下执行,并且它仅影响以某些(但必不可少的)语言编写的客户端。 我当前的想法是服务器在响应时超时,因为在第一次调用时它必须加载请求所需的所有库。 一些Thrift客户端实现必须比其他实现更好地处理超时,可能会使请求保持更长时间。 在我第一次启动.jar文件时,是否有一种方法可以预加载我正在使用的库,这样第一个请求就没有延迟? 解决方案:我通过增加thrift客户端的超时来解决问题(以及其他一些问题)。 但是,我已经实现了static / Class.forName的答案,以帮助解决问题。 谢谢!

使用Hiveserver2 Thrift Java客户端时请求挂起

这是这个问题的后续问题 ,我在哪里询问Hiveserver 2 thrift java客户端API是什么。 如果您不需要任何更多背景,这个问题应该能够在没有背景的情况下站立。 无法找到有关如何使用hiverserver2 thrift api的任何文档,我把它放在一起。 我能找到的最佳参考是Apache JDBC实现 。 TSocket transport = new TSocket(“hive.example.com”, 10002); transport.setTimeout(999999999); TBinaryProtocol protocol = new TBinaryProtocol(transport); TCLIService.Client client = new TCLIService.Client(protocol); transport.open(); TOpenSessionReq openReq = new TOpenSessionReq(); TOpenSessionResp openResp = client.OpenSession(openReq); TSessionHandle sessHandle = openResp.getSessionHandle(); TExecuteStatementReq execReq = new TExecuteStatementReq(sessHandle, “SHOW TABLES”); TExecuteStatementResp execResp = client.ExecuteStatement(execReq); TOperationHandle […]