前一陣開源過一個基于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方式調用的測試用例
文章列表