日期:2014-05-16  浏览次数:20957 次

【转】Apache Thrift - 可伸缩的跨语言服务开发框架(代码已修正)

个人学习参考所用,勿喷!

?

原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/index.html

?

对原文的修改:

1.原文的服务器端代码的BUG,不论是0.8.0还是0.6.1版本的thrift,例如以下的创建server的方式都不对(正确结果看修正后的文中代码):

Java代码??收藏代码
  1. TServer?server?=?new?TThreadPoolServer(processor,?serverTransport,?proFactory);???
Java代码??收藏代码
  1. TServer?server?=?new?TThreadPoolServer(processor,?serverTransport,?proFactory);???

2.增加了maven的构建方式。

3.修正启动server时候的"Failedto load class org.slf4j.impl.StaticLoggerBinder"的BUG,参考地址:http://www.slf4j.org/codes.html#StaticLoggerBinder

4.附件为maven构建的工程代码

?

前言:

? ? ? ??目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等。其中所用到的数据传输方式包括 XML,JSON 等,然而 XML 相对体积太大,传输效率低,JSON 体积较小,新颖,但还不够完善。本文将介绍由 Facebook 开发的远程服务调用框架 Apache Thrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。本文将详细介绍 Thrift 的使用,并且提供丰富的实例代码加以解释说明,帮助使用者快速构建服务。