BladeX——精心设计的微服务架构

Posted 你食不食油饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BladeX——精心设计的微服务架构相关的知识,希望对你有一定的参考价值。

目录

序言

1、何为BladeX

2 、为何BladeX

3、 系统架构

4 、核心功能


序言

简介:

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——精心设计的微服务架构的主要内容,如果未能解决你的问题,请参考以下文章

多租户系统微服务开发平台

多租户管理的核心思想和架构设计

基于RBAC的模式的多租户权限设计

基于Spring Cloud Alibaba + mybatis 分布式微服务高并发架构 数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案

基于Spring Cloud Alibaba 前后端分离架构分布式微服务高并发架构 数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案

带你解析Java微服务架构优缺点