Thrift Python入门者的经验

Posted on Fri 16 March 2012 in it • Tagged with Python, Thrift

缘起

新阳创建了一个基于Thrift的开发平台。除了基于Thrift服务本身,最吸引人的地方在于这个平台提供了服务框架生成(支持Java和Php)、注册发布和监控的集成,他们事业部好多新起的SOA服务项目都是在这个平台下开发的。 在新阳的大力倡导和帮助下,我们部门也开始尝试接入这个平台。为了能够整合进去,首先得要在基于Python的基础架构上整合fb303。

经过一周多,利用边角时间写了ThriftPy工程。可以指导大家开发基于Thrift的Python实现(详见ThriftPy/readme)

而在开发的过程中,碰到了一些很有趣的问题但无法写入开发指导,所以就有了这篇文字。

开发经验分享

一个好软件的源代码看起来一定是清晰而舒服的,在编写过程中对开发效率和运行效率的权衡经过了深思熟虑。

Thrift开发约定(目录结构、命名、注释等)

要想保证Thrift开发工程的清晰一致,一定需要对开发进行约定。

目录结构约定

src gen-py : thrift gen 生成的python代码 py : 手工编写的代码 test : 测试代码 if : idl--*.thrift

==== 命名约定 ====

'''IDL''' -- IDL中定义的结构和服务要进行最详细的注释 /* * Scan Service * /

service ScanService extends ...


Continue reading

Creating A Thrift Service Step by Step

Posted on Sun 09 October 2011 in 我用(IT) • Tagged with SOA, Thrift

  1. 生成基础代码 1) 创建接口定义文件
    namespace java com.li3huo.thrift.example

struct UserProfile { 1: i32 uid, 2: string name, 3: string email } service UserStorage { void store(1: UserProfile user), UserProfile retrieve(1: i32 uid) } 2) 生成Java基础代码

thrift -r -gen java:java5 example.thrift
2. 在eclipse中编写代码 1) 创建eclipse工程
mkdir java #own code mkdir ...


Continue reading

Thrift Quick Start

Posted on Sat 08 October 2011 in 我用(IT) • Tagged with SOA, Thrift

Thrift的入门文档需要更新

运行Thrift的应用(Java)

其实Thrift不用安装就能跑。 为了安装Thrift,在Mac(Lion)上还得装Xcode4才能configuration和make,Turorial的顺序不是最简单路径。 应该准备一个QuickStart(只要提供tutorial.jar,80多k的jar包就够了),让大家直接拿一个可运行的程序,这样能吸引更多新手啊。 如果手头儿没有现成儿可以跑的程序,那就得安装Thrift(Gen Java Code)之后编译示例文件从头开始生成tutorial.jar了。

安装Thrift

从主站进入,下了个thrift-0.7.0.tar.gz,解开,没看明白怎么用; 不急,打开Turorial页面,写得非常简单,再结合解开的东西,还是没明白; 不急,打开$thrift/README,按Installation的提示进行安装
chmod +x configure ./configure ./make sudo ...


Continue reading