`

Thrift的一些总结(Java开发)

阅读更多

 

Client的开发顺序为:

 

1、定义Tsocket

 

2、将Socket包装到Transport(记得Transport要open() )

 

3、将Transport包装进Protocol

 

4、将Protocol包装到Client

 

5、调用Client的函数

 

6、最后关闭Transport

 

总之,Client就是“一步一步包进去“的过程:

 

  1. <span style="white-space:pre">    </span>//定义一个Socket  
  2.         TSocket socket=new TSocket("localhost"8888);  
  3.         //定义一个transport层,这里使用NIOtransport  
  4.         TTransport transport=new TFramedTransport(socket);  
  5.         //打开transport层!!!!!!!  
  6.         transport.open();  
  7.         //定义一个protocol层,这里使用BinaryProtocol  
  8.         TProtocol protocol=new TBinaryProtocol(transport);  
  9.         //(客户端缺了个Processor层),所以不用定义  
  10.         //定义client  
  11.         Echo.Client client=new Echo.Client(protocol);  
  12.         //调用client,使用client的函数  
  13.         System.out.println(client.getEcho("Hello World!"));  
  14.         //关闭client  
  15.         transport.close();  

 

Server的开发顺序为:

 

1、实现service的Iface,生成Handler

 

2、将Handler包装到Processor

 

3、定义一个ServerSocket

 

4、将ServerSocket包装到Server.Args对象中

 

5、使用“搭积木”的方式不断搭建args(Server的参数),包括Processor,Protocol,Transport等

 

6、最后将Args包装进Server

 

7、启动Server

 

总之,Server采用“填参数”的方法搭建起来:

 

  1. <span style="white-space:pre">    </span>//定义一个Processor层,包装Handler  
  2.         Echo.Processor processer=new Processor(new EchoHandler());  
  3.         //定义一个ServerSocket  
  4.         TNonblockingServerSocket serverSocket=new TNonblockingServerSocket(8888);  
  5.         //定义一个服务器参数对象,包装Socket  
  6. //      单线程nio模式  
  7. //      TNonblockingServer.Args serverArgs=new TNonblockingServer.Args(serverSocket);  
  8. //      one selector,n worker模式  
  9. //      THsHaServer.Args serverArgs=new THsHaServer.Args(serverSocket);  
  10. //      n selector ,n worker模式  
  11.         TThreadedSelectorServer.Args serverArgs=new TThreadedSelectorServer.Args(serverSocket);  
  12.         //参数对象使用连续搭建模式,搭建出processor层,protocol层,和Transport层  
  13.         serverArgs.processor(processer)  
  14.                     .protocolFactory(new TBinaryProtocol.Factory())  
  15.                     .transportFactory(new TFramedTransport.Factory())  
  16.                     .workerThreads(8)//Hsha和ThreadSelector特有的参数  
  17.                     .selectorThreads(2);//ThreadSelector特有的参数  
  18.         //创建Server,传进参数对象  
  19. //      TServer server=new TNonblockingServer(serverArgs);  
  20. //      THsHaServer server =new THsHaServer(serverArgs);  
  21.         TThreadedSelectorServer server=new TThreadedSelectorServer(serverArgs);  
  22.         //启动Server  
  23.         System.out.println("server start...");  
  24.         server.serve();  



注意:使用NIO模式时都要使用TFramedTransport,BIO不多加阐述

分享到:
评论

相关推荐

    Thrift-java学习小结

    本文将基于Thrift的Java实现,总结学习过程中的一些关键知识点,旨在帮助理解Thrift的工作原理以及如何在Java环境中应用。 一、Thrift简介 Thrift是一种远程过程调用(RPC)框架,它通过定义一种中间描述文件(....

    thrift 的 java 和 python结合例子

    总结起来,Thrift是实现跨语言服务调用的强大工具,通过其IDL和生成的代码,开发者可以轻松地在Java和Python等不同语言之间建立高效、可靠的通信。这个例子提供了学习和实践Thrift的一个基础起点,对于理解跨语言...

    thrift java build jar

    总结,使用 Thrift 在 Java 环境下构建 `.jar` 文件涉及了多个步骤,包括安装 Thrift、编写 IDL、生成 Java 代码、构建项目以及打包。这个过程有助于实现跨语言服务通信,提高系统的可扩展性和效率。通过遵循上述...

    Thrift Java 服务器 客户端通信

    总结来说,Thrift在Java中的服务器和客户端通信涉及以下几个关键步骤: 1. 定义服务接口(IDL文件)。 2. 使用Thrift编译器生成Java代码。 3. 实现服务处理逻辑(服务处理器)。 4. 创建Thrift服务器并启动服务。 5....

    Thrift下java服务器与客户端开发指南

    总结来说,Thrift 提供了一种高效、简洁的方式来构建分布式系统,通过定义服务接口和数据类型,自动生成跨语言的客户端和服务器端代码。在 Java 平台上,你可以利用这些生成的类创建服务器,处理客户端请求,并通过...

    Android平台Thrift服务端开发总结

    总结来说,Android平台上的Thrift服务端开发涉及了Thrift IDL的编写、编译器的使用、服务接口的实现、服务器的配置以及客户端的调用。这需要对Thrift框架、Android服务、网络编程以及安全性有深入的理解。通过合理的...

    thrift实现http协议案例

    Thrift是一种高效的、跨语言的服务框架,最初由Facebook开发,现在是Apache的顶级项目。它提供了强大的代码生成工具,可以从接口定义文件(IDL)生成多种编程语言的客户端和服务端代码,使得不同语言之间可以轻松地...

    Thrift下java服务器与客户端开发指南.pdf

    《Thrift下Java服务器与客户端开发指南》 Thrift 是一个高效的跨语言服务开发框架,由Facebook开源,主要用于构建可扩展且跨平台的服务。它通过定义一种中间表示(IDL,Interface Description Language)来描述数据...

    基于thrift的RPC调用实例

    在本实例中,我们将关注一个基于Thrift的RPC调用实现,Thrift是由Facebook开发的一种高效的跨语言服务开发框架。 Thrift的核心思想是定义一种中间描述文件(.thrift),该文件包含了服务接口、数据结构以及服务间的...

    thrift总结 - 跨语言服务开发

    在本例中,`thrift总结.txt`可能包含编译命令及生成的代码目录结构,如`gen-java`目录,其中包含了Java客户端和服务端的接口及数据结构实现。 3. **服务端实现** 在Java中,我们可以实现`DemoService.Iface`接口,...

    thrift包及其源码

    总结,这个“thrift包及其源码”为学习和使用Thrift提供了一个良好的起点,通过阅读源码,我们可以深入理解其设计原理,提高自己的分布式服务开发能力。对于开发者来说,这是一份宝贵的资源,有助于提升对跨语言通信...

    Laravel开发-thrift-laravel

    总结,Laravel开发与Thrift-Laravel的结合,让开发者能够充分利用Laravel的便利性和Thrift的高性能特性,构建出可扩展、易于维护的分布式系统。通过理解和掌握Thrift-Laravel,开发者可以提升服务之间的通信效率,...

    Java中使用Thrift实现RPC示例代码.rar

    总结起来,这个"Java中使用Thrift实现RPC示例代码"涵盖了Thrift服务的定义、Java代码的生成、服务端与客户端的实现,以及可能的Netty集成。通过学习这个示例,开发者可以深入理解Thrift在Java环境中的工作方式,以及...

    Thrift简单调用demo代码

    Thrift是一种跨语言的服务开发框架,由Facebook于2007年开源,旨在解决大规模分布式系统中的通信问题。它的核心是定义了一种IDL(接口定义语言),允许开发者以一种声明式的方式定义服务,并能自动生成多种编程语言...

    maven-thrift-server

    在软件开发中,Thrift是一种高效的跨语言服务开发框架,由Facebook开发并开源。它允许定义数据类型和服务接口,然后自动生成各种编程语言的代码,使得不同语言的系统之间可以进行无缝通信。Maven作为Java项目管理...

    thrift环境搭建(内附thrift运行环境可执行程序、搭建说明文本)

    总结,搭建Thrift环境涉及下载源码、编译安装、配置环境变量以及编写和编译IDL文件。有了这个环境,你就可以开始利用Thrift的强大功能开发高效的跨语言服务。提供的“thrift环境搭建”压缩包应该包含了必要的可执行...

    thrift+依赖包整合

    总结起来,"thrift+依赖包整合"是一个包含了Thrift核心库、源码及必需的Java依赖的集合,适用于Windows 7系统。它使得开发者能够快速地搭建和运行Thrift服务,无需担心依赖缺失的问题,从而更专注于业务逻辑的实现。...

    maven ant thrift0.9.0

    总结一下,Thrift 0.9.0提供了跨语言的服务接口定义和实现,Ant用于定制化的项目构建,而Maven则用于更高级的项目管理和依赖解析。这三者结合使用,可以有效地在不同编程语言之间搭建和管理分布式系统。在实际操作中...

    thrift jar包及相关学习步骤

    标题“thrift jar包及相关学习步骤”意味着我们将探讨Thrift在Java环境中的应用,以及如何使用Thrift的jar包进行服务开发。Thrift的jar包通常包含编译器、运行时库和相关的工具,这些都对理解和使用Thrift至关重要。...

Global site tag (gtag.js) - Google Analytics