盘古开发框架 是一套轻量稳健的工业级 Web 接口服务和中后台业务系统开发框架。原生支持微服务分布式架构的同时也兼容单体应用架构模式。基于商业友好的 Apache-2.0 协议免费开源发布。我们希望不仅是开源的受益者也能成为开源贡献者,与开源社区一起共建共享开源生态。
设计原则
在类设计、模块结构划分、技术组件选型、框架体系架构设计时会优先遵循的一些设计范式和指导原则。
-
极简原则
大道至简,简单代表好用、稳定、易协作。坚持「Keep it Simple & Stupid」设计理念。 -
最佳实践原则
通过大量的生产实例检验,沉淀复用最佳实践。 -
无为而治原则
不求大而全,轻量灵活保持架构的纯洁与透明,坚持「Less is More」设计理念。 -
服务优先原则
「服务」是盘古开发框架的一等公民,旨在微服务和云原生范式基础上构建「以服务为中心」的现代应用架构。 -
一致性原则
双架构支持,既是分布式微服务架构的工业级首选,同时也能兼容特定需求场景下的单体应用开发。
生态架构图
特性一览
开箱即用、轻量灵活
开箱即用的技术组件库,可随意组合、自动装配。轻量灵活的 权限系统参考实现 ,可实现快速搭建二次开发脚手架的能力。同时支持大并发易扩展的高可用分布式架构也能快速组装成垂直单体分层架构。成熟架构、稳定可靠
盘古技术栈融合云原生思想,在微服务、容器化、DevOps 等方面完美支持和适配。可在云原生时代构建以「服务」为中心的现代应用架构,帮助用户在云环境中更好的构建、交付和管理自己的微服务平台。全栈百搭适配各类业务场景
聚焦面向(移动)互联网的电商、金融、云端 SAAS 服务等大并发高可用可扩展的业务场景。 同时也能满足诸如 ERP 、CRM 等各种企业数字化和各级电子政务系统的中小规模应用需求。
主要功能
- 自定义的 Spring Boot 启动器,完成各功能组件的自动装配。
- 自研轻量 Maven 插件,支持各场景的模版代码生成。
- 配置参数外部化、动态化和中心化管理。
- 面向接口代理的高性能 RPC 服务调用。
- 支持服务调用智能容错和负载均衡、服务限流与熔断、可视化的服务治理与运维等。构建「以服务为中心」的现代应用架构服务平台。
- 强大的数据访问能力,内置通用 CRUD 接口;支持 Lambda 表达式;提供逻辑删除、乐观锁、分页、字段值填充等功能。
- 支持基于异步非阻塞模型的高性能 HTTP 网关通过泛化调用后端 Dubbo 服务。同时网关支持 HTTP 层的鉴权、动态限流、熔断、防火墙、灰度发布等。
- 提供靠谱的最终一致性分布式事务落地方案。
- 提供数据治理相关功能,如:读写分离、数据分片、数据加密等。
- 提供消息队列在异步通信、服务解耦、消峰填谷、缓存同步等应用场景下的使用能力。
- 提供分布式环境下的多级缓存功能(注解式和编程式)。Caffeine 作为一级本地缓存,Redis 作为二级集中式缓存。
- 支持可配置、可监控的分布式任务调度。
- 支持注解声明式和编程式对业务代码在分布式环境下加并发互斥锁。
- 提供成熟的中后台业务系统二次开发脚手架(含前后端和 权限系统参考实现 )。<Highlight color="#F56C6C">HOT</Highlight>
- 应用日志输出级别动态切换、分布式日志跟踪等...
组件依赖
-
基础核心组件
- Spring Boot ※ Spring Framework
- MyBatis (MyBatis Plus)
- Apache Dubbo
- Aliware Nacos
-
扩展增强型组件
- Apache ShardingSphere
- Aliware Seata
- Aliware Sentinel
- Layering Cache
- Lock4J
- TLog
-
辅助工具类组件
- Lombok
- Apache Commons
- Google Guava
- Hutool
可选组件
可选组件指由我们优选的做过适配或提供集成方案,但不作为盘古框架缺省或标配的组件。
- Apache ShenYu
- XXL Job
模块列表
-
pangu-parent
盘古资源依赖声明管理模块 -
pangu-common
盘古公共基础类库 -
pangu-spring-boot-starter
盘古启动、中心化配置等基础能力自动装配模块 -
pangu-dubbo-spring-boot-starter
盘古 Dubbo 服务开发自动装配模块 -
pangu-jdbc-spring-boot-starter
盘古数据库持久化操作自动装配模块 -
pangu-cache-spring-boot-starter
盘古缓存开发自动装配模块 -
pangu-web-spring-boot-starter
盘古 Web 应用自动装配模块 -
pangu-rabbitmq-spring-boot-starter
盘古消息队列自动装配模块 -
pangu-seata-spring-boot-starter
盘古分布式事务自动装配模块 -
pangu-data-governance-spring-boot-starter
盘古数据治理(读写分离、数据分片等)自动装配模块 -
pangu-generator-maven-plugin
盘古代码生成器Maven插件 -
pangu-admin
盘古中后台业务系统二次开发脚手架(含前后端和 权限系统参考实现 ) -
pangu-website
盘古项目官网和文档 -
pangu-examples
盘古框架模版化参考范例集