Thrift RPC 从 c# 中的 thrift 客户端失败到在 HBase 服务器上旋转的 thrift 服务器

Posted

技术标签:

【中文标题】Thrift RPC 从 c# 中的 thrift 客户端失败到在 HBase 服务器上旋转的 thrift 服务器【英文标题】:Thrift RPC failing from a thrift client in c# to a thrift server spinned over HBase server 【发布时间】:2014-01-06 12:42:36 【问题描述】:

我正在做一个项目,我正在尝试从 C# 客户端通过 thrift 服务器与 HBase 服务器进行通信。

我已经设置了 HBase 服务器。我能够打开插座。

调用API时:_hbase.getTableNames(),抛出异常;我踏入了这个功能, 它在内部调用 - send_getTableNames();recv_getTableNames();

第一个函数通过(在内部他们正在写入套接字)但在第二个 他们试图从套接字读取的函数并且客户端节俭代码正在接收零字节, 因此它抛出了一个异常。

这可能是什么原因?

注意:服务器上安装了 HBase 0.92.0,并在 thrift 服务器端使用 HBase.thrift。 但在客户端,我们使用的是 HBase 0.94.0 附带的 HBase.thrift 文件。 我猜这可能是原因(虽然我可能不正确)。

以下是客户端失败的代码sn-p:

transport.Open();                 
var names = _hbase.getTableNames();

【问题讨论】:

请添加异常详情。可能会有所帮助。 【参考方案1】:

我在 EMR 上使用 AWS HBase,然后在 HBase 服务器上运行节俭服务器。在设置 thrift 服务器时,AWS 管理控制台中有一个选项可以设置允许的 IP 地址和端口号。我允许端口号为 9000 ,但 thrift 服务器侦听端口号 9090。一旦我将端口号 9090 添加到允许的端口号列表中,我就能够连接到它。

【讨论】:

以上是关于Thrift RPC 从 c# 中的 thrift 客户端失败到在 HBase 服务器上旋转的 thrift 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Thrift 简单实现C#通讯服务程序 (跨语言 MicroServices)

Thrift总结介绍

RPC-Thrift

RPC原理与实践----Thrift分层模型

Thrift写RPC接口

Thrift总结创建RPC服务