RPC之Thrift系列1-----Thrit介绍

最近项目要涉及到和第三方数据交换,简单地说就是他们的系统需要从我们的系统的取一些数据。当时领导安排任务的时候,我想起了4种方案:

1)假如他们的数据库是sql server的话,那么可以直接用链接服务器的技术,给他准备一张视图即可。

2)最常用的当然是webservice了。也最简单的了。(面向消息)

3)RPC,远程过程调用。这个时候想到了Thrift。(面向方法)

4)restful api,这种面向资源的接口。(面向资源)

然后网上查了一下,他们的比较,大家可以看看下面这篇帖子:

http://kyfxbl.iteye.com/blog/1745550

当然最后的方案选择的是webservice了。毕竟可以直接发布在IIS上了,相对于.net平台,发布一个webservice太方便了。

Thriftd 介绍网上好多,我就把几个关键的写下来:

支持的数据传输格式、数据传输方式和服务模型
    (a)支持的传输格式
      TBinaryProtocol – 二进制格式.
      TCompactProtocol – 压缩格式
      TJSONProtocol – JSON格式
      TSimpleJSONProtocol –提供JSON只写协议, 生成的文件很容易通过脚本语言解析。
      TDebugProtocol – 使用易懂的可读的文本格式,以便于debug
    (b) 支持的数据传输方式
      TSocket -阻塞式socker
      TFramedTransport – 以frame为单位进行传输,非阻塞式服务中使用。
      TFileTransport – 以文件形式进行传输。
      TMemoryTransport – 将内存用于I/O. java实现时内部实际使用了简单的ByteArrayOutputStream。
      TZlibTransport – 使用zlib进行压缩, 与其他传输方式联合使用。当前无java实现。
    (c)支持的服务模型
      TSimpleServer – 简单的单线程服务模型,常用于测试
      TThreadPoolServer – 多线程服务模型,使用标准的阻塞式IO。
      TNonblockingServer – 多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式)

因为客户端和服务器所选择传输方式要一样,所以需要好好看看。

原文地址:https://www.cnblogs.com/neughj/p/5144949.html