zoukankan      html  css  js  c++  java
  • Thinking in Apache Thrift One

    Thinking in Apache Thrift One | 王晨的博客

    Thinking in Apache Thrift One

    什么是Thrift?

    关于背景信息可以Google,我就不赘述了,这里只用一句话介绍它产生的目的:
    解决跨语言的远程调用问题

    下面是废话:可以忽略

    所谓技术牛人往往极端,他发明了一种语言就要用它去做所有事情,可我们知道,任何语言都有局限性,它可能在某些情景中表现很好,但绝非全部。

    比如Java,很多公司都是从内到外都用它,甚至是Linux 脚本。基本上如果技术领域出现了什么好东西,立刻就会有Java 版本面世,比如Rails(Grails)、Python(Jython)……我不明白的是,如果你想用Grails去写一个Webapp,为什么不直接用Rails?在我看,其因有二:

    1. 人员问题,Java语言火,追随者多,自然也廉价很多;
    2. 有大量的Java 遗留代码不舍得放弃;

    问题1,恐怕只能通过招聘和忽悠兄弟转型了,俺没办法。

    问题2……YES! Apache Thrift 就是为了帮我们摆脱这种窘境。

    如何使用 Thrift

    Apache Thrift 必读文章:http://jnb.ociweb.com/jnb/jnbJun2009.html
    ,如果你在读完此文后,再看以下的内容会清晰很多。

    我们通过下图来聊一下Thrift 的开发方式:

    生成代码我们是无需修改的,我们要做的是:

    1. 选择协议实现(Protocol)
    2. 选择传输实现(Transport)
    3. 选择服务器实现(Server)
    4. 编写自己的代码

    在真正应用Thrift 时我们应遵循一些原则:

    原则一:Thrift 代码中不应包含业务逻辑。 Thrift 应该仅负责把你的本地服务Export 成为一个语言无关的远程服务,它应该尽量薄、尽量简单。Thrift 只负责将请求委托给具体的业务系统处理,并将响应正确返回。

    原则二:Thrift 是高层接口。 很多人把RPC 写成了远程DAO,那业务逻辑不是要前端去决策了么?正确的,或者说理想的开发顺序应为:一开始并没有什么Thrift服务,在前端确定了需求时,才会请求创建某种Thrift 服务。

    - 相关文章:

    • ⋯⋯⋯⋯
  • 相关阅读:
    用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql
    用sqoop将mysql的数据导入到hive表中
    windows下启动mysql服务的命令行启动和手动启动方法
    使sqoop能够启用压缩的一些配置
    简易安装sqoop
    sqoop一些语法的使用
    mysql 视图
    MySQL 函数大全及用法示例
    MySQL 触发器 -1
    MySQL 函数
  • 原文地址:https://www.cnblogs.com/lexus/p/2864934.html
Copyright © 2011-2022 走看看