zoukankan      html  css  js  c++  java
  • 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数据传输方式)

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

  • 相关阅读:
    高中数学运算能力训练题
    vue @click.native
    vue_qqmapdemo1
    vuxdemo1
    使用命令行打开vscode
    nextjs-demo
    material-ui里面的withStyles是什么?
    material(一)
    有趣的npx
    在macbookpro上开启ssh服务
  • 原文地址:https://www.cnblogs.com/neughj/p/5144949.html
Copyright © 2011-2022 走看看