问题标签 [thrift-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1586 浏览

thrift - Apache Thrift 加密 - Java

我计划将 Thrift 用于客户端/服务器 RPC,并且我想使用 libsodium 加密交换的数据。我知道有 TLS 内置,但 TLSTransportParameters 似乎没有提供太多配置可能性。

有人知道我在哪些时候必须延长节俭才能实现这一点?

0 投票
1 回答
1981 浏览

c++ - Thrift 服务器:检测客户端断开连接(C++ 库)

运行 Thrift 服务器时,有必要处理客户端意外断开连接的情况。这可能在服务器处理 RPC 时发生。如果服务器有一个阻塞调用,该调用通常用于挂起操作以通知客户端异步事件,则这种情况并不少见。无论如何,这是一个极端情况,可以而且确实会在任何服务器上发生,并且通常需要进行清理。

幸运的是 Thrift 提供了类 TServerEventHandler 来挂钩连接/断开回调。这曾经在 Thrift 的早期版本(我相信是 0.8)中使用 C++ 库和命名管道传输。然而,在 Thrift 0.9.1 中,createContext() 和 deleteContext() 回调都会在客户端连接时立即触发。不再在客户端断开连接时触发。有没有一种新的方法来检测客户端断开连接?

代码片段:

0 投票
2 回答
525 浏览

c++ - Apache thrift“TProtocol 类”设计原理——C++,为什么需要“writeBool()”

目前,我一直在阅读“ Apache Thrift ”的源代码。更具体地说,用C++实现的代码,放在这个路径:“thrift-0.9.1.tar\thrift-0.9.1\lib\ cp”。

我一直想知道为什么“TProtocol 类”是这样设计的:

我们知道“TProtocol Class”是一个抽象类。而且这里有详细的分析:“ developermemo ”。并且说“还定义了相应的抽象工厂类,用于生产具体的协议对象,这是最常用的设计模式抽象工厂设计模式。”

但是,我想知道为什么他们定义一个函数对应的纯虚函数被调用。例如:

为什么我们需要“writeBool()”。好像没什么用。为什么我们不直接定义“纯虚函数”和“派生类”重写这些接口。

0 投票
1 回答
572 浏览

list - Thrift list 作为可变类型

摘自 thrift 网站的文档,thrift 列表是“元素的有序列表。转换为 STL 向量、Java ArrayList、脚本语言中的本机数组等”。为什么这些列表表示为可变类型?这不是促进了不利用本机数组的较慢的对象类型吗?我不明白为什么 Thrift 中的列表的默认(仅)翻译是可变数组类型。

0 投票
1 回答
585 浏览

thrift - Thrift (Apache) 在同一个线程池或线程下使用多个服务

我们使用 Apache thrift(在我们的案例中是在 Windows 上)来定义由我们的一个可执行文件公开的多个服务。我们通常最终使用新方法扩展一个服务接口,否则我们将不得不创建新线程(至少一个)来服务新定义的“节俭服务”

有没有办法在 thrift 中使用相同的底层线程来处理多个 thrift 服务定义?

0 投票
1 回答
1127 浏览

java - 尝试使用 thrift 的 TFileTransport 和 TFileProcessor 让 Python 客户端与 Java 服务器对话

我正在尝试使用 thrift 的 TFileTransport 包装要从 Python 调用的 Java 类。我尝试使用两种协议 TJSON 和 TBinary 但我不断收到此异常

这是我的 Python 客户端的外观:

这是我的服务器:

我遵循了这个线程中的示例: 关于如何在 Thrift (Client/Server) 中使用 TFileTransport 的示例

并从这篇文章: http ://theprogrammersguideto.com/thrift/blog/code/chapter-3-moving-bytes-with-transports/

0 投票
1 回答
5081 浏览

java - Thrift 无法从 json 反序列化为 java 对象

我从以下 thrift 对象生成了一个 java 对象:

我编写了一个 java 代码,试图将 java 对象序列化为 json 字符串,然后将 json 字符串反序列化回 java 对象。我可以成功序列化但无法反序列化。

它不断抛出以下异常:

谁能帮我弄清楚是什么问题?提前致谢!

0 投票
3 回答
2131 浏览

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

有没有一种简单的方法来获取现有的 Java/scala 数据类型和 API 接口并生成相应的 .thrift 文件?让 Thrift 生成服务器数据结构具有过分的侵入性,因为它会产生以下后果:

  • 我无法注释我的数据结构(例如,XML、JSON、休眠持久性,...)
  • 此模式与其他想要拥有或需要修改我的源文件的序列化框架冲突。

结果,thrift 似乎强迫自己成为我的服务器的专有持久性格式——除非,也就是说,我围绕 Thrift 或其他处理这些数据结构的持久性格式创建数据编组包装器(休眠,杰克逊,斯卡拉 BeanProperty,...)。然而,这违背了自动数据编组工具(如 thrift)的目的,并直接导致必须维护相同但独立的接口和数据结构(= 浪费有才华的工程师时间和精力)的容易出错的世界。

我对 Thrift 自动生成客户端代码非常满意。但是,我(强烈)觉得我需要自由编辑我的服务器在 API 中处理的数据结构。

0 投票
1 回答
4414 浏览

message - Apache Thrift 最大消息大小

我们使用 Apache Thrift 在两个系统之间交换消息。在其中一条消息中,我们正在交换一个可能会变得很大的列表 (c++)。您能否让我知道我们可以使用 Apache Thrift 交换的最大消息大小是多少?

0 投票
1 回答
3253 浏览

hadoop - TApplicationException:必填字段“client_protocol”未设置

我正在开发一个节俭的客户,

我已经在我的机器上构建了一个节俭的 hive 服务器(apache-hive-0.14.0),并且还可以访问 Cloudera Dist Hive 4.6.0

当我将 Thrift 客户端连接到 CDH 客户端时,会出现以下错误:

我正在将正确的协议传递给服务器,但似乎有些事情已经过时了......

此外,如果我指向本地主机(我的配置单元服务器在其中运行),一切似乎都运行良好......

请让我知道这里有什么问题......

代码: