Thinking in Apache Thrift One

编程技术  /  houtizong 发布于 3年前   206

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 服务。

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客