技术博客Java我爱编程

RPC-Thrift简短实例

2018-03-30  本文已影响20人  老生住长亭
  1. Thrift 需要实体类作用介绍
    TSimpleServer – 简单的单线程服务模型,常用于测试
    TThreadedServer – 多线程服务模型,使用阻塞式IO,每个请求创建一个线程。(java 不支持)
    TThreadPoolServer – 多线程服务模型,使用标准的阻塞式IO,预先创建一组线程处理请求。
    TThreadedSelectorServer 允许你用多个线程来处理网络I/O。它维护了两个线程池,一个用来处理网络I/O,另一个用来进行请求的处理
    TNonblockingServer – 多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式),只有一个线程来处理消息
    THsHaServer - 半同步半异步的服务模型,一个单独的线程用来处理网络I/O,一个worker线程池用来进行消息的处理

2.程序的开篇鼻祖Helloword实例

2.1 Thrift 定义文件:
namespace java com.interfaces
service Hello {
string say(1:string param)
}

2.2 执行命令,生成Hello接口文件:

thrift -out ~/studyproject/rpc-thrift/src/main/java/ -gen java Hello.thrift

2.3 实现Hello接口:

Impl:
package com.example;

import org.apache.thrift.TException;

/**

2.4 Server端代码:

import com.example.Hello;
import com.example.HelloServiceImpl;
import org.apache.thrift.TProcessor;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;
import org.apache.thrift.transport.TTransportException;

/**

2.5 Client端代码:
import com.example.Hello;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;

/**

上一篇下一篇

猜你喜欢

热点阅读