thrift
环境准备:
1.下载window版本的thrift编译器
2.下载idea的thirft插件
3.设置thrift编译工具为:步骤1下载的编译器
4.编写thrift文件
namespace java org.chenhao.test.thrift
service Hello{
void helloVoid()
}
5.编译改文件,生成Hello.java
6.编写HelloServiceImpl,实现了Iface接口
package org.chenhao.test.thrift; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class HelloServiceImpl implements Hello.Iface {
private static final Logger logger= LoggerFactory.getLogger(HelloServiceImpl.class);
@Override
public void helloVoid(){
logger.info("hello world");
}
}
7.编写HelloServer.java
package org.chenhao.test.thrift; import org.apache.thrift.TProcessor;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TThreadPoolServer;
import org.apache.thrift.transport.TServerSocket; public class HelloServer {
public static void main(String[] args) {
try {
TServerSocket tansport = new TServerSocket(7091);
TProcessor processor = new Hello.Processor(new HelloServiceImpl());
TBinaryProtocol.Factory factory = new TBinaryProtocol.Factory();
TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(tansport).processor(processor).protocolFactory(factory));
server.serve();
} catch (Exception e) {
e.printStackTrace();
}
}
}
8.编写HelloClient.java
package org.chenhao.test.thrift; import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport; public class HelloClient {
public static void main(String[] args) {
try {
TTransport transport = new TSocket("localhost", 7091);
transport.open();
TProtocol protocol = new TBinaryProtocol(transport);
Hello.Client client = new Hello.Client(protocol);
client.helloVoid();
} catch (Exception e) {
e.printStackTrace();
}
}
}
9.运行HelloServer.java
10.运行HelloClient.java,可以观察到命令行打印如下信息:

thrift的更多相关文章
- 和 Thrift 的一场美丽邂逅
一. 与 Thrift 的初识 也许大多数人接触 Thrift 是从序列化开始的.每次搜索 “java序列化” + “方式”.“对比” 或 “性能” 等关键字时,搜索引擎总是会返回一大堆有关各种序列化 ...
- Apache thrift RPC 双向通信
在上一篇介绍Apache thrift 安装和使用,写了一个简单的demo,讲解thrift服务的发布和客户端调用,但只是单向的客户端发送消息,服务端接收消息.而客户端却得不到服务器的响应. 在不涉及 ...
- common-pool2 学习:thrift连接池的另一种实现
对象池是一种很实用的技术,经典的例子就是数据库连接池.去年曾经从零开始写过一个thrift客户端连接池.如果不想重造轮子,可以直接在apache开源项目commons-pool的基础上开发. 步骤: ...
- thrift:swift项目笔记
先声明:此swift不是Apple公司的那个swift开发语言,而是facebook的另一个开源项目. facebook的thrift IDL文件,如果默认用thrift -gen java生成jav ...
- dubbo/dubbox 增加原生thrift及avro支持
(facebook) thrift / (hadoop) avro / (google) probuf(grpc)是近几年来比较抢眼的高效序列化/rpc框架,dubbo框架虽然有thrift的支持,但 ...
- Thrift的TJsonProtocol协议分析
Thrift协议实现目前有二进制协议(TBinaryProtocol),紧凑型二进制协议(TCompactProtocol)和Json协议(TJsonProtocol). 前面的两篇文字从编码和协议原 ...
- Thrift的TBinaryProtocol二进制协议分析
先上张图,说明一下thrift的二进制协议是什么东东. 报文格式编码: bool类型: 一个字节的类型,两个字节的字段编号,一个字节的值(true:1,false:0). Byte类型: 一个字节的类 ...
- 高可用thrift客户池的实现详解
最近,公司要求将组内的thrift客户端组件推广至公司内使用.基本的要求如下: 1.高可用 2.集成名称服务,也就配置文件支持服务发现 3.解耦,客户端和高可用组件解耦,简单来说就是,如果以后要切换其 ...
- 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world
2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...
- thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)
关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1) Linux下环境配置 ...
随机推荐
- Codeforces 389B(十字模拟)
Fox and Cross Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Submi ...
- PageBean分页组件
Page.java package org.guangsoft.bean; import java.util.List; public class Page { private int current ...
- LINUX_bash
$ myname=xor$ echo $myname xor 内容间空格$var="lang is $myname" echo $var lang is xor $ var='la ...
- linq lambda GroupBy 用法
Linq 中按照多个值进行分组(GroupBy) /// <summary>要查询的对象</summary> class Employee { public int ID ...
- Wcf for wp8 创建wcf服务 连接wp8模拟器并显示来自wcf服务的接口信息 (一)
下载: vs2012 pro for wp8 iis express http://download.microsoft.com/download/B/2/8/B2801FEE-9A60-4AFA-8 ...
- nohup之no hang up, kill, ps -ef, ps aux, grep
背景:今天在安装hudson时,每次启动时都必须在linux终端(SecureCRT)执行: java -jar hudson.war --httpPort=18080 --jp13Port=1800 ...
- ER-Studio的五种关系说明
1. identifying relationship: 1对多. 父实体的主键是子实体的外键(FK1),且FK1是主键. 2. no identifying, mandatory relations ...
- 简单的Java Web服务器
import java.io.FileInputStream; import java.io.OutputStream; import java.net.ServerSocket; import ja ...
- arcgis android 通过getExtent得到当前地图范围四个点的坐标
困扰了我很久的问题终于要得到解决了,先欢喜一下.我的目的是想做一个当程序完全退出后,再次打开程序地图直接显示上次程序退出前地图的范围.arcgis for android官方软件就有这个功能.网上搜索 ...
- sample
sample是在数据源取样. val data = sc.parallelize(1 to 20) data.sample(true,0.4).collect sample第一个参数表示是否是重复抽样 ...