BladeX——精心设计的微服务架构
Posted 你食不食油饼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BladeX——精心设计的微服务架构相关的知识,希望对你有一定的参考价值。
目录
序言
简介:
BladeX 是由一个商业级项目升级优化而来的SpringCloud微服务架构,采用Java8 API重构了业务代码,完 全遵循阿里巴巴编码规范。采用Spring Boot 2 、Spring Cloud Greenwich 、Mybatis 等核心技术,同时提 供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS微服务系统平台。官网地址:
官网地址: https://bladex.vip 技术社区: https://sns.bladex.vip 代码私库: https://git.bladex.vip演示地址:
Saber-基于Vue: https://saber.bladex.vip Sword-基于React: https://sword.bladex.vip Archer-全能代码生成系统: https://archer.bladex.vip
1、何为BladeX
- BladeX 是一个基于 Spring Boot 2 & Spring Cloud Greenwich & Mybatis 等核心技术,用于快速构建中
- 大型系统的基础框架。
- 已稳定生产近一年,经历了从Camden->Greenwich的技术架构,也经历了从FatJar->Docker-
- >K8S+Jenkins的部署架构。
- 采用前后端分离的模式,前端开发两个框架:Sword(基于React、Ant Design)、Saber(基于Vue、
- ElementUI)。
- 后端采用SpringCloud系列,对其基础组件做了高度的封装,单独出一个后端核心框架:BladeX-Tool。
- BladeX-Tool已推送至Maven私有库,直接引入减少工程的模块与依赖,可更注重于业务开发。
- 集成Sentinel从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
- 注册中心、配置中心选型Nacos,为工程瘦身的同时加强了各模块之间的联动。
- 封装集成了基于注解+Web可视化的数据权限,灵活配置,无需重启直接生效。
- 定制了基于Nacos的轻量级、高拓展性的动态网关,完美支持多团队开发。
- 精心设计集成了minio,完美支持多租户模式下的oss对象存储需求。
- Traefik反向代理,监听后台变化自动化应用新的配置文件。
- 集成Oauth2协议,完美支持多终端的接入与认证授权。
- 项目分包明确,规范微服务的开发模式。
2 、为何BladeX
- 经历过较长的线上生产,积累了很多企业痛点的解决方案。
- 一套代码兼容mysql、Oracle、PostgreSQL,适应企业各种不同场景的需求。
- 集成了很多企业急切所需的例如多租户、Oauth2授权认证、工作流、分布式事务等等功能。
- 集成最新版本ELK,界面美观,功能强大。同时深度定制了日志模块,支持分布式日志追踪功能。
- 深度定制了Flowable工作流,完美支持SpringCloud分布式服务的场景,以远程调用的方式进行操作。
- 升级了核心驱动,新功能完全可以开箱即用,而开源版需要自己再花时间进行集成,需要花掉更多的时间成
- 本。
- 拥抱微服务时代,很多企业由于项目转型或升级,传统的技术已然不能满足,反而会花更多成本,而BladeX
- 就是为此而生。
- 同时提供SpringCloud版本和SpringBoot版本,两个版本的api可以与Sword和Saber无缝对接,为小型项目
- 至大型项目保驾护航
3、 系统架构
架构图 架构简介- 基于SpringBoot2、SpringCloud Greenwich、Mybatis构建核心架构
- 采用Oauth2协议进行统一的Token下发与鉴权,保证系统安全性
- 使用Gateway进行网关的统一转发,生产环境采用Traefik代理
- 微服务统一注册至Nacos,Nacos担任注册中心与配置中心的角色
- 采用Feign进行远程调用,Ribbon进行负载,Hystrix进行熔断
- 采用Sentinel进行限流,保障系统整体的性能
- 集成Seata,为分布式事务保驾护航
- 具有日志收集与监控服务为一体的能力
- 支持FatJar、Docker、K8s、阿里云等多种部署方
4 、核心功能
BladeX特性 BladeX主要功能一览
BladeX核心功能一览
序号 | 主要特性 | 特性描述 |
1、 | 前后端分离 | 采用前后端分离模式,前 端提供两套架构,Sword 基于React,Saber基于 Vue |
2、 | 分布式单体式后端架构 | 提供两套后端架构,基于 SpringCloud的分布式架 构以及基于SpringBoot的单体式架构 |
3、 | API完全兼容 | 两套后端架构与两套前端 架构,共四套架构可以任 意组合,所有API完全兼容 |
4、 | 前后端代码生成 | 定制针对两套前端与后端的代码生成模板,轻松生成整个模块的前后端代码,减少重复工作量 |
5、 | 组件化、插件化架构 | 针对功能深度定制各个 starter引入开箱即用,为整个架构解耦提升效率 |
6、 | Greenwich | SpringCloud整体版本升级至Greenwich |
7、 | Nacos | 集成阿里巴巴的Nacos完成统一的服务注册与配置 |
8、 | Sentinel | 集成Sentinel从流量控制、熔断降级、系统负载 等多个维度保护服务的稳定性 |
9、 | Dubbo | 完美集成Dubbo最新版,支持远程RPC调用 |
10、 | 多租户系统 | 完整的SaaS多租户架构 |
11、 | Oauth2 | 集成Oauth2协议,完美支持多终端的接入与认证授权 |
12、 | 工作流 | 深度定制SpringCloud分布式场景的Flowable工作流,为复杂流程保驾护航。同时提供 SpringBoot集成版本 |
13、 | 独立流程设计器 | 提供独立的完全汉化的流程设计器,轻松定制流程模型 |
14、 | 动态网关 | 集成基于Nacos的轻量级、高拓展性动态网关 |
15、 | 动态聚合文档 | 实现基于Nacos的Swagger SpringCloud 聚合文档 |
16、 | 分布式文件服务 | 集成minio等优秀的第三方,提供便捷的文件上传与管理 |
17、 | 多租户对象存储系统 | 在SaaS系统中,各租户可自行配置文件上传至自己的私有OSS |
18、 | 权限管理 | 精心设计的权限管理方案,角色权限精确到按钮 |
19、 | 动态接口权限 | 高度灵活的动态接口权 限,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效 |
20、 | 多租户顶部菜单配置 | 提供给每个租户独立的顶部菜单配置模块,可以自定义顶部菜单切换 |
21、 | 动态数据权限 | 高度灵活的动态数据权限,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效 |
22、 | 主流数据库兼容 | 一套代码完全兼容Mysql、Postgresql、 Oracle三大主流数据库 |
23、 | 动态网关鉴权 | 基于Nacos的动态网关鉴权,可在线配置,实时生效 |
24、 | 全能代码生成器 | 支持自定义模型、模版、业务建模,支持多种模板引擎,在线配置。大幅度提升开发效率,不再为重复工作发愁。 |
25、 | Seata分布式事务 | 定制集成Seata,支持分布式事务,无代码侵入,不失灵活与简洁 |
26、 | Turbine集群监控 | 集成Turbine集群监控,方便查看hystrix的实时状态 |
27、 | Zipkin链路追踪 | 集成Zipkin分布式链路追踪,快速查找每个请求的调用链 |
28、 | 分布式日志模块 | 集成7.x版本ELK,支持分布式日志追踪功能 |
29、 | 钉钉监控告警 | 增强监控,微服务上下限集成钉钉告警 |
30、 | 分布式任务调度 | 极简集成xxl-job,支持分布式任务调度功能 |
31、 | 消息队列 | Rabbit、SpringCloudStream等消息队列 |
32、 | 分布式锁 | 基于Redisson封装的高性能、简单易用的分布式锁插件 |
33、 | 更多功能即将到来 | BladeX持续开发中,敬请期待 |
以上是关于BladeX——精心设计的微服务架构的主要内容,如果未能解决你的问题,请参考以下文章
基于Spring Cloud Alibaba + mybatis 分布式微服务高并发架构 数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案
基于Spring Cloud Alibaba 前后端分离架构分布式微服务高并发架构 数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案