当前位置: 首页>>搜索引擎>> 阅读正文

使用Thrift RPC编写程序

Category: 搜索引擎 View: 51,421 Author: Dong
, , ,

  • 评论 (12)
  • 引用通告 (5)
发表评论 发起引用

  • 1楼ydzhang 回复

    Post: 2011-12-18 06:16

    写的很好,谢谢。

    [回复]

  • 2楼Dong 回复

    Post: 2011-12-18 08:38

    @ydzhang, 多交流,呵呵。

    [回复]

  • 3楼无极 回复

    Post: 2012-01-04 01:27

    请问下Thrift一般用在什么范围的?
    比如我要做一个服务,客户端请求调用数据想尽量简单,通用化,不知道适合用Thrift不.

    网上关于Thrift的文章很少,大概了解了下觉得是大型系统内部解耦的一个桥梁,那是否以为这服务端跟客户端都需要用到Thrift呢?

    [回复]

    Dong 回复:

    可以把服务器看成一个提供服务的机器,里面有很多API,客户端可以远程调用这些API获取服务,这时候可以使用thrift。thrift会自动生成客户端和服务器端代码,你只需要实现以下服务器端具体的服务内容就OK了,他们之间的协议和数据传输由thrift内部完成。 thrift特点是跨语言(服务器端和客户端可使用不同语言),通用RPC,兼容性好(改变数据格式很方便)。

    [回复]

  • 4楼yvette 回复

    Post: 2012-01-11 02:21

    请问运行代码时出现这个错误,该怎么解决呢?

    /usr/local/include/thrift/protocol/TVirtualProtocol.h:523:52: error: cannot convert from base ‘apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TBinaryProtocolT, apache::thrift::protocol::TProtocolDefaults>’ to derived type ‘apache::thrift::protocol::TBinaryProtocolT’ via virtual base ‘apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TBinaryProtocolT, apache::thrift::protocol::TProtocolDefaults>’

    [回复]

    asdf 回复:

    应该是抽象类方法没有全部实现。

    [回复]

  • 5楼artist 回复

    Post: 2012-07-07 09:33

    楼主的文章很好呀,不知楼主是否知道 如何在Hbase的 thrift 模块里面添加接口,hbase自带的thrift api 不是很能满足需求,谢谢

    [回复]

  • 6楼Daisy 回复

    Post: 2012-10-10 03:06

    请问楼主为什protocol,transport等都声明成shared_ptr这种类型?

    [回复]

  • 7楼evenson 回复

    Post: 2012-11-28 15:04

    请问:
    1. rpc服务器端函数响应时,怎么获取客户端的上下文信息?
    2. 怎么定制服务器listen的socket,比如我在多网卡环境下绑定特定的网卡?

    [回复]

    Dong 回复:

    用到了java中的反射机制,自己可以看一下。

    [回复]

    evenson 回复:

    如果是c++呢,可否实现类似于protobuf的反射机制?

    关于客户端上下文信息的一个应用场景:
    客户端重复调用一个rpc函数来实现注册,在服务器端应该过滤调这些重复的(或者说是状态错误的)请求的。这就需要得到客户端的上下文信息了。rpc函数响应时怎么得到?

    [回复]

    Dong 回复:

    Protocal buffler支持C++啊,另外,有很多开源的c++ rpc库,自己可找找看,。

    [回复]

  • 8楼dht 回复

    Post: 2012-12-16 11:02

    生成了中间代码后,需要把生成的代码放入client端目录下吗?还是说,client端建议socket连接后,可以直接远程调用server端的api了?谢谢。

    [回复]

    Dong 回复:

    就是C/S模型,先启动S,然后C可访问S

    [回复]

  • 9楼sarlmolchen 回复

    Post: 2013-05-10 08:29

    有没有测试过thrift server的性能呢?c++的可以达到多少qps 长连,python的呢?

    [回复]

  • 10楼thrift 回复

    Post: 2013-07-05 02:35

    5、(1) 使用thrift进行对象序列化 (2) 使用thrift进行对象反序列化

    这两个标题写反了?

    [回复]

    Dong 回复:

    没有。

    [回复]

    thrift 回复:

    shared_ptr socket(new TSocket(“localhost”, 9090));
    应该为:shared_ptr socket(new TSocket(“localhost”, 9090));?

    [回复]

    thrift 回复:

    ..好像尖括号被屏蔽了。client代码中main下来第一行有笔误。

    [回复]

    thrift 回复:

    弱问:为何Object2str不是反序列化,而是序列化?membuffer的内容读出并解析为str不是反序列化?

    [回复]

  • 11楼sainth 回复

    Post: 2013-07-23 04:57

    楼主好, 问一个基础问题。
    编译生成libthrift.lib和thriftnb.lib后 如何使用它们呢?
    我已经写好.thirft文件并用–gen cpp 生成了代码,并粘贴到新建立的一个项目中。 然后项目-属性-链接器-常规-附加库目录和 项目-属性-链接器-输入-附加依赖项 都设置了 添加了生成的两个lib文件, 但是代码中的 #include 依旧显示找不到文件啊~

    [回复]

  • 12楼小于 回复

    Post: 2014-10-31 03:40

    TSSLTransportParameters怎么使用,提示总找不到证书文件,比如说官方的例子代码中的.keystore

    [回复]

发表评论