[开源]主流技术栈的微服务RBAC 、SaaS多租户系统、一站式开发平台

35 阅读4分钟

一、平台简介

平台名称:JNPF .NET-Cloud 快速开发平台

JNPF.NET-Cloud 是基于.NET 6技术框架封装的快速开发平台。平台包含多个开箱即用功能的模块;通用技术组件与服务、微服务治理;具备RBAC功能、网关统一授权、自动生成前后端代码、多种存储系统、分布式缓存、分布式定时任务、多租户等多个功能和模块;支持多业务系统(多服务)并行开发。

平台配有SqlSugar、Mapster、Serilog等多个中间件,采用Consul注册中心、Apollo配置中心、gPRC远程过程调用、ELK日记收集等。前端基于 vue-element-admin 框架定制开发,后端基于Spring Boot 2.7 & 3.0、 Spring Cloud & Alibaba、Spring Authorization Server打造,是一个较为广泛运用的开源版本平台,可帮助企业更快、更高效的进行微服务项目开发,为企业服务化中台整合、数字化中台转型提供强有力支撑。

技术架构图.png

二、功能概述

1、基于RBAC的权限体系

基于角色的访问控制方法(Role-Based Access Control,简称 RBAC)是目前公认,且能有效解决大型企业的统一资源访问控制的方法。显著的两大特征是:

• 减小授权管理的复杂性,降低管理开销;

• 灵活地支持企业的安全策略,并对企业的变化空间有很大的伸缩性。

用于维护企业的组织架构信息,主要包含了组织信息、员工定义、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,支持通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中。

2、多租户实现

系统平台支持一个实例服务、多个用户(Customer),每个用户称为租户(tenant),实现在多用户的环境下共用相同的系统,并且仍可确保各用户间数据的隔离性。如Saas多租户身份验证,每个管理账号都有独立数据、可配置子账户,方便多人使用或统一管理。  多租户实现1.png多租户实现2.png

3、代码生成器

• 零代码开发:配备大量可复用控件,通过操作界面元素,拖拽控件自动生成可视化应用;

• 低代码开发:基于Mybatis-plus-generator自定义了一套代码生成器,通过配置数据库字段的注释,可在线生成WEB前端(vue)、移动端、后端(controller、entity、mapperxml、service)等代码,极大减少了开发难度;

代码生成器.png 

4、工作流程

工作流服务为JNPF自研的一套工作流方案,包含流程表单和流程引擎两大部分。流程表单可视化设计,可配置程度高,采用结构化的表单模版设计、集中解析模式的设计;

工作流程.png 

5、门户设计

企业通过快速简单地拖拽组件到画布上进行配置和部署,便可设计个性化的门户;

门户设计.png 

6、大屏设计

自由布局页面,拖拽控件至页面中,针对不同的控件进行内容设值和数据绑定,所见即所得的实现大屏可视化页面开发;

大屏设计.png 

7、报表设计

无需开发任何代码,用户只需在界面上配置一系列参数即可实现多种类型报表的配置、在线渲染报表内容、报表导出、打印等功能。

报表设计.png

三、技术架构

1、后端技术栈

  • 主平台:.NET 6
  • 安全标准:JWT
  • 持久层框架:SqlSugar
  • JSON序列化:System.Text.Json&Newtonsoft.Json
  • 数据缓存:Redis&MemoryCache
  • 消息队列: RabbitMQ
  • API网关:Ocelot Gateway
  • 服务注册&发现和配置中心: Consul、Apollo
  • 服务消费:gRPC
  • 日志收集:E(Elasticsearch)+L(Logstash)+K(Kibana)
  • 负载均衡:Ocelot Gateway
  • 服务熔断:Polly
  • 链路追踪:Skywalking
  • 模板引擎:ViewEngine视图引擎
  • 即时通讯:WebSocket
  • 文件服务:阿里云OSS、本地存储、七牛云kodo、腾讯cos、MinIO

2、前端技术栈

  • Vue 全家桶
  • Element-ui
  • axios
  • sass
  • echarts
  • dayjs

3、数据库支持

支持多种关系型数据库,可根据需求再扩展支撑其他数据库:

  • MySQL
  • Oracle
  • SQLServer
  • PostgreSQL
  • 达梦数据库(DM8)
  • 人大金仓

四、平台使用

JNPF快速开发平台源码