Thrift通常以独立服务存在,也支持HTTP协议,以servlet方式在Tomcat中运行。
一. 服务端Servlet
实现比较简单,只需实现TExtensibleServlet,并在getProcessor()中填充实现类。
/** * Thrift servlet */ @WebServlet(name="thrifttest",value="/thrifttest") public class ThriftService extends TExtensibleServlet { private static final long serialVersionUID = 1L; @Override protected TProtocolFactory getInProtocolFactory() { TProtocolFactory factory = new TCompactProtocol.Factory(); return factory; } @Override protected TProtocolFactory getOutProtocolFactory() { TProtocolFactory factory = new TCompactProtocol.Factory(); return factory; } @Override protected TProcessor getProcessor() { // 接口实现类 ThriftServiceImpl impl = new ThriftServiceImpl(); // 返回处理器 TProcessor tProcesser = new SimpleThriftService.Processor<SimpleThriftService.Iface>(impl); return tProcesser; } }
二. 客户端
/** * Http thrift client */ public static void httpClient() { String url = "http://host:8080/servlet3/thrifttest"; try { TTransport transport = new THttpClient(url); TProtocol protocol = new TCompactProtocol(transport); // HTTP通信协议 SimpleThriftService.Client client = new SimpleThriftService.Client(protocol); transport.open(); int val = client.getInt(10); // 调用方法 System.out.println( "Val: " + val ); transport.close(); } catch (TException e) { e.printStackTrace(); } }
三. 协议分析
相关推荐
public ThriftServlet(MyService.Processor processor) { this.processor = processor; } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, ...
首先,Thrift 提供了一个名为 `ThriftServlet` 的组件,它是将Thrift服务与Java Servlet容器(如Tomcat、Jetty等)集成的关键。`ThriftServlet` 是一个实现了Servlet接口的类,可以处理HTTP请求并将它们转化为Thrift...
thrift 生成的java包servlet-api-2.5.jar
在IT行业中,Thrift、TypeScript和Servlet是三个非常重要的技术组件,它们分别在不同的层面上发挥着关键作用。在这个名为"thrift-typescript-servlet-example"的项目中,我们将探讨如何将它们集成以实现一个高效的跨...
- **servlet-api-2.5.jar**: 这是 Java Servlet API,用于开发 Web 应用程序,与服务器交互。 - **commons-logging-1.1.1.jar**: Apache Commons Logging 是一个日志抽象层,允许开发者选择底层的日志实现。 ...
HttpRequestHandler接口用于暴露http服务,这样就可以接受http的请求,这个如果使用servlet也是可以的。RemoteExporter这块其实主要就是使用了它getServiceInterface和getProxyForService两个方法,这个和thrift...
8. **servlet-api-2.5.jar**:Servlet API是Java Web应用的标准接口,用于与Web服务器交互。在Thrift服务部署到Web服务器上时,这个库是必要的。 9. **commons-logging-1.1.1.jar**:Apache Commons Logging是一个...
如何连接项目非常简单: repositories { jcenter()}compile ' info.developerblog.spring.thrift:spring-thrift-starter:+ '如何使用服务器端注释@ThriftController(“ servlet_path”)帮助您构建服务器控制器以...
3. **服务暴露**:Thrift服务通常通过自定义的服务器运行,而Http Invoker服务可以作为Spring MVC的一部分通过Servlet容器(如Tomcat)暴露。需要重新配置服务启动和监听的端点。 4. **客户端调用**:Thrift客户端...
thrift的各种服务 本工程为thrift提供的各种服务 1.thrift-pool工程 thrift连接池 2.thrift-service工程 基于thrift的微服务框架 thrift不仅支持tcp/ip协议的rpc调用,也支持http协议的rest服务调用,同一个项目中...
这可能包括HTTP请求和响应的处理、会话管理、MVC(模型-视图-控制器)架构的支持、模板引擎或者对常见Web框架如Spring或Servlet API的封装。 结合这两个信息,我们可以推断这个压缩包可能包含了一个整合了Thrift和...
commons-codec-1.4.jar commons-lang-2.5.jar commons-logging-1.1.1.jar httpclient-4.1.3.jar ...log4j-1.2.14.jar servlet-api-2.5.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar
支持以servlet方式嵌入web容器(tomcat/weblogic/jboss之类)运行2、 也可以直接用嵌入式jetty直接从jar包运行###支持javascript调用支持js直接调用,post的json格式为:以下格式无需手动拼写,thrift生成的js客户端会...
在Java中,RPC框架有很多种,如Hessian、gRPC、Dubbo、Thrift等。本实例将主要介绍基于XML-RPC的Java客户端实现。 XML-RPC是一种简单的基于HTTP协议的远程过程调用协议,它使用XML作为数据交换格式。在Java中,...
以Hessian为例,为了使用Hessian协议,我们需要引入相应的依赖,如`com.caucho.hessian`,`javax.servlet.servlet-api`和`org.mortbay.jetty.jetty`。在`provider.xml`中,我们可以指定服务的协议类型和版本号,如将...
Hadoop的Hadoop RPC、Google的gRPC和Apache的Thrift都是常见的RPC框架。在Java中,Dubbo是阿里巴巴开源的高性能RPC框架,它支持服务治理、负载均衡、故障切换等功能,适合大型分布式系统。 4. **阿里云服务接入**:...
- **thrift协议**:提供了优化的报文头,适用于长连接和NIO异步传输。 每种协议的配置都相对简单,可以通过Dubbo的XML配置或者注解方式来指定。例如,配置dubbo协议时,可以这样设置: ```xml ``` 关于序列化方式...
1. **Dubbo**:Dubbo是阿里巴巴开源的高性能RPC框架,它提供了服务治理、动态配置、熔断、负载均衡等功能,支持多种协议,如HTTP、RMI、Hessian、Thrift等。 2. **服务注册与发现**:Zookeeper作为服务注册中心,...
31. **Thrift**:Thrift是Facebook开发的一种跨语言的服务开发框架,用于构建可扩展的、高性能的服务。 32. **Memcached**:Memcached是一个分布式内存对象缓存系统,用于减少数据库负载,提高Web应用性能。 33. *...
- Web开发:使用Servlet、JSP、Spring Boot等框架构建企业级Web应用。 - Android开发:Android操作系统的基础是Java,开发者通常使用Java或Kotlin来编写Android应用。 - 大数据处理:Apache Hadoop、Spark等大数据...