拥抱开源的我

拖延症晚期的我,原本打算从2018年开始编写开源框架,直到2019年年初我才着手开始准备。

愿景

热爱编码的我,对开源这件事情一直向往。

我从2013年开始参加工作以来,大大小小的遇到了太多的三方框架集成的问题,爬过很多坑,走过很多的弯路,浪费了太多的宝贵时间!!!

把浪费的时间做点别的事情不香吗?

希望新进程序员在集成第三方框架时不再那么困难,不再翻阅一篇一篇的文章跟大量的官方文档,把集成的门槛降到最低,有相关框架的基础就可以快速上手,让大家更专注具体的业务实现。

开源组织

在编写开源框架之前我建立了名为minbox-projects的开源组织,欢迎大家加入进来成为代码贡献者,成为开源组织内的一员。

minbox-projects内包含了 GroupId"org.minbox.framework"的全部开源框架,放在一起方便进行维护升级。

组织地址

组织架构图

  • 核心基础:提供了minbox-projects组织内开源框架的基础支持,公共使用的工具类、统一版本依赖等
  • 开源框架:提供指定业务场景的解决方案,如:minbox-logging(分布式链路日志框架)
  • 集成实践:基于SpringBoot进行封装minbox-projects开源组织内框架的Starter,统一命名为:api-boot-starter-xxx
  • Apache Maven:统一使用oss-parent发布到Apache Maven中央仓库,可直接在项目内添加依赖使用,无需使用源码方式构建到本地

I. 分布式链路日志

minbox-logging是一款分布式零侵入式、链路式请求日志分析框架。提供Admin端点进行采集日志、分析日志、日志告警通知、服务性能分析等。通过Admin Ui可查看实时链路日志信息、在线业务服务列表。

链路日志架构图

链路日志地址

II. ApiBoot

ApiBoot为接口服务而生,基于SpringBoot完成扩展、自动化配置,通过封装一系列Starter来让调用者快速集成组件,降低学习、使用门槛,提高开发效率。

架构层级图

  • **公共模块(common)**:提供各个组件之间共用的工具类、枚举、常量、实体等。
  • **插件(plugins)**:封装第三方框架的中间件,会陆续从api-boot-plugins迁移到minbox-projects开源组织内
  • **统一版本(dependencies)**:提供使用的第三方依赖的指定版本,为api-boot-starter-xxx提供固定版本,使用依赖时类似SpringBoot可不用添加版本号
  • **自动化配置(autoconfigure)**:内部通过SpringBoot提供的自动化配置注解来条件式的实例化各个组件所需要的类,也是所有组件的统一自动化集成入口。
  • Starters:提供使用的具体依赖,每一个Starter内仅引用封装的第三方依赖以及api-boot-autoconfigure

ApiBoot相关地址

评论