zoukankan      html  css  js  c++  java
  • 基于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方式调用的测试用例

  • 相关阅读:
    BZOJ 3330 分数
    FR #11题解
    BZOJ 1857 传送带
    BZOJ 4757 Building a Tall Barn
    FR #10题解
    BZOJ 4393 Fruit Feast
    BZOJ 3126 Photo
    BZOJ 1312 Hard Life
    BZOJ 2039 employ人员雇佣
    Count SIN Numbers
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/thrift-service-framework.html
Copyright © 2011-2022 走看看