ApiBoot为接口服务而生,基于SpringBoot完成扩展、自动化配置,通过封装一系列Starter来让调用者快速集成组件,降低学习、使用门槛,提高开发效率。
ApiBoot 官网
ApiBoot 零侵入、链路式请求日志分析框架
ApiBoot
提供单应用、微服务应用下的请求日志分析框架ApiBoot Logging
,特性列表如下所示:
-
链路
:为每一个请求生成一个链路的单条或者多条请求日志信息,精准定位程序出现问题的位置。 -
耗时
:可以分析出每一个请求的耗时,改善服务的性能瓶颈 -
异常信息
:请求遇到异常,提供请求日志的异常堆栈信息记录 -
请求参数
:可以获取RequestBody
、PathParam
两种方式的参数 -
响应内容
:可以获取本次请求响应的内容信息。 -
服务信息
:可获取提供服务的ID、IP、Port等信息。 -
异步通知
:请求日志数据采集后通过Event/Listener
方式异步通知给RPC
、MQ
、REST
、Local
。 -
数据分析
:阈值警告、异常通知等(短信、邮件等方式,2.1.1.RELEASE版本未实现.)
ApiBoot Logging
内部采用拦截器
、Filter
组合完成一系列的操作。
- 如果一个请求的
header
信息内包含traceId(链路ID)
则加入该链路,如果不存在则生成新的链路信息- 如果一个请求的
header
信息内包含spanId(跨度ID)
,则使用该spanId
作为parent spanId
,对两个请求进行上下级关联。
无缝支持Openfeign
ApiBoot Logging
支持Spring Cloud Openfeign
的方式请求,在SpringCloud
微服务应用中如果你发起一个Http
请求,而该请求在服务端通过openfeign
访问其他服务,这时ApiBoot Logging
会通过openfeign
的Interceptor
携带TraceId
、SpanId
到下一个服务,完成请求日志的链路信息透传。
架构设计图
更新日志
2.1.1.RELEASE (2019-7-16日发布)
- ApiBoot Logging 初版发布
- 零侵入代码设计
- 支持链路日志输出
- 支持SpringCloud Openfeign透传日志链路信息
- 支持请求完成后多个Order Notice通知请求日志信息
- 支持请求异常堆栈信息保存
- 支持读取RequestBody内容
- 支持读取ResponseBody内容
- 支持请求日志关联具体服务Id
- 支持自定义存储日志
- ApiBoot OAuth
- 支持Redis存储Token
- 支持内存方式、Redis方式配置多客户端
- 支持内存方式、Redis方式配置token有效期
- ApiBoot Mybatis Enhance
- 丰富示例
- 官网文档更新
源码、文档地址
GitHub Wiki:https://github.com/minbox-projects
码云 Wiki:https://gitee.com/minbox-projects/api-boot/wikis
ApiBoot:https://gitee.com/minbox-projects/api-boot
MinBox Logging:https://gitee.com/minbox-projects/minbox-logging
ApiBoot 目前集成组件
ApiBoot
提供的所有封装依赖对应第三方框架关系如下所示:
依赖名称 | 介绍 |
---|---|
api-boot-starter | 所有Starter的基础依赖 |
ApiBoot 整合案例 | ApiBoot落地使用示例,是恒宇少年知识库小程序接口源码 |
api-boot-starter-mail | ApiBoot集成阿里云邮件服务 |
api-boot-starter-logging-admin | ApiBoot Logging日志管理端,统一接收采集 |
api-boot-starter-logging | 零侵入、链路式日志分析框架 |
api-boot-starter-http-converter | 集成FastJson作为格式化返回JSON |
api-boot-starter-security-oauth-jwt | 集成SpringSecurity、Oauth、Jwt安全、认证框架 |
api-boot-starter-swagger | 集成Swagger2作为接口服务文档 |
api-boot-starter-alibaba-oss | 集成阿里云Oss对象存储接口服务 |
api-boot-starter-alibaba-sms | 集成阿里云国际短信接口服务 |
api-boot-starter-quartz | 集成分布式定时任务框架Quartz |
api-boot-starter-datasource-switch | 集成支持多数据源自动切换、动态创建数据源 |
api-boot-starter-resource-load | 资源与业务完全分离、自动化读取 |
api-boot-starter-message-push | 推送服务,集成极光推送 |
api-boot-starter-rate-limiter | 接口QPS限流 |
api-boot-starter-mybatis-enhance | 集成Myabtis Enhance 持久化框架 |
api-boot-starter-mybatis-pageable | 集成Mybatis Pageable 自动分页插件 |
api-boot-mybatis-enhance-maven-codegen | Mybatis Enhance专属代码插件 |