Skip to content

智能中间件集成验证脚手架(Dubbo版)

项目简介

智能中间件集成验证脚手架(Dubbo版)是面向开发者打造的一站式分布式服务项目脚手架,深度融合 AI 能力与主流中间件集成方案,支持开发者快速完成各类常用中间件服务的集成、验证与测试,大幅提升开发效率。

项目基于Dubbo分布式服务框架,提供标准化中间件集成方案、统一 Web 界面及配套测试工具,同时集成智能辅助能力,支持 Ollama 本地模型与 OpenAI API 调用。开发者可借助该脚手架快速搭建测试环境、验证中间件功能,并通过 AI 能力加速开发流程,有效缩短项目研发与调试周期。

智能中间件集成验证脚手架界面

技术支持

核心功能

Smart-Scaffold 智能中间件集成验证脚手架

核心开发功能:

专为企业级中间件与 AI 能力集成深度打造,一站式重构多组件验证流程,开箱即用、零代码快速验证全链路功能,完美支撑开发、测试、生产多环境部署需求,解决多中间件分散调试、AI 能力接入复杂等核心痛点。

  • 01:全场景 AI 能力集成 — 无缝对接 Ollama 本地大模型、OpenAI 官方 API,全面支持普通对话交互、SSE 流式实时聊天、SSE 流式文章创作、Chroma 文本向量嵌入等多元化 AI 应用场景,满足本地化与云端 AI 双重使用需求。
  • 02:全品类中间件集成验证 — 一站式集成主流技术组件,原生支持 MyBatis、Elasticsearch、Kafka、MongoDB、RabbitMQ、Redis、RocketMQ、LDAP 基础操作组件,全覆盖消息队列、搜索引擎、缓存、文档库、身份协议、LDAP目录服务等中间件,快速完成接入调试、功能测试与可用性验证。
  • 03:标准化身份认证集成 — 深度集成 OAuth2.0、OIDC客户端,适配统一认证中心(CAS),兼容主流企业级单点登录规范;同时内置无认证调试模式,兼顾正式环境安全授权与开发阶段快速调试。
  • 04:灵活化多数据源管理 — 内置多数据源动态配置机制,可同时对接、切换、操作多个 MySQL 数据库,适配分库业务、多库并行开发等复杂数据场景。
  • 05:轻量化可视化 Web 操作界面 — 基于 LayUI 搭建一体化可视化界面,零代码门槛,可视化操作即可完成各类中间件功能调试、AI 能力在线演示,大幅降低上手成本。
  • 06:全覆盖内置测试用例 — 预设各类中间件、AI 模块标准化测试用例,一键执行检测,快速校验服务连通性、接口可用性与功能完整性。
  • 07:多环境无缝适配 — 独立隔离开发、测试、生产多套环境配置,支持配置快速切换,完美适配本地开发、内网测试、线上部署等不同落地场景。
  • 08:容器化 / 自动化部署 — 内置标准化 DockerFile 与 Jenkins 部署脚本,一键完成容器打包、自动化部署,无缝接入企业 CI / CD 持续集成流程。

项目结构

smart-scaffold-dubbo/
├── smart-scaffold-api/         # API接口定义
│   ├── src/main/java/cc/bima/scaffold/api/  # API代码
│   │   ├── constants/                     # 常量定义
│   │   ├── dto/                           # 数据传输对象
│   │   ├── entity/                        # 实体类
│   │   ├── enums/                         # 枚举类
│   │   ├── face/                          # 服务接口
│   │   ├── po/                            # 持久化对象
│   │   └── service/                       # 服务通用类
│   └── pom.xml                            # Maven配置
├── smart-scaffold-provider/     # 服务提供者
│   ├── src/main/java/cc/bima/scaffold/provider/  # 服务提供者代码
│   │   ├── base/                               # 基础类
│   │   ├── config/                             # 配置类
│   │   ├── exception/                          # 异常处理
│   │   └── ProviderWebApplication.java         # 服务提供者主启动类
│   ├── src/main/resources/                      # 配置文件和MyBatis映射文件
│   │   ├── mapper/                               # MyBatis映射文件
│   │   ├── application.yml                      # 配置文件
│   │   └── dubbo-provider.xml                   # Dubbo服务提供者配置
│   ├── src/test/                                # 测试代码
│   ├── Dockerfile                               # Docker构建文件
│   └── entrypoint.sh                            # Docker启动脚本
├── smart-scaffold-consumer/     # 服务消费者
│   ├── src/main/java/cc/bima/scaffold/consumer/  # 服务消费者代码
│   │   ├── controller/                           # 控制器
│   │   ├── exception/                            # 异常处理
│   │   ├── filter/                               # 过滤器
│   │   ├── service/                              # 服务层
│   │   └── ConsumerWebApplication.java           # 服务消费者主启动类
│   ├── src/main/resources/                      # 配置文件和前端资源
│   │   ├── static/                              # 静态资源
│   │   ├── templates/                           # 前端模板
│   │   │   ├── ai/                              # AI相关页面
│   │   │   ├── elasticsearch/                   # Elasticsearch相关页面
│   │   │   ├── kafka/                           # Kafka相关页面
│   │   │   ├── login/                           # 登录相关页面
│   │   │   ├── mongo/                           # MongoDB相关页面
│   │   │   ├── mybatis/                         # MyBatis相关页面
│   │   │   ├── rabbitmq/                        # RabbitMQ相关页面
│   │   │   ├── redis/                           # Redis相关页面
│   │   │   └── rocketmq/                        # RocketMQ相关页面
│   │   ├── application.yml                      # 配置文件
│   │   └── dubbo-consumer.xml                   # Dubbo服务消费者配置
│   ├── src/test/                                # 测试代码
│   ├── Dockerfile                               # Docker构建文件
│   └── entrypoint.sh                            # Docker启动脚本
├── smart-scaffold.sql           # 数据库初始化脚本
├── pom.xml                       # Maven项目配置
└── README.md                     # 项目说明文档

技术栈

  • 后端: Spring Boot 3.5.12, Dubbo 3.2.0, Java 17
  • 前端: LayUI 2.13.5, HTML, JavaScript
  • 数据库: MySQL 8.0+
  • 中间件: Elasticsearch, Kafka, LDAP, MongoDB, RabbitMQ, Redis, RocketMQ
  • AI: Ollama, OpenAI API
  • 认证: OAuth2, CAS
  • 服务注册与发现: Zookeeper
  • 构建: Maven 3.9+
  • 容器化: Docker

环境要求

  • JDK:17+
  • MySQL:8.0+
  • Maven:3.9+
  • Zookeeper:3.5+
  • 各中间件服务:
    • AI服务:Ollama或OpenAI API 和 ChromaDB 1.5.2
    • Elasticsearch:7.0+
    • Kafka:2.0+
    • MongoDB:4.0+
    • RabbitMQ:3.0+
    • Redis:5.0+
    • RocketMQ:4.0+
    • LDAP:2.4+
    • CAS服务器(可选,用于OAuth2.0和OIDC认证)

快速开始

1. 配置中间件服务

修改配置文件,配置各中间件服务的连接信息:

  • 本项目提供了完整的数据库初始化脚本,位于 smart-scaffold.sql,需要按需先执行该脚本创建数据库表结构。

  • 服务提供者配置:smart-scaffold-provider/src/main/resources/application.yml

  • 服务消费者配置:smart-scaffold-consumer/src/main/resources/application.yml

  • Dubbo配置:smart-scaffold-provider/src/main/resources/dubbo-provider.xmlsmart-scaffold-consumer/src/main/resources/dubbo-consumer.xml

    关键配置项:

    • OAuth2.0配置:在 bima.oauth2 节点下配置CAS服务器的授权、令牌和用户信息端点
    • OIDC配置:在 bima.oidc 节点下配置CAS服务器的OIDC授权、令牌和用户信息端点
    • LDAP配置:在 bima.ldap 节点下配置LDAP服务器的连接信息、基础DN、管理员DN和密码

2. 启动项目

方式一:IDE开发模式(以 Eclipse 工具为例)

  1. 导入项目:

    • 在IDE中选择 File -> Import -> Maven -> Existing Maven Project
    • 选择项目根目录,点击 Finish 完成导入
  2. 启动服务:

    • 先启动服务提供者:找到并打开 cc.bima.scaffold.provider.ProviderWebApplication 主启动类,右键点击该类,选择 Debug As -> Java Application 启动服务
    • 再启动服务消费者:找到并打开 cc.bima.scaffold.consumer.ConsumerWebApplication 主启动类,右键点击该类,选择 Debug As -> Java Application 启动服务
    • 服务启动后,可在控制台查看启动日志和调试信息

方式二:命令行模式(标准 Maven 命令)

bash
# 构建项目(清理并编译)
mvn clean compile

# 启动服务提供者
cd smart-scaffold-provider
mvn spring-boot:run

# 启动服务消费者(在另一个终端)
cd smart-scaffold-consumer
mvn spring-boot:run

# 打包为可执行 JAR 文件(生产部署)
mvn clean package

方式三:Docker容器化部署(基于 Jenkins 构建)

  1. 构建 Docker 镜像:

    Build Steps -> 执行 shell

    bash
     #!/bin/bash
     set -euo pipefail
    
     # 1. 环境变量
     unset JAVA_HOME
     unset PATH
     export JAVA_HOME=/usr/local/jdk17
     export PATH=$JAVA_HOME/bin:/usr/bin:/bin:/usr/sbin:/sbin
     export M2_HOME=/usr/local/maven
     export PATH=$M2_HOME/bin:$PATH
    
     # 2. Maven 阿里源
     mkdir -p ~/.m2
     tee ~/.m2/settings.xml <<-'EOF'
     <settings>
     <localRepository>/tmp/m2repo</localRepository>
     <mirrors>
         <mirror>
         <id>aliyunmaven</id>
         <mirrorOf>central</mirrorOf>
         <url>https://maven.aliyun.com/repository/public</url>
         </mirror>
     </mirrors>
     </settings>
     EOF
    
     # 3. 根目录编译
     echo "===== 根目录 Maven 构建 ======"
     mvn clean package -DskipTests -T 1C
    
     # 4. 构建 provider 镜像
     echo "===== 构建 provider 镜像 ======"
     docker build \
     -t smart-scaffold-provider-dubbo:latest \
     -f ./smart-scaffold-provider/Dockerfile \
     .
    
     # 5. 构建 consumer 镜像
     echo "===== 构建 consumer 镜像 ======"
     docker build \
     -t smart-scaffold-consumer-dubbo:latest \
     -f ./smart-scaffold-consumer/Dockerfile \
     .
    
     # 6. 查看结果
     echo "===== 构建完成 ======"
     docker images | grep smart-scaffold
  2. 运行 Docker 容器:

    构建后操作 -> Send build artifacts over SSH -> Exec command

    bash
     #!/bin/bash
     set -euo pipefail
    
     # 1. 定义 docker 路径
     DOCKER_CMD="/usr/local/bin/docker"
    
     # 2. 调试信息
     echo "=== 调试信息 ==="
     echo "Docker路径: $DOCKER_CMD"
     echo "当前用户: $(whoami)"
     echo "本地镜像: "
     $DOCKER_CMD images | grep smart-scaffold || echo "未找到镜像"
    
     # 3. 清理旧 Provider 容器
     echo "=== 清理旧 provider 容器 ==="
     $DOCKER_CMD stop smart-scaffold-provider-dubbo 2>/dev/null || echo "容器不存在"
     $DOCKER_CMD rm smart-scaffold-provider-dubbo 2>/dev/null || echo "容器不存在"
    
     # 4. 清理旧 Consumer 容器
     echo "=== 清理旧 consumer 容器 ==="
     $DOCKER_CMD stop smart-scaffold-consumer-dubbo 2>/dev/null || echo "容器不存在"
     $DOCKER_CMD rm smart-scaffold-consumer-dubbo 2>/dev/null || echo "容器不存在"
    
     # 5. 启动 Provider
     echo "=== 启动 provider ==="
     $DOCKER_CMD run -d \
     --name smart-scaffold-provider-dubbo \
     -p 8081:8081 \
     --restart=always \
     smart-scaffold-provider-dubbo:latest
    
     # 6. 启动 Consumer
     echo "=== 启动 consumer ==="
     $DOCKER_CMD run -d \
     --name smart-scaffold-consumer-dubbo \
     -p 8080:8080 \
     --restart=always \
     smart-scaffold-consumer-dubbo:latest
    
     # 7. 验证状态
     echo "=== 容器启动状态 ==="
     $DOCKER_CMD ps | grep smart-scaffold || {
     echo "启动失败!"
     echo "Provider日志: $DOCKER_CMD logs smart-scaffold-provider-dubbo"
     echo "Consumer日志: $DOCKER_CMD logs smart-scaffold-consumer-dubbo"
     }
    
     echo "=== 部署完成 ==="

3. 访问项目

  • 项目地址:http://localhost:8080

功能模块

1. AI服务

  • 普通聊天: 支持与AI模型进行实时对话,可用于问答、咨询等场景
  • 流式(SSE)聊天: 支持Server-Sent Events流式响应,提供更流畅的聊天体验,减少等待时间
  • 文章写作(SSE): 支持流式文字生成,可用于文章、邮件、代码等内容的创作
  • 内置写作风格: 管理和测试不同的写作风格,优化AI模型的输出效果
  • 多模型支持: 内置支持Ollama本地模型和OpenAI API,可根据需求切换(本项目默认使用Ollama模型进行调试),可设置使用系统模型或用户自定义模型
  • 嵌入向量: 支持文本嵌入功能,可用于语义搜索、相似度计算等场景

2. Elasticsearch

  • 索引管理: 创建、删除和管理索引
  • 文档操作: 添加、更新、删除和查询文档
  • 搜索功能: 执行各种搜索查询

3. Kafka

  • 消息发送: 发送消息到Kafka主题
  • 消息消费: 从Kafka主题消费消息
  • 主题管理: 查看和管理Kafka主题

4. MongoDB

  • 集合管理: 创建和管理集合
  • 文档操作: 添加、更新、删除和查询文档
  • 聚合查询: 执行复杂的聚合查询

5. MyBatis

  • 用户管理: 管理用户信息
  • 部门管理: 管理部门信息
  • 多数据源: 支持同时操作多个数据源

6. RabbitMQ

  • 消息发送: 发送消息到RabbitMQ队列
  • 消息消费: 从RabbitMQ队列消费消息
  • 队列管理: 查看和管理RabbitMQ队列

7. Redis

  • 键值操作: 设置、获取和删除键值对
  • 列表操作: 操作Redis列表
  • 哈希操作: 操作Redis哈希
  • 发布订阅: 使用Redis的发布订阅功能

8. RocketMQ

  • 消息发送: 发送消息到RocketMQ主题
  • 消息消费: 从RocketMQ主题消费消息
  • 主题管理: 查看和管理RocketMQ主题

9. LDAP

  • 连接测试: 测试LDAP服务器连接状态
  • 用户认证: 验证用户凭据是否正确
  • 用户管理:
    • 添加用户:创建新的LDAP用户
    • 删除用户:删除现有LDAP用户
    • 修改用户:更新用户属性
    • 查找用户:根据用户名查找用户信息
  • 组织单元管理: 获取LDAP中的所有组织单元(OU)
  • 用户搜索: 使用LDAP搜索过滤器查找用户
  • 配置管理: 查看当前LDAP配置信息

OAuth2/OIDC认证流程

  1. 配置认证服务器:
    • application.yml 中配置OAuth2.0和OIDC认证服务器信息
  2. 登录流程:
    • 访问登录页面 http://localhost:8080/login
    • 选择登录方式:
      • OAuth2.0登录:点击"CAS登录"按钮,重定向到CAS服务器进行OAuth2.0认证
      • OIDC登录:点击"OIDC登录"按钮,重定向到CAS服务器进行OIDC认证
    • 在CAS服务器上登录并授权
    • 授权成功后,重定向回项目并自动登录
  3. 获取用户信息:
    • 登录成功后,系统会自动获取并存储用户信息
    • 可在 http://localhost:8080 查看用户信息
    • 登录方式会显示在用户信息页面

测试用例

项目提供了完整的测试用例,包括:

  • AI服务测试
  • Elasticsearch测试
  • Kafka测试
  • LDAP测试
  • MongoDB测试
  • MyBatis测试
  • RabbitMQ测试
  • Redis测试
  • RocketMQ测试

运行测试用例:

bash
mvn test

扩展与定制

1. 添加新的中间件

  1. smart-scaffold-api 模块中定义新的服务接口
  2. smart-scaffold-provider 模块中实现新的中间件服务
  3. smart-scaffold-consumer 模块中添加对应的控制器
  4. smart-scaffold-consumer/src/main/resources/templates 中添加前端页面
  5. application.yml 和 Dubbo配置文件中添加相关配置

2. 定制前端界面(LayUI框架)

  • 修改 smart-scaffold-consumer/src/main/resources/templates 目录下的HTML文件
  • 修改 smart-scaffold-consumer/src/main/resources/static 目录下的静态资源

3. 扩展业务逻辑

  • smart-scaffold-api 模块中定义新的服务接口
  • smart-scaffold-provider 模块中实现新的业务服务
  • smart-scaffold-consumer 模块中添加对应的控制器

Dubbo架构说明

本项目采用Dubbo分布式服务架构,主要包含以下组件:

  • 服务注册与发现: 使用Zookeeper作为服务注册中心,实现服务的自动注册和发现
  • 服务调用: 使用Dubbo的RPC机制实现服务间的远程调用
  • 负载均衡: 集成Dubbo的负载均衡机制,实现服务调用的负载均衡
  • 配置管理: 使用Spring Boot的配置文件管理各服务的配置
  • 服务监控: Dubbo提供了服务监控和管理功能

免责声明

本项目基于 GitHub 开源软件进行定制化开发,旨在为企业和开发者提供更便捷的项目基座解决方案。使用本项目时,请务必了解以下免责声明:

  1. 开源基础:本项目基于 GitHub 开源软件构建,遵循原开源协议的相关规定。
  2. 定制开发:我们对原开源软件进行了定制和扩展,以提供更优质的开发体验和功能支持。
  3. 责任限制:对于使用本项目可能产生的任何直接或间接的经济损失、数据丢失或其他问题,北京必码科技工作室不承担任何责任。
  4. 使用建议:在生产环境中使用本项目前,请进行充分的测试和验证,确保其符合您的业务需求和安全要求。
  5. 技术支持:我们提供技术支持服务,但不保证解决所有可能出现的问题。
  6. 合规使用:用户应确保在使用本项目时遵守相关法律法规和行业规范,不得用于任何违法或违规用途。