thrift java客户端连接池 ,经过时间检验的发一个或者链接 110
问:如果仅仅在java客户端配置连接池,而在c++服务端不配置,这个连接池有效么,或者说对性能有提升么?非常感谢各位大牛前来分享经验还是自己回答自己的问题吧:common...
问:
如果仅仅在java 客户端配置连接池 ,而在c++服务端不配置,这个连接池有效么,或者说对性能有提升么?
非常感谢各位大牛前来分享经验
还是自己回答自己的问题吧:
common-pool2 学习:thrift连接池的另一种实现:
网页链接 展开
如果仅仅在java 客户端配置连接池 ,而在c++服务端不配置,这个连接池有效么,或者说对性能有提升么?
非常感谢各位大牛前来分享经验
还是自己回答自己的问题吧:
common-pool2 学习:thrift连接池的另一种实现:
网页链接 展开
1个回答
2017-11-23 · 【免费测试,验证码5秒必达】
北京巴卜技术有限公司
北京巴卜技术有限公司(以下简称巴卜)是具备国际水准的移动商务平台技术和应用方案提供商。自成立以来,巴卜始终 致力于为国内外企业提供具备国际技术水准的移动商务平台及运营服务。
向TA提问
关注
展开全部
ApacheThrift是一个跨语言的服务框架,本质上为RPC;当我们开发的service需要开放出去的时候,就会遇到跨语言调用的问题,JAVA语言开发了一个UserService用来提供获取用户信息的服务,如果服务消费端有PHP/Python/C++等,我们不可能为所有的语言都适配出相应的调用方式,有时候我们会很无奈的使用Http来作为访问协议;但是如果服务消费端不能使用HTTP,而且更加倾向于以操作本地API的方式来使用服务,那么我们就需要Thrift来提供支持.本文以UserService为例,描述一下使用thrift的方式,以及其原理..一.service.thriftstructUser{1:i64id,2:stringname,3:i64timestamp,4:boolvip}serviceUserService{UsergetById(1:i64id)}二.生成API文件首先下载和安装thrift客户端,比如在windows平台下,下载thrift.exe,不过此处需要提醒,不同的thrift客户端版本生成的API可能不兼容.本例使用thrift-0.9.0.exe;通过"--gen"指定生成API所适配的语言.本实例为生成java客户端API.//windows平台下,将API文件输出在service目录下(此目录需要存在)>thrift.exe--genjava-oserviceservice.thrift三.UserService实现类publicclassUserServiceImplimplementsUserService.Iface{@OverridepublicUsergetById(longid){System.out.println("invokeid:"+id);returnnewUser();//fortest}}四.原理简析1.User.java:thrift生成API的能力还是非常的有限,比如在struct中只能使用简单的数据类型(不支持Date,Collection等),不过我们能从User中看出,它生成的类实现了"Serializable"接口和"TBase"接口.其中Serializable接口表明这个类的实例是需要序列化之后在网络中传输的,为了不干扰JAVA本身的序列化和反序列化机制,它还重写了readObject和writeObject方法.不过这对thrift本身并没有帮助.TBase接口是thrift序列化和反序列化时使用的,它的两个核心方法:read和write.在上述的thrift文件中,struct定义的每个属性都有一个序号,比如:1:id,那么thrift在序列化时,将会根据序号的顺序依次将属性的"名称+值"写入inputStream中,反序列化也是如此.(具体参见read和write的实现).因为thrift的序列化和反序列化实例数据时,是根据"属性序号"进行,这可以保证数据在inputstream和outputstream中顺序是严格的.这一点也要求API开发者,如果更改了thrift文件中的struct定义,需要重新生成客户端API,否则服务将无法继续使用(可能报错,也可能数据错误).thrift序列化/反序列化的过程和JAVA自带的序列化机制不同,它将不会携带额外的class结构,此外thrift这种序列化机制更加适合网络传输,而且性能更加高效.2.UserService.Client:在生成的UserService中,有个Client静态类,这个类就是一个典型的代理类,此类已经实现了UserService的所有方法.开发者需要使用Client类中的API方法与Thriftserver端交互,它将负责与Thriftserver的Socket链接中,发送请求和接收响应.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询