问题标签 [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 回答
745 浏览

javascript - 在 js 中使用 thrift 而不依赖 thrift RPC

我目前正在开发一个项目,该项目需要使用多种编程语言(包括 js)的多个平台与 Java 服务器进行通信。

目前该协议正在使用 thrift 序列化所有平台上的数据,但每个平台都使用自己的传输机制将数据传输到服务器(在那里它被反序列化)。

但是在 js 中,由于它缺少二进制协议(TBinaryProtocol),这似乎是不可能的。

是不是这样,js就不能简单的把数据序列化(我不介意把数据序列化成json-thrift格式)再用其他方法发送?

谢谢

0 投票
6 回答
13308 浏览

java - Cassandra-cli 无法连接到远程 cassandra 服务器

我有一个在服务器(serv1)上运行的 cassandra 服务器。cassandra-cli 在 serv1 上运行时可以连接到它。但是,当我尝试通过其他服务器(serv2)连接到它时,出现以下异常:

我查看了 cassandra.yaml,发现属性“listen_address”配置为“localhost”,并且严重不鼓励使用 0.0.0.0。我试图将 localhost 更改为 serv2,serv1 的 IP 地址,但没有任何效果。即使注释掉也无济于事。

有没有办法让我的 cassandra 服务器在不使用 0.0.0.0 的情况下监听所有 IP

0 投票
2 回答
2324 浏览

thrift - 如何在 Thrift IDL 中使用 java 内置异常

我想在 Thrift IDL 中抛出一些 java 内置异常,例如 IOException。

像这样:

服务 B{
     void removeLease() throws (1:ioexception e),
}

但是,Thrift 编译器警告说没有定义 ioexception。

0 投票
2 回答
1548 浏览

c# - 将您自己的通信协议与 apache thrift 一起使用?

我想知道是否可以只使用 apache thrift 的序列化部分。

我基本上已经创建了一个自定义通信协议,并且想将一个节俭对象从我的服务器 (PHP) 传递给客户端 (C#)。

我自己开发的通信协议基本上是 JSON。我想使用 thrift 在 PHP 端正确构造对象,然后通过 JSON 发送它,然后我的 C# 应用程序将使用 thrift --gen csharp myfile.thrift 生成的类重新构造对象

有谁知道这是否可能或我将从哪里开始?我会以某种方式重载 TProtocol 吗?

0 投票
1 回答
5057 浏览

java - Thrift:序列化 + 反序列化更改对象

我有一个这样的节俭结构:

这个想法是能够在单个“管道”上传递不同类型的节俭对象,并且仍然能够在另一端正确反序列化。

但是序列化一个GeneralContainer对象,然后反序列化它会改变data字段的内容。我正在使用TBinaryProtocol

我的猜测是,当我们使用TBinaryProtocol. 那是对的吗?如果是,我对协议有哪些选择?我的目标是最小化生成的序列化字节数组的大小。

谢谢,阿曼

0 投票
1 回答
886 浏览

c# - 运行 Thrift C# 教程的问题

我是新手,需要了解 Thrift RPC 框架的具体细节。为此,我下载了计算器教程(由客户端和服务器组成)。

我认为这将是了解引擎盖下发生的事情的最佳方式。

我已经能够做到以下几点

  1. 生成 thrift.dll 文件
  2. 生成创建 dll 所需的 csharp shource 文件 -calculator.thrift.dll
  3. 为客户端和服务器创建一个由两个项目组成的项目。(注意客户端项目是控制台应用,服务器是类库)

我正在从客户端项目的主要方法中复制一些代码以供参考

尝试执行上述行时,系统会产生错误。

错误如下。

无法建立连接,因为目标机器主动拒绝它 127.0.0.1:9090

想到的一个明显的解决方案是防火墙。我创建了一些防火墙规则以允许端口 9090 上的连接。但错误仍然存​​在。

任何有套接字连接和/或节俭使用经验的人都可以指导我解决这个错误吗?

提前致谢

罗米

0 投票
1 回答
1794 浏览

python - 使用 Django 的非阻塞 Thrift-Server

我需要通过Thrift接口访问来自 Django webapp 的数据。我想以非阻塞方式执行此操作(例如,使用 libevent/gevent ......)但是周围没有很多示例实现(在 python 中),所以我想在这里询问任何示例/提示/经验!

请注意,这个问题是关于使用 Thrift,而不是任何其他协议,我知道为此目的可能有比 Django 更好的框架,但使用它也是一个要求!

0 投票
1 回答
5145 浏览

python - 为什么 Thrift Binary 协议序列化这么慢?

我是节俭的新手。我用python写了一个thrift服务器,也用python写了一个客户端。

这是我的节俭定义:

这是我的服务器端:

客户端:

cProfile 结果:

在我的例子中,TableRatingByReport 实例有一个包含 1400 行(list\)的主体,生成二进制内容的成本超过 3 秒(函数 *process_rating_byreport*,由 thift 自动生成)。我不知道为什么这么慢。

使用 json 序列化相同的数据,只需不到 200 毫秒。

我想知道我是否使用不正确的方式来操纵节俭?

谢谢。

0 投票
2 回答
2589 浏览

python - Thrift 服务器对于简单的操作来说真的很慢

我正在运行一个简单的 Thrift 服务器(http://thrift.apache.org/)作为 Python(服务器)和 Haskell(客户端)之间的跨语言平台。唯一需要发送的数据结构是双精度的 3 元组,因此服务器/客户端实现也非常简单 - 只需遵循教程即可。

然而,它真的,真的很慢!当我需要大约 0.1 秒或更低的时间时,每个服务器响应的响应时间约为 0.5 秒。

有人对如何加快速度有任何想法吗?您可以在下面看到我的简单服务器实现:

客户端只需通过运行查询该服务器

进而

据我所知,这都是非常标准的!怎么这么慢??

谢谢!

0 投票
1 回答
163 浏览

.net - 节俭的 IDL 生成

是否可以从 C# 生成 Thrift IDL?这样做是否有意义?

我有一个 REST 服务、.net45、WebAPI、JSON。我想将其移至 Thrift,并且我正在寻找创建所需 IDL 的快捷方式,因为我已经在 C# 中定义了合同。