基於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方式調用的測試用例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM