• 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数据传输方式)

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

  • 相关阅读:
    解决ajax无法给js全局变量赋值的问题
    jquery对象和dom对象
    js浏览器调试
    elastic search使用
    elastic search远程测试
    elastic search安装与本地测试
    jQuery常用技巧
    Jquery操作cookie
    HTML特殊字符编码对照表
    DpQuery.js
  • 原文地址:https://www.cnblogs.com/neughj/p/5144949.html
Copyright © 2020-2023  润新知