thrift客户端连接池封装

本篇只是在实际中使用的一个例子,thrift具体的源码分析请参考网上其它同行的高见。可以参考:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/。在使用的过程中发现,thrift的一个客户端不是线程安全的,如果有多个线程同时请求信息就会报错。我加了一个thrift客户端连接池,每个线程可以从thrift客户端连接池中获取一个thrift客户端。这个thrift客户端连接池是基本common-pool2实现的(关于common-pool2详细可以参考:http://www.youxijishu.com/h-nd-152-2_323.html)。

一,下载安装包和Java依赖包

http://thrift.apache.org/download

(1)Java项目maven 引用:

<dependency>

 <groupId>org.apache.thrift</groupId>

 <artifactId>libthrift</artifactId>

 <version>0.9.3</version>

</dependency>

(2)windows编译工具

http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.3/thrift-0.9.3.exe

二,thrift文件编写

  thrift是跨平台的rpc工具,所以它类似与protobuffer,有一个定义格式的脚本IDL语言,需要手动编写,可以参考:http://thrift.apache.org/docs/types,上面有它支持的数据类型。编写好之后(这里有一个官方的IDL语言例子:https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob_plain;f=test/ThriftTest.thrift;hb=HEAD),使用thrift-0.9.3.exe生成相应的平台代码。我们这里使用的是Java。

 

三,简单通信的例子

  1,.thrift文件

namespace java yhhx.rpc.impl

 

service LoginServerRpc {

bool isLogin(1:i64 userId,2:string token)

}

 

这个游戏逻辑服务器是向登陆服务器请求验证这个游戏玩家是否登陆了的一个rpc调用。

 

2,生成类

运行工具:thrift-0.9.3.exe -r --gen java UserService.thrift

 

3,实际调用

本来是贴代码的,发现代码太多了,有点凑页的嫌疑。就压缩了一个包,有需要的可以去下载。这个源码没有加完成的包结构,只是纯粹的代码,代码类也不是太多,供参考使用。

 

 

 更多游戏技术资料请参照:游戏技术网http://www.youxijishu.com/

转载于:https://www.cnblogs.com/youxijishu/p/6118482.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值