Skip to content

Microservice Framework

作者:Andy Yang

面向生产级分布式系统的企业级 Java/Spring Boot 微服务应用基座。

中文 | English | 快速开始 | Starter | 公开 PRD | Discussions | 贡献指南

Java Spring Boot Spring Cloud License Build GitHub stars GitHub release GitHub issues Contributors

Microservice Framework 通过统一 Parent、BOM、Starter、Demo 和验收体系,为企业级微服务应用提供标准化基座。应用团队可以按需组合能力并直接开发业务代码,框架负责工程治理、基础设施接入、安全边界、可观测性和生产运行约束。

五分钟开始: 构建基础框架 · 运行 Demo · 查看 19 个 Starter · 参与讨论

如果项目能减少你的基础设施重复建设,欢迎 Star 并在真实项目中验证。Issue、测试结果和代码审查都会直接帮助框架持续演进。

项目定位

  • 为企业中台和高并发 C 端应用提供统一的微服务开发基座。
  • 通过 Parent POM 与 BOM 集中治理 Java、Spring Boot、Spring Cloud、插件和第三方依赖版本。
  • 提供 19 个生产导向的 Spring Boot Starter,支持默认组合和按需扩展。
  • 使用独立 Demo Controller API 验证所有面向应用开发者开放的能力。
  • 同时覆盖无外部依赖的嵌入式验收和真实本地中间件验收。
  • 让业务团队专注于业务实现,避免重复建设通用基础能力。

开源愿景

Microservice Framework 源于作者 Andy Yang 自 JDK 8 时代开始维护的一套企业级应用脚手架。它曾服务于多个实际项目,并在持续演进中积累了微服务开发、基础设施接入、工程治理和生产运行方面的实践经验。

进入 AI 辅助软件工程时代后,项目在既有实践基础上进行了系统性的二次构建:重新梳理架构边界,统一 Parent、BOM 与 Starter 体系,并补充自动化测试、Demo 验收、真实中间件验证和开源工程规范。AI 参与需求整理、技术设计、代码实现、测试、审查和文档维护,维护者负责目标定义、架构约束、质量标准和最终验收。

本项目开源有三个主要目标:

  1. 为社区提供一套可使用、可验证、可扩展的 Java 微服务应用基座,减少企业应用在通用技术能力上的重复建设。
  2. 通过真实项目反馈、社区贡献和持续验收,不断改进框架的完整性、可靠性、安全性和生产适用性。
  3. 探索 AI 驱动的软件工程模式:验证在明确需求、架构规则、测试标准和治理机制约束下,AI 能否持续承担基础框架的设计、开发、测试、审查和维护工作,降低项目对特定开发人员的依赖。

后续项目变更将优先采用 AI 驱动的工程流程。AI 生成的变更仍必须经过自动化测试、Demo 实战验证、代码审查和维护者验收,不会因使用 AI 而降低质量、安全或兼容性标准。

我们欢迎开发者运行 Demo、验证 Starter、提交问题、补充测试、审查 AI 生成的代码,并提出更适合生产环境的实现方案。社区反馈既用于完善框架,也将成为评估 AI 软件工程能力边界的重要依据。

人定义目标、边界和验收标准,AI 执行主要工程工作,自动化证据与社区审查共同验证结果。

技术基线

分类 技术
语言与构建 Java 21、Maven 3.9+
应用框架 Spring Boot 3.3.13、Spring Cloud 2023.0.6
Web 与调用 Spring MVC、Jakarta Validation、OpenFeign
安全 Spring Security、OAuth2 Resource Server、JWT、Keycloak 集成模型
配置 Nacos、Apollo、Kubernetes ConfigMap
数据 MySQL、HikariCP、ShardingSphere-JDBC、Redis、Elasticsearch
消息与任务 Kafka、XXL-JOB、受治理异步线程池
可观测 Actuator、Micrometer、OpenTelemetry、Prometheus、OTLP
规则与存储 Drools/KIE、S3 兼容对象存储
测试 JUnit 5、AssertJ、Mockito、REST Assured、JMeter

详细版本和兼容性约束见 技术栈矩阵工程基线

Starter 能力

Starter 核心能力
common-starter 日期时间、时区、分布式 ID、错误码、分页、轻量上下文和通用工具
json-starter 统一 JSON 抽象,默认 Jackson,可选 Fastjson2
web-starter 统一响应、RequestId、参数校验、异常处理和 Web 治理
logging-starter 结构化日志、脱敏、异步输出、风暴保护和日志级别治理
observability-starter 指标、链路追踪、健康检查、Prometheus 和 OTLP 接入
async-starter 受治理线程池、上下文传播、拒绝策略和优雅停机
security-starter JWT 资源服务、接口权限、内部可信服务身份和安全异常响应
redis-starter 缓存、批量失效、分布式锁、限流、计数器和通用 Redis 操作
database-starter 数据源、事务、读写分离、ShardingSphere-JDBC 和 Outbox
kafka-starter 可靠生产、消费模型、手动/自动提交、DLQ、幂等和 Outbox 发布
elasticsearch-starter 索引、查询、分页、批量操作、别名和运行治理
feign-starter 服务调用、上下文透传、服务身份、连接池、超时、重试和指标
xxl-job-starter 任务执行、幂等、超时和生命周期治理
audit-starter 后台管理动作审计和防篡改校验
field-encryption-starter 字段级加密抽象和 AES-GCM 默认实现
object-storage-starter S3/MinIO、上传、下载、删除和预签名 URL
drools-starter 规则加载、执行、校验和版本信息
nacos-starter Nacos 与 Kubernetes 配置接入和配置治理
apollo-starter Apollo 与 Kubernetes 配置接入和配置治理

快速开始

环境要求:JDK 21、Maven 3.9+。

git clone https://github.com/andy-library/microservice-framework.git
cd microservice-framework

cd SourceCode/microservice-framework-parent
mvn clean install

构建某个 Starter:

cd ../microservice-framework-common-starter
mvn clean verify

运行 Demo 的嵌入式全量验收:

cd "../../Microservice Demo/SourceCode/microservice-framework-demo"
mvn clean verify

运行需要本地 MySQL、Redis、Kafka、Elasticsearch、Nacos 和 Apollo 的真实验收:

mvn verify -Preal-middleware-acceptance \
  -Ddemo.real.middleware.acceptance=true

验收基线

当前 main 已验证:

  • Demo 嵌入式套件:116 项测试,0 失败;28 项真实环境测试按设计跳过。
  • Demo 真实中间件套件:28 项测试,0 失败。
  • Parent 消费者契约:9 项场景,全部通过。
  • GitHub Actions:Parent、19 个 Starter、消费者契约和 Demo 干净构建全部通过。

真实验收覆盖 MySQL、Redis、Kafka、Elasticsearch、Nacos、Apollo,以及 Security、Feign 和各 Starter 的应用侧 Controller API。

项目结构

microservice-framework/
├── README.md                 # GitHub 默认中文入口
├── README-zh.md              # 中文文档
├── README-en.md              # English documentation
├── LICENSE
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── SECURITY.md
├── CHANGELOG.md
├── ROADMAP.md
├── PRD/
│   ├── Requirements/         # Framework、Parent 与各 Starter PRD
│   └── Design/               # 技术设计、工程基线和测试设计
├── SourceCode/               # Parent、BOM 与 19 个 Starter
└── Microservice Demo/
    ├── SourceCode/           # 独立可运行 Demo
    └── Reports/              # JMeter 脚本与正式测试报告

工程治理

  • Starter 不独立声明受保护的依赖版本,统一由 Dependencies BOM 管理。
  • 业务应用继承 Starter Parent,并按需引入 Starter。
  • Nacos 与 Apollo 是互斥的配置中心选项,不允许同时启用。
  • 外部公网访问由部署环境中的 API Gateway 管理,不属于应用 Starter。
  • 内部服务调用使用 Feign,并支持用户上下文与服务身份透传。
  • 真实数据库表结构升级应由 Flyway/Liquibase 等迁移工具管理,Starter 自动建表仅用于 Demo 或开发环境。

文档与社区

欢迎架构师、开发者、测试工程师、SRE 和安全工程师通过 Issue 与 Pull Request 共同维护项目。若项目对你或团队有帮助,也欢迎通过赞助、测试资源或基础设施支持长期维护;这不是使用门槛,也不会改变开放协作原则。

License

本项目采用 Apache License 2.0

About

AI-driven, production-oriented Java 21 microservice framework with Spring Boot 3, 19 reusable starters, real middleware tests, and enterprise governance.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages