读书人

Thrift入门试工

发布时间: 2012-10-27 10:42:25 作者: rapoo

Thrift入门试用

在新的项目中公司在平台内部系统间使用Thrift通讯,都没有听说过。然后听同事说,是跨语言Socket通讯的开源组件。

功能及特点

1.跨平台和语言的Socket通讯组件。

2.根据伪代码的结构语言定义对象和服务结构,然后生成各语言的代码和接口

3.各语言根据组件提供的库,编写客户端和服务器端程序。服务器端实现接口并编写业务逻辑。

4.服务器端支持多种序列化方式(Binary,Compact,JSON等)和多种服务器实现

?

太晚了,以后在完善,先贴代码了

?

本测试使用WINDOW环境和JAVA语言

?

1.下载和安装

下载地址:http://thrift.apache.org

下载最新版本,当前0.7.0

?编写服务器代码

package org.acooly.thrift.demo.client;import java.util.Calendar;import java.util.List;import org.acooly.thrift.demo.generalcode.Contact;import org.acooly.thrift.demo.generalcode.ContactManager;import org.apache.thrift.protocol.TCompactProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TSocket;import org.apache.thrift.transport.TTransport;public class ThriftClient {public static void main(String[] args) throws Exception{TTransport transport = new TSocket("localhost",8111);TProtocol protocol = new TCompactProtocol(transport);ContactManager.Client client = new ContactManager.Client(protocol);transport.open();List<Contact> list = client.getAll();System.out.println(list);client.save(new Contact(1,"zhangpu",Calendar.getInstance().getTimeInMillis(),"1389612222","192.168.2.1",null));client.remove(1);transport.close();}}
?

?

7.启动和测试运行

1.运行ThriftServer

2.运行ThriftClient

?

ThriftServer输出:

invoke: save,contact = Contact(id:1, name:zhangpu, birthday:1308591769148, phoneNo:1389612222, ipAddress:192.168.2.1, props:null)
invoke: remove,id = 1

?

ThriftClient输出:

[Contact(id:1, name:zhangpu, birthday:1308591769131, phoneNo:1389612222, ipAddress:192.168.2.1, props:null)]

?

?

?

?

读书人网 >编程

热点推荐