我们公司性质是新零售,公司也有专门的框架组。这群大牛自己开发了一整套分布式微服务框架。我们也在使用这套框架,有很多心得体会。
该框架既Dapeng也!开源github地址:https://github.com/dapeng-soa
Dapeng-soa 是一个轻量级、高性能的微服务框架,构建在Netty以及定制的精简版Thrift之上。 同时,从Thrift IDL文件自动生成的服务元数据信息是本框架的一个重要特性,很多其它重要特性都依赖于服务元数据信息。 最后,作为一站式的微服务解决方案,Dapeng-soa还提供了一系列的脚手架工具以支持用户快速的搭建微服务系统,例如:
除部署需要吐槽外,好用地方如下:
-
- api网关(dapeng-mesh), 提供基于服务元数据以及流式处理的Json模块用于处理http-json请求跟Thrift协议之间的相互转换。
- 在线文档以及测试站点(dapeng-api-doc),直接基于服务元数据生成,确保跟代码保持同步。
- 命令行工具(dapeng-cli),提供命令行或者脚本的方式跟服务集群交互,可用于服务运行时状态监控、数据修复等。
- 配置部署中心(dapeng-config-server),提供web-gui界面,用于服务配置管理以及服务部署管理。
- maven/sbt插件 for IDEA, 用于在开发过程中快速启动服务容器
- 项目模板(目前仅支持sbt:g8 template for sbt projects)
- Demo(dapeng-demo)
Architecture
Features
- 基于Netty 以及精简版的Thrift
- 基于Thrift IDL的服务元数据
- 服务注册以及服务自动发现
- 支持Java/Scala客户端代码自动生成
- 支持http-json跟Thrift二进制流的高效相互转换
- 客户端以及服务端全链路同步/异步调用支持
- 多维度智能服务路由以及负载均衡策略,可通过http cookie信息路由(Router)
- 基于共享内存的服务端限流,支持多维度的限流,支持服务或者接口级别的限流(FreqControl)
- 分布式服务调用日志跟踪
Next