wso2~apim~carbon-apimgt的介紹
WSO2 API Manager(APIM)的 product-apim 項(xiàng)目是一個(gè)集成型代碼倉庫,負(fù)責(zé)將底層組件組合為完整產(chǎn)品。其核心子項(xiàng)目及架構(gòu)組成如下:
?? 一、核心組件倉庫:carbon-apimgt
倉庫地址:github.com/wso2/carbon-apimgt
功能:提供 API 管理的核心邏輯實(shí)現(xiàn),以 OSGi 模塊形式組織。主要子模塊包括:
apimgt/implementation- 網(wǎng)關(guān)流量處理(鑒權(quán)、限流、統(tǒng)計(jì))
- API 發(fā)布/訂閱流程實(shí)現(xiàn)
- 密鑰管理服務(wù)(OAuth2、JWT)
apimgt/integration- 與第三方系統(tǒng)(Keycloak、LDAP)的適配器
- 事件驅(qū)動(dòng)擴(kuò)展(如 Kafka 事件源)
apimgt/features- 功能集打包(如
org.wso2.carbon.apimgt.store.feature對(duì)應(yīng)開發(fā)者門戶)
- 功能集打包(如
apimgt/hostobjects- JavaScript 擴(kuò)展對(duì)象(用于策略腳本等定制)
apimgt/stubs- Web Service 客戶端存根(如 Admin API 調(diào)用)
?? 二、產(chǎn)品集成倉庫:product-apim
倉庫地址:github.com/wso2/product-apim
功能:整合 carbon-apimgt 及其他依賴,生成可部署產(chǎn)品。關(guān)鍵子項(xiàng)目包括:
distribution- 產(chǎn)品打包邏輯(生成
wso2am-<version>.zip) - 包含啟動(dòng)腳本、默認(rèn)配置及依賴庫
- 產(chǎn)品打包邏輯(生成
modules- 功能模塊化組件(如
api-import-export工具) - 擴(kuò)展點(diǎn)實(shí)現(xiàn)(如自定義序列化器)
- 功能模塊化組件(如
features- 產(chǎn)品級(jí)功能包(如
apim-store-feature對(duì)應(yīng)開發(fā)者門戶) - 依賴管理(聲明所需
carbon-apimgt版本)
- 產(chǎn)品級(jí)功能包(如
samples- 示例配置與插件(如 OIDC 身份提供者集成)
?? 三、構(gòu)建流程與依賴關(guān)系
-
構(gòu)建順序
- 先編譯
carbon-apimgt→ 生成組件 JAR 包并安裝到本地 Maven 倉庫 - 再編譯
product-apim→ 引用本地倉庫中的組件,打包完整產(chǎn)品
git clone -b v5.0.3 https://github.com/wso2/carbon-apimgt.git cd carbon-apimgt && mvn clean install git clone -b v1.10.0 https://github.com/wso2/product-apim.git cd product-apim && mvn clean install - 先編譯
-
版本對(duì)應(yīng)規(guī)則
APIM 版本 carbon-apimgt 版本 備注 APIM 1.10.0 v5.0.3 需嚴(yán)格匹配標(biāo)簽 APIM 1.9.1 v1.9.1 歷史版本維護(hù)分支 -
熱更新限制
修改carbon-apimgt代碼后,需重新構(gòu)建并更新本地 Maven 倉庫,否則product-apim仍用舊組件。
??? 四、定制開發(fā)指南
- 修改核心邏輯
- 在
carbon-apimgt中修改代碼(如org.wso2.carbon.apimgt.hostobjects) - 執(zhí)行
mvn clean install更新本地倉庫 - 重建
product-apim以包含新組件
- 在
- 新增產(chǎn)品級(jí)功能
- 在
product-apim/modules下添加新模塊 - 通過 POM 聲明依賴并注冊(cè)為 OSGi 服務(wù)
- 在
- 配置覆蓋
- 定制默認(rèn)配置:修改
product-apim/distribution/src/resources/conf中的文件(如deployment.toml)
- 定制默認(rèn)配置:修改
?? 五、架構(gòu)優(yōu)勢(shì)與設(shè)計(jì)理念
- 模塊解耦:核心功能(
carbon-apimgt)與產(chǎn)品集成(product-apim)分離,便于復(fù)用。 - 熱插拔特性:通過 OSGi 動(dòng)態(tài)加載功能包(如新增認(rèn)證協(xié)議支持)。
- 可擴(kuò)展性:
samples目錄提供插件開發(fā)模板,支持自定義網(wǎng)關(guān)策略或存儲(chǔ)層。
?? 六、常見問題解決
- 修改未生效 → 確保
carbon-apimgt版本與product-apim要求的版本一致,并重新構(gòu)建本地依賴。 - 構(gòu)建失敗 → 檢查網(wǎng)絡(luò)是否可訪問 WSO2 Nexus 倉庫(部分依賴需從私有庫下載)。
- 證書動(dòng)態(tài)更新 → 在集群中需將信任庫掛載為持久化卷,避免 Pod 重啟重置。
總結(jié):子項(xiàng)目協(xié)作流程
graph LR
A[carbon-apimgt] -- 提供核心組件 JAR --> B[product-apim]
B -- 整合打包 --> C[可部署產(chǎn)品 ZIP]
C -- 運(yùn)行 --> D{API 網(wǎng)關(guān)<br>開發(fā)者門戶<br>管理控制臺(tái)}
通過此架構(gòu),WSO2 實(shí)現(xiàn)了 API 管理能力的靈活定制與高效交付。開發(fā)時(shí)需嚴(yán)格遵循版本匹配與構(gòu)建順序,確保組件兼容性。
浙公網(wǎng)安備 33010602011771號(hào)