wso2~apim~carbon-apimgt的介绍

WSO2 API Manager(APIM)的 product-apim 项目是一个集成型代码仓库,负责将底层组件组合为完整产品。其核心子项目及架构组成如下:


🔧 一、核心组件仓库:carbon-apimgt

仓库地址github.com/wso2/carbon-apimgt
功能:提供 API 管理的核心逻辑实现,以 OSGi 模块形式组织。主要子模块包括:

  1. apimgt/implementation
    • 网关流量处理(鉴权、限流、统计)
    • API 发布/订阅流程实现
    • 密钥管理服务(OAuth2、JWT)
  2. apimgt/integration
    • 与第三方系统(Keycloak、LDAP)的适配器
    • 事件驱动扩展(如 Kafka 事件源)
  3. apimgt/features
    • 功能集打包(如 org.wso2.carbon.apimgt.store.feature 对应开发者门户)
  4. apimgt/hostobjects
    • JavaScript 扩展对象(用于策略脚本等定制)
  5. apimgt/stubs
    • Web Service 客户端存根(如 Admin API 调用)

📦 二、产品集成仓库:product-apim

仓库地址github.com/wso2/product-apim
功能:整合 carbon-apimgt 及其他依赖,生成可部署产品。关键子项目包括:

  1. distribution
    • 产品打包逻辑(生成 wso2am-<version>.zip
    • 包含启动脚本、默认配置及依赖库
  2. modules
    • 功能模块化组件(如 api-import-export 工具)
    • 扩展点实现(如自定义序列化器)
  3. features
    • 产品级功能包(如 apim-store-feature 对应开发者门户)
    • 依赖管理(声明所需 carbon-apimgt 版本)
  4. samples
    • 示例配置与插件(如 OIDC 身份提供者集成)

⚙️ 三、构建流程与依赖关系

  1. 构建顺序

    • 先编译 carbon-apimgt → 生成组件 JAR 包并安装到本地 Maven 仓库
    • 再编译 product-apim → 引用本地仓库中的组件,打包完整产品
    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
    
  2. 版本对应规则

    APIM 版本 carbon-apimgt 版本 备注
    APIM 1.10.0 v5.0.3 需严格匹配标签
    APIM 1.9.1 v1.9.1 历史版本维护分支
  3. 热更新限制
    修改 carbon-apimgt 代码后,需重新构建并更新本地 Maven 仓库,否则 product-apim 仍用旧组件。


🛠️ 四、定制开发指南

  1. 修改核心逻辑
    • carbon-apimgt 中修改代码(如 org.wso2.carbon.apimgt.hostobjects
    • 执行 mvn clean install 更新本地仓库
    • 重建 product-apim 以包含新组件
  2. 新增产品级功能
    • product-apim/modules 下添加新模块
    • 通过 POM 声明依赖并注册为 OSGi 服务
  3. 配置覆盖
    • 定制默认配置:修改 product-apim/distribution/src/resources/conf 中的文件(如 deployment.toml

💎 五、架构优势与设计理念

  • 模块解耦:核心功能(carbon-apimgt)与产品集成(product-apim)分离,便于复用。
  • 热插拔特性:通过 OSGi 动态加载功能包(如新增认证协议支持)。
  • 可扩展性samples 目录提供插件开发模板,支持自定义网关策略或存储层。

⚠️ 六、常见问题解决

  • 修改未生效 → 确保 carbon-apimgt 版本与 product-apim 要求的版本一致,并重新构建本地依赖。
  • 构建失败 → 检查网络是否可访问 WSO2 Nexus 仓库(部分依赖需从私有库下载)。
  • 证书动态更新 → 在集群中需将信任库挂载为持久化卷,避免 Pod 重启重置。

总结:子项目协作流程

graph LR A[carbon-apimgt] -- 提供核心组件 JAR --> B[product-apim] B -- 整合打包 --> C[可部署产品 ZIP] C -- 运行 --> D{API 网关<br>开发者门户<br>管理控制台}

通过此架构,WSO2 实现了 API 管理能力的灵活定制与高效交付。开发时需严格遵循版本匹配构建顺序,确保组件兼容性。

posted @ 2025-06-03 09:39  张占岭  阅读(46)  评论(0)    收藏  举报