前一阵开源过一个基于spring-boot的rest微服务框架,今天再来一篇基于thrift的微服务加框,thrift是啥就不多了,大家自行百度或参考我之前介绍thrift的文章, thrift不仅支持tcp/ip协议的rpc调用,也支持http协议的rest服务调用,同一个项目中甚至可同时支持这二种方式。thrift项目2007年由facebook开源以来,已经有无数成功的应用,完全可以基于这一框架来设计自己的服务架构,示意图如下:

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方式调用的测试用例

基于thrift的微服务框架相关推荐

  1. 基于.NET CORE微服务框架 -谈谈surging API网关

    1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中谈谈surging Api 网关 开源地址:https://gith ...

  2. 基于.NET CORE微服务框架 -谈谈Cache中间件和缓存降级

    1.前言 surging受到不少.net同学的青睐,也提了不少问题,提的最多的是什么时候集成API 网关,在这里回答大家最近已经开始着手研发,应该在1,2个月内会有个初版API网关,其它像Token身 ...

  3. 基于.NET CORE微服务框架 -谈谈surging的服务容错降级

    一.前言 对于不久开源的surging受到不少.net同学的青睐,也受到.net core学习小组的关注,邀请加入.NET China Foundation 以方便国内.net core开源项目的推广 ...

  4. python sanic orm_基于sanic的微服务框架 - 架构分析

    感谢@songcser分享的<基于sanic的微服务基础架构>https://github.com/songcser/sanic-ms 最近正在学习微服务,发现这个repo不错,但不完整, ...

  5. Java框架jboot_Jboot v3.0.3 正式版发布,基于 JFinal 的微服务框架

    Jboot是一个基于JFinal.JFinal-Undertow.Dubbo等开发的微服务框架,帮助开发者降低微服务开发门槛.同时完美支持在idea.eclipse下多maven模块,对java代码. ...

  6. 基于.NET CORE微服务框架 -浅析如何使用surging

    1.前言 surging受到大家这么强烈的关注,我感到非常意外,比如有同僚在公司的分享会上分享surging, 还有在博客拿其它的RPC框架,微服务做对比等等,这些举动都让我感觉压力很大,毕竟作为个人 ...

  7. 几个基于jvm 的微服务框架

    一个简单的整理,留待深入学习 micronaut http://micronaut.io/ sparkjava http://saprkjava.com spring cloud http://pro ...

  8. python的flask微服务-flask微服务框架的初步接触

    测试2个关联的系统接口时,经常会遇到被测试系统或被测app的处理内部处理流程会依赖另一个系统的接口返回结果,这时, 常用的做法就是写一个模拟测试桩,用作返回请求时的结果.java可以用servicel ...

  9. pigx框架费用_【开源项目】一篇文章搞掂:Pig微服务框架

    1.项目开发环境和运行步骤 1.1.项目开发环境 Idea:2018.1.6 Maven:3.5.3 JDK:1.8.0_172 MySQL:5.7.19(之前安装8.0.11会运行失败) Redis ...

最新文章

  1. QCon 2010(InfoQ北京敏捷大会)会议信息
  2. The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
  3. MySQL入门篇(含数据库的备份)
  4. SigmaStar SSD201 开源记录
  5. 所有受限制的应用程序包_【译】使用Blazor构建桌面应用
  6. 《TOMCAT权威指南》摘抄
  7. 计算机专业英语第二版张强华翻译_计算机语言发展的三个阶段,机器语言、汇编语言与高级语言...
  8. 云吟职中计算机老师,夹江县云吟职业中学校018招生简介
  9. BaiduMapsApiDemo报错:请在 DemoApplication.java文件输入正确的授权Key
  10. matlab2c使用c++实现matlab函数系列教程-prod函数
  11. python爬取今日头条新闻,js解密
  12. Android平台下的ToDoList
  13. 对抗攻击经典论文剖析(上)【FGSM、BIM、PGD、Carlini and Wagner Attacks (CW)】
  14. VBA(比较全的api中文帮助文档例如office,excel,outlook,PowerPoint等api文档)
  15. 一小时搞定简单VBA编程 Excel宏编程快速上手
  16. 随手写的QT程序:文件大小转化可读字符串,整数转 B,KB,MB......
  17. win10系统怎么安装ie11
  18. PowerShell 实现批量下载文件
  19. linux lsof命令和ps的,Linux 中lsof 命令的使用
  20. 用winscppwd查看winscp保存的密码

热门文章

  1. 更换YUM及升级包方法
  2. Nginx调度器(反向代理),TCP/UDP调度器
  3. Android 自定义动画 LoadingView
  4. matlab的多项式拟合,函数求导,画函数曲线
  5. qt 定义一个长度的数组,Qt - 声明一个QLabel数组并将其添加到QTabWidget的选项卡
  6. 使用cdn和npm引入的区别_在npm上发布自己的vue组件库(使用npm install 或者 CDN的方式引用)...
  7. 牛客java面试题总结版(一)
  8. python不需要定义函数后使用_python自定义函数可以向前引用不用声明
  9. 文明使用计算机 教案,四年级信息技术下册 文明在我身边教案 华中师大版
  10. java s0 s1_业余草告诉你Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT G