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)]
?
?
?
?