基于thrift的微服务框架
前一阵开源过一个基于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的微服务框架相关推荐
- 基于.NET CORE微服务框架 -谈谈surging API网关
1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中谈谈surging Api 网关 开源地址:https://gith ...
- 基于.NET CORE微服务框架 -谈谈Cache中间件和缓存降级
1.前言 surging受到不少.net同学的青睐,也提了不少问题,提的最多的是什么时候集成API 网关,在这里回答大家最近已经开始着手研发,应该在1,2个月内会有个初版API网关,其它像Token身 ...
- 基于.NET CORE微服务框架 -谈谈surging的服务容错降级
一.前言 对于不久开源的surging受到不少.net同学的青睐,也受到.net core学习小组的关注,邀请加入.NET China Foundation 以方便国内.net core开源项目的推广 ...
- python sanic orm_基于sanic的微服务框架 - 架构分析
感谢@songcser分享的<基于sanic的微服务基础架构>https://github.com/songcser/sanic-ms 最近正在学习微服务,发现这个repo不错,但不完整, ...
- Java框架jboot_Jboot v3.0.3 正式版发布,基于 JFinal 的微服务框架
Jboot是一个基于JFinal.JFinal-Undertow.Dubbo等开发的微服务框架,帮助开发者降低微服务开发门槛.同时完美支持在idea.eclipse下多maven模块,对java代码. ...
- 基于.NET CORE微服务框架 -浅析如何使用surging
1.前言 surging受到大家这么强烈的关注,我感到非常意外,比如有同僚在公司的分享会上分享surging, 还有在博客拿其它的RPC框架,微服务做对比等等,这些举动都让我感觉压力很大,毕竟作为个人 ...
- 几个基于jvm 的微服务框架
一个简单的整理,留待深入学习 micronaut http://micronaut.io/ sparkjava http://saprkjava.com spring cloud http://pro ...
- python的flask微服务-flask微服务框架的初步接触
测试2个关联的系统接口时,经常会遇到被测试系统或被测app的处理内部处理流程会依赖另一个系统的接口返回结果,这时, 常用的做法就是写一个模拟测试桩,用作返回请求时的结果.java可以用servicel ...
- 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 ...
最新文章
- QCon 2010(InfoQ北京敏捷大会)会议信息
- The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
- MySQL入门篇(含数据库的备份)
- SigmaStar SSD201 开源记录
- 所有受限制的应用程序包_【译】使用Blazor构建桌面应用
- 《TOMCAT权威指南》摘抄
- 计算机专业英语第二版张强华翻译_计算机语言发展的三个阶段,机器语言、汇编语言与高级语言...
- 云吟职中计算机老师,夹江县云吟职业中学校018招生简介
- BaiduMapsApiDemo报错:请在 DemoApplication.java文件输入正确的授权Key
- matlab2c使用c++实现matlab函数系列教程-prod函数
- python爬取今日头条新闻,js解密
- Android平台下的ToDoList
- 对抗攻击经典论文剖析(上)【FGSM、BIM、PGD、Carlini and Wagner Attacks (CW)】
- VBA(比较全的api中文帮助文档例如office,excel,outlook,PowerPoint等api文档)
- 一小时搞定简单VBA编程 Excel宏编程快速上手
- 随手写的QT程序:文件大小转化可读字符串,整数转 B,KB,MB......
- win10系统怎么安装ie11
- PowerShell 实现批量下载文件
- linux lsof命令和ps的,Linux 中lsof 命令的使用
- 用winscppwd查看winscp保存的密码
热门文章
- 更换YUM及升级包方法
- Nginx调度器(反向代理),TCP/UDP调度器
- Android 自定义动画 LoadingView
- matlab的多项式拟合,函数求导,画函数曲线
- qt 定义一个长度的数组,Qt - 声明一个QLabel数组并将其添加到QTabWidget的选项卡
- 使用cdn和npm引入的区别_在npm上发布自己的vue组件库(使用npm install 或者 CDN的方式引用)...
- 牛客java面试题总结版(一)
- python不需要定义函数后使用_python自定义函数可以向前引用不用声明
- 文明使用计算机 教案,四年级信息技术下册 文明在我身边教案 华中师大版
- java s0 s1_业余草告诉你Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT G