文章出處

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

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()