问题标签 [thrift]
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.
java - 如何在 Java 中对 Hive 进行异步调用?
我想以异步方式在服务器上执行 Hive 查询。Hive 查询可能需要很长时间才能完成,所以我不想阻止调用。我目前正在使用 Thirft 进行阻塞调用(client.execute() 上的阻塞),但我还没有看到如何进行非阻塞调用的示例。这是阻塞代码:
上面的代码缺少 try/catch 块以保持简短。
有谁知道如何进行异步调用?Hive/Thrift 可以支持吗?有没有更好的办法?
谢谢!
java - 从 Java Web 应用程序调用 ruby 库
我们已经在生产环境中运行了一个 j2ee/spring/hibernate/tomcat Web 应用程序。我们计划与提供 ruby 客户端库的 3rd 方服务( recurly )集成。他们还没有 java 客户端库。他们的服务是 RESTful 的,他们的客户端是 ActiveResource 上的一个瘦定制包装器。我可以想到几种方法来做到这一点:
a) 朱比?
b) 运行一个简单的 ruby xml rpc 守护程序,它在内部调用实际的 ruby 库?我相信 xml rpc 在 java 中很容易。
c) 节俭?
d) 实现一个与他们的 RESTful 服务对话的 java 库(更多的开发时间?)
最快的方法是什么?
erlang - Thrift 中的 Erlang 原子和元组
以下是对应的 Thrift 类型:
- 一个 Erlang 元组(我可以想象它是一个结构)
- 一个 Erlang 原子(如果有的话?)
是否有任何文档可用于 Erlang 类型和 Thrift IDL 类型之间的直接映射?
python - 集成测试:在测试之前在“unittest.setUp”期间启动一个阻塞服务器?
我正在使用Thrift编写服务,需要应用一些测试以确保它按预期运行/响应。要做到这一点,最稳健的方法似乎是使用该unittest
模块。
我想直接在单元测试的setUp
方法中以“测试”模式启动服务(在特定的“测试”端口上启动,使用“测试”数据等),但此时调用serve()
块等待连接。
启动服务的最佳方法是什么,以便可以执行测试并使用该tearDown
方法干净地关闭服务?
cassandra - 如何在 Cassandra 中插入带有 TimeUUIDType 列的行?
在 Cassandra 中,我有以下列族:
我正在尝试使用 Thrift 生成的 C++ 生成函数将记录插入其中,如下所示:
但是,我收到以下错误:“UUID 必须正好是 16 个字节”
我什至使用以下命令尝试了 Cassandra CLI:
但我仍然收到以下错误:
c# - Thrift.Transport.TTransportException:无法写入空输出流
我正在使用 Cassandra 和 Thrift 库做一些工作。我意识到这些是非常早期的库,并且(毫无疑问)会在某个时候发生变化。
我一直在使用以下链接来帮助设置我的 C# 代码以在我的 Cassandra 服务器(我在本地 VirtualBox 的 Ubuntu Server 实例中运行)写入和读取。我已经确认微不足道的读/写功能有效。
我遇到问题的地方是执行以下方法(使用 Cassandra 附带的 thrift.definition 文件为我生成):
这是我的设置代码:
我的调用代码如下所示:
这个方法的第一行是我得到异常的地方:
这是一个例外:
Thrift.Transport.TTransportException:无法在 Thrift.Protocol.TBinaryProtocol.WriteI32(Int32 i32) 的 Thrift.Protocol.TBinaryProtocol 的 Thrift.Transport.TStreamTransport.Write(Byte[] buf, Int32 off, Int32 len) 写入空输出流。在 Cassandra.cs 中的 Apache.Cassandra.Cassandra.Client.send_get_range_slice(String keyspace, ColumnParent column_parent, SlicePredicate predicate, String start_key, String finish_key, Int32 row_count, ConsistencyLevel 一致性_level) 中的 WriteMessageBegin(TMessage 消息):Apache.Cassandra.Cassandra 的第 341 行Cassandra.cs 中的 .Client.get_range_slice(String keyspace, ColumnParent column_parent, SlicePredicate predicate, String start_key, String finish_key, Int32 row_count, ConsistencyLevel 一致性_level):CassandraDemo.Models.Test.GetAllBlogEntries() 中的第 335 行 Test.cs:第 212 行在 CassandraDemo.Tests.Models。TestTest.cs 中的 TestTest.Test_GetAllBlogEntries_Success():第 42 行
有任何想法吗?
serialization - XStream <-> 替代二进制格式(例如协议缓冲区)
我们目前使用 XStream 将我们的 Web 服务输入/输出编码为 XML。但是,我们正在考虑切换到具有多种语言(protobuf、Thrift、Hessian 等)的代码生成器的二进制格式,以便更轻松地支持新客户,减少对手动编码的依赖(也更好地支持我们的包含二进制数据的消息格式) .
然而,我们在服务器上的大多数对象都是 POJO,使用 XStream 通过反射和注释处理序列化,并且这些库中的大多数假设它们将自己生成 POJO。我可以想到几种连接替代库的方法:
为目标格式编写一个 XStream 封送拆收器。
编写自定义代码以将 POJO 编组到/来自替代库生成的类。
子类化生成的类以实现 POJO 逻辑。可能需要一些重写。(我还提到我们想使用 Terracotta 吗?)
使用另一个同时支持反射(如 XStream)和代码生成的库。
但是我不确定哪个序列化库最适合上述技术。
asynchronous - Tornado 可以以非阻塞异步方式与 Cassandra 通信吗?
我正在开发一个 Web 项目,该项目必须处理如此多的客户请求。所以我正在考虑使用 Cassandra 和龙卷风。Tornado 似乎有一个内置客户端(tornado.httpclient.AsyncHTTPClient),它可以做 http 非阻塞请求。但是,Cassandra 使用 Thrift 协议。使用 Thrift,Tornado 似乎在向 Cassandra 查询时被阻止。
有没有人有经验?请建议我该怎么做。或者,是否有任何用于此目的的附加模块?
谢谢。
java - Windows 上的 Thrift / Google 协议缓冲区
查看 Thrift 和 Google Protocol Buffers 来实现一些快速的 RPC 代码。如果在 Windows 上编译生成的 C++ 代码(这是我需要的),Thrift 将是完美的。当然,GPB 创建 RPC 存根,但没有实现。
有没有办法让 Thrift Windows 友好?或者,更好的是,是否有任何可免费用于生成的 C++ protobuf 存根的 RPC 实现(Java 对应物也很好,但不是必需的)。
谢谢