ApiBoot為接口服務(wù)而生,基于SpringBoot完成擴(kuò)展、自動(dòng)化配置,通過封裝一系列Starter來讓調(diào)用者快速集成組件,降低學(xué)習(xí)、使用門檻,提高開發(fā)效率。
ApiBoot 官網(wǎng)
官網(wǎng)地址:http://apiboot.minbox.io
ApiBoot 零侵入、鏈路式請(qǐng)求日志分析框架
ApiBoot提供單應(yīng)用、微服務(wù)應(yīng)用下的請(qǐng)求日志分析框架ApiBoot Logging,特性列表如下所示:
-
鏈路:為每一個(gè)請(qǐng)求生成一個(gè)鏈路的單條或者多條請(qǐng)求日志信息,精準(zhǔn)定位程序出現(xiàn)問題的位置。 -
耗時(shí):可以分析出每一個(gè)請(qǐng)求的耗時(shí),改善服務(wù)的性能瓶頸 -
異常信息:請(qǐng)求遇到異常,提供請(qǐng)求日志的異常堆棧信息記錄 -
請(qǐng)求參數(shù):可以獲取RequestBody、PathParam兩種方式的參數(shù) -
響應(yīng)內(nèi)容:可以獲取本次請(qǐng)求響應(yīng)的內(nèi)容信息。 -
服務(wù)信息:可獲取提供服務(wù)的ID、IP、Port等信息。 -
異步通知:請(qǐng)求日志數(shù)據(jù)采集后通過Event/Listener方式異步通知給RPC、MQ、REST、Local。 -
數(shù)據(jù)分析:閾值警告、異常通知等(短信、郵件等方式,2.1.1.RELEASE版本未實(shí)現(xiàn).)
ApiBoot Logging內(nèi)部采用攔截器、Filter組合完成一系列的操作。
- 如果一個(gè)請(qǐng)求的
header信息內(nèi)包含traceId(鏈路ID)則加入該鏈路,如果不存在則生成新的鏈路信息- 如果一個(gè)請(qǐng)求的
header信息內(nèi)包含spanId(跨度ID),則使用該spanId作為parent spanId,對(duì)兩個(gè)請(qǐng)求進(jìn)行上下級(jí)關(guān)聯(lián)。
無縫支持Openfeign
ApiBoot Logging支持Spring Cloud Openfeign的方式請(qǐng)求,在SpringCloud微服務(wù)應(yīng)用中如果你發(fā)起一個(gè)Http請(qǐng)求,而該請(qǐng)求在服務(wù)端通過openfeign訪問其他服務(wù),這時(shí)ApiBoot Logging會(huì)通過openfeign的Interceptor攜帶TraceId、SpanId到下一個(gè)服務(wù),完成請(qǐng)求日志的鏈路信息透?jìng)鳌?/p>
架構(gòu)設(shè)計(jì)圖

更新日志
2.1.1.RELEASE (2019-7-16日發(fā)布)
- ApiBoot Logging 初版發(fā)布
- 零侵入代碼設(shè)計(jì)
- 支持鏈路日志輸出
- 支持SpringCloud Openfeign透?jìng)魅罩炬溌沸畔?/li>
- 支持請(qǐng)求完成后多個(gè)Order Notice通知請(qǐng)求日志信息
- 支持請(qǐng)求異常堆棧信息保存
- 支持讀取RequestBody內(nèi)容
- 支持讀取ResponseBody內(nèi)容
- 支持請(qǐng)求日志關(guān)聯(lián)具體服務(wù)Id
- 支持自定義存儲(chǔ)日志
- ApiBoot OAuth
- 支持Redis存儲(chǔ)Token
- 支持內(nèi)存方式、Redis方式配置多客戶端
- 支持內(nèi)存方式、Redis方式配置token有效期
- ApiBoot Mybatis Enhance
- 豐富示例
- 官網(wǎng)文檔更新
源碼、文檔地址
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提供的所有封裝依賴對(duì)應(yīng)第三方框架關(guān)系如下所示:
| 依賴名稱 | 介紹 |
|---|---|
| api-boot-starter | 所有Starter的基礎(chǔ)依賴 |
| ApiBoot 整合案例 | ApiBoot落地使用示例,是恒宇少年知識(shí)庫(kù)小程序接口源碼 |
| api-boot-starter-mail | ApiBoot集成阿里云郵件服務(wù) |
| api-boot-starter-logging-admin | ApiBoot Logging日志管理端,統(tǒng)一接收采集 |
| api-boot-starter-logging | 零侵入、鏈路式日志分析框架 |
| api-boot-starter-http-converter | 集成FastJson作為格式化返回JSON |
| api-boot-starter-security-oauth-jwt | 集成SpringSecurity、Oauth、Jwt安全、認(rèn)證框架 |
| api-boot-starter-swagger | 集成Swagger2作為接口服務(wù)文檔 |
| api-boot-starter-alibaba-oss | 集成阿里云Oss對(duì)象存儲(chǔ)接口服務(wù) |
| api-boot-starter-alibaba-sms | 集成阿里云國(guó)際短信接口服務(wù) |
| api-boot-starter-quartz | 集成分布式定時(shí)任務(wù)框架Quartz |
| api-boot-starter-datasource-switch | 集成支持多數(shù)據(jù)源自動(dòng)切換、動(dòng)態(tài)創(chuàng)建數(shù)據(jù)源 |
| api-boot-starter-resource-load | 資源與業(yè)務(wù)完全分離、自動(dòng)化讀取 |
| api-boot-starter-message-push | 推送服務(wù),集成極光推送 |
| api-boot-starter-rate-limiter | 接口QPS限流 |
| api-boot-starter-mybatis-enhance | 集成Myabtis Enhance 持久化框架 |
| api-boot-starter-mybatis-pageable | 集成Mybatis Pageable 自動(dòng)分頁插件 |
| api-boot-mybatis-enhance-maven-codegen | Mybatis Enhance專屬代碼插件 |