Appearance
智能中间件集成验证脚手架(Dubbo版)
项目简介
智能中间件集成验证脚手架(Dubbo版)是面向开发者打造的一站式分布式服务项目脚手架,深度融合 AI 能力与主流中间件集成方案,支持开发者快速完成各类常用中间件服务的集成、验证与测试,大幅提升开发效率。
项目基于Dubbo分布式服务框架,提供标准化中间件集成方案、统一 Web 界面及配套测试工具,同时集成智能辅助能力,支持 Ollama 本地模型与 OpenAI API 调用。开发者可借助该脚手架快速搭建测试环境、验证中间件功能,并通过 AI 能力加速开发流程,有效缩短项目研发与调试周期。

技术支持
- 技术支持: 北京必码科技工作室
- 官方文档: https://bima.cc
- 官方店铺: https://bima.taobao.com
- 联系邮箱: bima.cc@qq.com
- 联系微信: e18929958
核心功能
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.ymlDubbo配置:
smart-scaffold-provider/src/main/resources/dubbo-provider.xml和smart-scaffold-consumer/src/main/resources/dubbo-consumer.xml关键配置项:
- OAuth2.0配置:在
bima.oauth2节点下配置CAS服务器的授权、令牌和用户信息端点 - OIDC配置:在
bima.oidc节点下配置CAS服务器的OIDC授权、令牌和用户信息端点 - LDAP配置:在
bima.ldap节点下配置LDAP服务器的连接信息、基础DN、管理员DN和密码
- OAuth2.0配置:在
2. 启动项目
方式一:IDE开发模式(以 Eclipse 工具为例)
导入项目:
- 在IDE中选择
File->Import->Maven->Existing Maven Project - 选择项目根目录,点击
Finish完成导入
- 在IDE中选择
启动服务:
- 先启动服务提供者:找到并打开
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 构建)
构建 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运行 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认证流程
- 配置认证服务器:
- 在
application.yml中配置OAuth2.0和OIDC认证服务器信息
- 在
- 登录流程:
- 访问登录页面
http://localhost:8080/login - 选择登录方式:
- OAuth2.0登录:点击"CAS登录"按钮,重定向到CAS服务器进行OAuth2.0认证
- OIDC登录:点击"OIDC登录"按钮,重定向到CAS服务器进行OIDC认证
- 在CAS服务器上登录并授权
- 授权成功后,重定向回项目并自动登录
- 访问登录页面
- 获取用户信息:
- 登录成功后,系统会自动获取并存储用户信息
- 可在
http://localhost:8080查看用户信息 - 登录方式会显示在用户信息页面
测试用例
项目提供了完整的测试用例,包括:
- AI服务测试
- Elasticsearch测试
- Kafka测试
- LDAP测试
- MongoDB测试
- MyBatis测试
- RabbitMQ测试
- Redis测试
- RocketMQ测试
运行测试用例:
bash
mvn test扩展与定制
1. 添加新的中间件
- 在
smart-scaffold-api模块中定义新的服务接口 - 在
smart-scaffold-provider模块中实现新的中间件服务 - 在
smart-scaffold-consumer模块中添加对应的控制器 - 在
smart-scaffold-consumer/src/main/resources/templates中添加前端页面 - 在
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 开源软件进行定制化开发,旨在为企业和开发者提供更便捷的项目基座解决方案。使用本项目时,请务必了解以下免责声明:
- 开源基础:本项目基于 GitHub 开源软件构建,遵循原开源协议的相关规定。
- 定制开发:我们对原开源软件进行了定制和扩展,以提供更优质的开发体验和功能支持。
- 责任限制:对于使用本项目可能产生的任何直接或间接的经济损失、数据丢失或其他问题,北京必码科技工作室不承担任何责任。
- 使用建议:在生产环境中使用本项目前,请进行充分的测试和验证,确保其符合您的业务需求和安全要求。
- 技术支持:我们提供技术支持服务,但不保证解决所有可能出现的问题。
- 合规使用:用户应确保在使用本项目时遵守相关法律法规和行业规范,不得用于任何违法或违规用途。