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í)庫小程序接口源碼 |
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 | 集成阿里云國際短信接口服務(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專屬代碼插件 |