
9

微服务分布式架构 & 单体分层架构
source link: https://www.oschina.net/p/pangu-framework
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

盘古开发框架是一套轻量灵活的 Java 开源企业级单体开发 & 微服务分布式开发治理框架。
架构设计范式和指导原则
在做类设计、模块结构划分、技术组件选型、框架体系架构设计时会优先遵循的一些设计范式和指导原则。
- 约定优于配置(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编程式对业务代码在分布式环境下加并发锁。
- 应用日志输出级别动态切换、分布式日志跟踪等...
展开阅读全文
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK