SpringBlade微服务开发平台

  • 采用前后端分离的模式,前端开源两个框架:Sword (基于 React、Ant Design)、Saber (基于 Vue、Element-UI)
  • 后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架:BladeTool
  • BladeTool已推送至Maven中央库,直接引入即可,减少了工程的臃肿,也可更注重于业务开发
  • 集成Sentinel从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性。
  • 注册中心、配置中心选型Nacos,为工程瘦身的同时加强各模块之间的联动。
  • 使用Traefik进行反向代理,监听后台变化自动化应用新的配置文件。
  • 极简封装了多租户底层,用更少的代码换来拓展性更强的SaaS多租户系统。
  • 借鉴OAuth2,实现了多终端认证系统,可控制子系统的token权限互相隔离。
  • 借鉴Security,封装了Secure模块,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。
  • 稳定生产了三年,经历了从 Camden -> Hoxton -> 2021 的技术架构,也经历了从fat jar -> docker -> k8s + jenkins的部署架构。
  • 项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。

架构图

工程结构

SpringBlade
├── blade-auth -- 授权服务提供
├── blade-common -- 常用工具封装包
├── blade-gateway -- Spring Cloud 网关
├── blade-ops -- 运维中心
├    ├── blade-admin -- spring-cloud后台管理
├    ├── blade-develop -- 代码生成
├    ├── blade-resource -- 资源管理
├    ├── blade-seata-order -- seata分布式事务demo
├    ├── blade-seata-storage -- seata分布式事务demo
├── blade-service -- 业务模块
├    ├── blade-desk -- 工作台模块 
├    ├── blade-log -- 日志模块 
├    ├── blade-system -- 系统模块 
├    └── blade-user -- 用户模块 
├── blade-service-api -- 业务模块api封装
├    ├── blade-desk-api -- 工作台api 
├    ├── blade-dict-api -- 字典api 
├    ├── blade-system-api -- 系统api 
└──  └── blade-user-api -- 用户api 

技术文档

  • SpringBlade开发手册一览
  • SpringBlade常见问题集锦
  • SpringBlade基于Kuboard部署K8S
  • SpringBlade基于Rainbond部署

开源协议

Apache Licence 2.0 (英文原文) Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。 需要满足的条件如下:

  • 需要给代码的用户一份Apache Licence
  • 如果你修改了代码,需要在被修改的文件中说明。
  • 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  • 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

界面

BladeX 工作流一览

Sword 界面一览

Saber 界面一览

监控界面一览

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/349868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频占内存太大如何压缩?3种简单有效的方法~

很多时候我们需要压缩视频大小,比如节省存储空间、满足平台上传要求等,下面就给大家总结了几个简单且好用的视频压缩技巧,需要的朋友快来学起来~ 方法一:嗨格式压缩大师 嗨格式压缩大师是一款专业的压缩软件,可以压缩…

2024年新提出的算法:一种新的基于数学的优化算法——牛顿-拉夫森优化算法|Newton-Raphson-based optimizer,NRBO

1、简介 开发了一种新的元启发式算法——Newton-Raphson-Based优化器(NRBO)。NRBO受到Newton-Raphson方法的启发,它使用两个规则:Newton-Raphson搜索规则(NRSR)和Trap Avoidance算子(TAO&#…

【JavaSE】P114~P147 ArrayList集合,Scanner类,Random,字符串及相关常用方法,静态static

目录 1 ArrayList 集合装箱,拆箱及包装类 2 API 概述和使用Scanner类匿名对象Random生成随机数 3 字符串字符串的31种构造方法字符串的常量池equals和 字符串的获取相关方法字符串的截取方法字符串的转换相关方法字符串的分割方法 4 静态static关键字静态static的内…

【python】爬取豆瓣影评保存到Excel文件中【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 【往期相关文章】 爬取豆瓣电影排行榜Top250存储到Excel文件中 爬取豆瓣电影排行榜TOP250存储到CSV文件中 爬取知乎热榜Top50保存到Excel文件中 爬取百度热搜排行榜Top50可视化 爬取斗鱼直播照片保存到本地目录 爬…

qwt的极坐标画雷达方向图

qwt的极坐标画天线方向图 请先看这位博主的专业文章,上面有权威讲解 方向图 曲线方程:matlab,引用博主的公式 f3e10;lamda(3e8)/f;beta2.*pi/lamda; n2; t0:0.01:2*pi;dlamda/4; Wbeta.*d.*cos(t);z1((n/2).*W)-n/2*beta*d;z2((1/2).*W)-1/2…

node.js漏洞总结

js开发的web应用和php/Java最大的区别就是js可以通过查看源代码的方式查看到编写的代码,但是php/Java的不能看到,也就是说js开发的web网页相当于可以进行白盒测试。 流行的js框架有: 1. AngularJS 2. React JS 3. Vue 4. jQuery 5. Backbone…

ChatGPT 和文心一言 | 两大AI助手哪个更胜一筹

欢迎来到英杰社区: https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区: https://bbs.csdn.net/topics/617897397 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步&#xff…

C++ qt标题栏组件绘制

本博文源于笔者在学习C qt制作的标题栏组件,主要包含了,最小化,最大化,关闭。读者在看到这篇博文的时候,可以直接查看如何使用的,会使用了,然后进行复制粘贴源码部分即可。 问题来源 想要制作…

JS-M端事件

移动端也有自己独特的地方。比如触屏事件touch(也称触摸事件),Android和IOS都有。 1)touch对象代表一个触摸点。触摸点可能是一根手指,也可能是一根触摸笔。触屏事件可响应用户手指(或触控笔)对…

mysql高可用设计,主库挂了怎么办

实际上高可用就是系统能提供的一种无故障服务能力,就是避免宕机出现不能服务的场景。 首先来说对于无状态服务的高可用设计是比较简单的,发现有不能用的就直接停了换别的服务器就行,比如Nginx。这里说一下无状态服务就是不需要记录你的状态、…

redo log

问:redo log是什么?拿来干嘛的? 现象:如果提交一个事务,就刷新一次磁盘。那么会存在如下问题: 1、单改一条记录,至少都是刷新一个页,造成大量的磁盘I/O浪费 2、随机I/O比连续I/O慢&a…

智能洗地机哪款好用?全能型洗地机推荐

家庭清洁产品是我们生活中熟悉的存在,对于注重清洁的家庭来说,在选择清洁用品时不可避免地会考虑洗地机。相比传统的拖把,使用洗地机确实给人更好的体验。从理论上来说,洗地机作为一种吸尘和拖地一体的清洁工具,能够应…

智能照明控制系统智能化管理

传统的照明控制系统和智能照明控制系统之间的区别: 传统的照明控制系统开关方式比较单一只有“开”和“关”:但是智能那个照明控制系统可以采用“调光模式”通过光源的调光适应不同使用场合下的不同的灯光效果,能够营造出不同场景的氛围感。…

(2024,-DAE,去噪 DM,去噪 AE,影响 SSRL 性能的关键成分,PCA 潜在空间)解构自监督学习的去噪扩散模型

Deconstructing Denoising Diffusion Models for Self-Supervised Learning 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 4. 解构去噪扩散模型 4.1. 用于自监督学习的重新…

【Java面试】redis

目录 Redis 介绍Reids常用5种数据类型一个字符串类型的值能存储最大容量是多少?Redis 有哪些适合的场景?Redis的并发竞争问题如何解决?什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?Redis 中设置过期…

VISA 通过USB的接口控制 万用表,指令说明

//申明一个万用表设备,以及初始化配置 var session (Ivi.Visa.IMessageBasedSession)Ivi.Visa.GlobalResourceManager.Open(ID_34461A); session.FormattedIO.WriteLine("CONF:VOLT:DC"); session.FormattedIO.WriteLine("VOLT:DC:NPLC 10"); …

Linux的文件系统、软硬链接、动静态库

前要:本次我想给您带来关于 IO 和文件的知识,而文件在本系列中分为内存上的文件和磁盘上的文件。 1.文件概念 1.1.文件读写 在谈及系统接口之前,我们先来从 C 语言的角度来谈及一些前要知识,以辅助我们后续来理解系统 IO。 我们…

Web3:B站chainlink课程Lesson5遇到的小坑汇总

ethers代码 我用的ethers.js 6 ,和视频里一样用的是5的不用看代码部分 ethers.providers.JsonRpcProvider("server") //无了 ethers.JsonRpcProvider("server") //现在的wallet.getTransactionCount() //无了 wallet.getNonce() //现在的Big…

【代码】使用预训练的语义分割网络

P274书上的代码,这里是从ipynb文件中按顺序复制来的: 使用到的图片如下: 代码: import numpy as np import pandas as pd import matplotlib.pyplot as plt import PIL import torch from torchvision import transforms impor…

【算法与数据结构】377、LeetCode组合总和 Ⅳ

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题明面上说是组合,实际上指的是排列。动态规划排列组合背包问题需要考虑遍历顺序。 d p …