一、开源项目简介

这是一套轻量灵活的Java开源企业级单体开发 & 微服务分布式开发治理框架(遵循Apache-2.0 LICENSE发布)。

二、界面展示

轻量灵活的Java开源企业级单体开发&微服务分布式开发治理框架插图

三、功能概述

开箱即用、轻量灵活

开箱即用的技术组件库、搭配自定义SpringBoot启动器和轻巧的代码生成Maven插件,可随意组合、自动装配、灵活插拔。 既能构建支持大并发高可用的互联网分布式架构也能搭建小而美的传统单体分层架构。

成熟架构、稳定可靠

盘古技术栈融合云原生思想,在微服务、容器化、DevOps等方面完美支持和兼容适配,构建以”服务”为中心的现代应用架。帮助用户在云原生时代的各种云环境中更好的构建、交付、管理自己的微服务平台。

全栈百搭适配各类业务场景

聚焦面向(移动)互联网的电商、金融、云端SAAS服务等大并发高可用可扩展的业务场景。 同时也能满足诸如ERP、CRM之类的各种企业数字化和各级电子政务系统等中小规模应用。

架构设计范式和指导原则

TIP

我们在做类设计、模块结构划分、技术组件选型、框架体系架构设计时会优先遵循的一些设计范式和指导原则。

  • 约定优于配置(convention over configuration)
  • 开发人员仅需在没有约定和约定不符合需要的时候自定义配置。
  • 组合优于继承(composition over inheritance )
  • 尽量使用合成或聚合的方式,而不是继承派生关系。
  • 单一职责原则(single responsibility principle)
  • 最佳实践原则(best practice principle)
  • 通过大量的生产实例,总结最佳实践,沉淀复用。
  • 服务优先原则(service first principle)
  • 服务是盘古框架的一等公民。我们旨在微服务范式和云原生范式基础上构建以”服务”为中心的现代应用架构。
  • 简约而不简单(less is more)
  • 坚持选型自信和道路自信,不求大而全专注小而精。

主要功能特性

  • 自定义的pangu-*-spring-boot-starter启动器,覆盖开发过程常见需求,完成各个盘古模块的自动装备。
  • 自定义的代码生成器Maven插件pangu-generator-maven-plugin,生成开发所需的模版代码。
  • 基于Apache ShenYu网关框架,实现对后端Dubbo服务的泛化调用;同时网关支持鉴权、动态限流、熔断、防火墙;支持 A/B Test,蓝绿发布等。
  • 基于Apache Dubbo框架,提供面向接口代理的高性能RPC调用、智能容错和负载均衡、运行期流量调度、可视化的服务治理与运维。
  • 基于Nacos,提供动态配置服务,以中心化、外部化和动态化的方式管理所有环境的应用配置参数;提供了对Dubbo服务的服务发现和服务监控监测等服务元数据可视化管理。
  • 基于Mybatis-Plus,在MyBatis的基础上提供了强大的内置通用Mapper CRUD操作、支持Lambda表达式、内置屏蔽不通数据库方言差异的分页插件、自动填充字段值、多种主键自动生成策略、逻辑输出、乐观锁插件等。
  • 基于layering-cache,提供支持分布式环境的多级缓存功能。使用Caffeine作为一级本地缓存,Redis作为二级集中式缓存。
  • 基于lock4j,提供分布式锁。支持注解声明式和API编程式对业务代码在分布式环境下加并发锁。
  • 应用日志输出级别动态切换、分布式日志跟踪等…

FAQ​

在这里我将以最简单直接的方式回答一些用户可能最想了解的常见问题。

1. 盘古开发框架会收费吗?​

不会。盘古开发框架在商用友好的Apache-2.0开源协议下发布。其创始初衷就是”分享经验-传递价值-回馈社区”,不会以文档、支持、有偿组件等各种骚操作进行收费。如果盘古框架对你有用,尽可放心使用。

2. 盘古开发框架可以做单体开发吗?​

可以。从纯技术角度看,盘古开发的最佳姿势是分布式微服务开发。但也完美支持搭建传统单体分层架构的开发模式。具体请参考相关文档和范例。

3. 盘古开发框架和Spring Cloud或Spring Cloud Alibaba是什么关系?​

都没啥直接关系。盘古开发框架是完全独立于Spring Cloud (*)生态之外的一套轻量灵活、成熟可靠的分布式微服务开发和治理框架。可参考上述主要功能特性和盘古框架模块列表。

4. 盘古开发框架可以开发前端吗?有没有现成的“通用”权限管理的系统?​

不可以。盘古是纯后端的底层技术架构框架,可以为前端提供API接口。但并不涉及前端UI层开发,更无所谓的“通用”权限管理系统。

四、开源协议

使用Apache-2.0开源协议

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。