基于thrift的微服务框架
2015-12-18 23:20
141 查看
前一阵开源过一个基于spring-boot的rest微服务框架,今天再来一篇基于thrift的微服务加框,thrift是啥就不多了,大家自行百度或参考我之前介绍thrift的文章, thrift不仅支持tcp/ip协议的rpc调用,也支持http协议的rest服务调用,同一个项目中甚至可同时支持这二种方式。thrift项目2007年由facebook开源以来,已经有无数成功的应用,完全可以基于这一框架来设计自己的服务架构,示意图如下:
![](http://images2015.cnblogs.com/blog/27612/201512/27612-20151218231705927-705329044.jpg)
github上我开源了基于thrift的微服务框架,地址:https://github.com/yjmyzz/thrift-service-framework ,其主要特性:
2、 也可以直接用嵌入式jetty直接从jar包运行
以下格式无需手动拼写,thrift生成的js客户端会自动封装及解析
返回结果以json格式返回:
1、 jetty嵌入式模式,mvn package将在target目录下生成可直接运行的thrift-service-framework.jar, 然后java -jar thrift-service-framework.jar
2、 将pom.xml中的<packaging>jar</packaging>中的jar改成war,同时注释掉plug中的maven-shade-plugin,然后mvn package 生成war包,可部署到任何兼容servlet 2.5+的web容器
注:方式1下,默认http端口为8080,如需修改,可在启动时指定端口,例如:java -jar thrift-service-framework.jar -port=9090 , rpc端口在src/main/resources/spring-thrift.xml中修改
2、 src/test/java/com/cnblogs/yjmyzz/thrift/proxy/ThriftServiceClientTest.java 里提供了rpc及http方式调用的测试用例
![](http://images2015.cnblogs.com/blog/27612/201512/27612-20151218231705927-705329044.jpg)
github上我开源了基于thrift的微服务框架,地址:https://github.com/yjmyzz/thrift-service-framework ,其主要特性:
支持rpc调用
支持常规的tcp/ip协议的rpc调用支持http协议的servlet调用
1、 支持以servlet方式嵌入web容器(tomcat/weblogic/jboss之类)运行2、 也可以直接用嵌入式jetty直接从jar包运行
支持javascript调用
支持js直接调用,post的json格式为:以下格式无需手动拼写,thrift生成的js客户端会自动封装及解析
[1,"hello",1,0,{"1":{"str":"jimmy"}}]
返回结果以json格式返回:
[1,"hello",2,0,{"0":{"str":"hello,jimmy"}}]
部署方式
本框架支持以下二种部署方式:1、 jetty嵌入式模式,mvn package将在target目录下生成可直接运行的thrift-service-framework.jar, 然后java -jar thrift-service-framework.jar
2、 将pom.xml中的<packaging>jar</packaging>中的jar改成war,同时注释掉plug中的maven-shade-plugin,然后mvn package 生成war包,可部署到任何兼容servlet 2.5+的web容器
注:方式1下,默认http端口为8080,如需修改,可在启动时指定端口,例如:java -jar thrift-service-framework.jar -port=9090 , rpc端口在src/main/resources/spring-thrift.xml中修改
测试运行
1、 js调用直接浏览http://localhost:8080/thrift-service-framework/ ,点击页面的call thrift按钮,即可测试js方式直接调用2、 src/test/java/com/cnblogs/yjmyzz/thrift/proxy/ThriftServiceClientTest.java 里提供了rpc及http方式调用的测试用例
相关文章推荐
- 设计模式学习—策略模式
- Nginx学习笔记一
- 南邮编程在线编程题十八:进制转换
- SQLiteOpenHelper
- POJ-1179 Polygon (动态规划)
- POJ-1179 Polygon (动态规划)
- jquery-mobile(一)
- mediastreamer2在VS2008下编译
- CentOS安装小记
- Android实战(五)------Myeclipse新建运行Android项目
- 数据结构 查找及排序算法、直接插入排序及顺序查找(c语言实现)
- Android实战(五)------Myeclipse新建运行Android项目
- liunx安装JDK
- HDOJ--2034
- 1 XCode快捷键
- EnhanceIO的Readme介绍
- AngularJS 控制器其他实例
- 构建ARM Linux交叉编译工具链 详解
- HDOJ--2033
- 网络基础知识-3