站点平台技术架构
系统架构部署思维导图
平台模块分配:
1.账号模块
2.权限模块
3.站点模块
4.配置模块
5.系统升级
6.日志模块
一、前期工作
1.系统保持一致性方案:
GIT版本控制:通过总控端向租户端发送一个更新同步请求,租户端收到请求后执行GIT PULL 命令,执行完成命令后会进行获取当前版本指定的SQL文件,进行同步更新数据库结构。
具体实现逻辑:
(1)前端页面:
点击“系统升级”按钮,同时生成系统升级日志,并且向每个租户的前端接口发送一个请求。界面大概如下图所示:
(2)后端逻辑:
1、向租户前端接口发送一个系统升级的请求(若请求的站点过多,可能导致超时的话,则使用队列方式进行执行)
2、租户接口接受到请求之后PHP程序使用exce在项目的根目录执行git pull命令。
3、程序等待git pull 命令执行完毕,执行完毕后检测是否包含有update.sql文件,若有update.sql文件则直接更新改文件里面的SQL语句。
4、完成系统升级后进行将结果返回给总控后台,然后将结果入库到日志当中。若中间系统更新失败,则捕获系统的报错信息,并将报错的结果返回给总控后台并将报错信息记录到对应的日志当中。
2.站点权限配置方案
思维导图
(1)新增/编辑账号
包含字段:用户名、昵称(中文/英文)、密码(MD5)、邮箱、电话、性别、状态、站点ID。
(2)新增/编辑角色组
包含字段:名称、描述、创建者、创建时间、编辑时间、修改者、状态、权限ID
(3)分配站点
描述:一个账号可以分配多个站点。
(4)站点分配角色组
一个站点可以分配多个角色组
一、总控端新增/编辑账号、新增/编辑用户组、分配站点:
系统管理员从“总控后台登陆页面”进入到总控后台系统(后台包含) => 新增/编辑用户组和站点权限、新增/账号设置账号的用户组和可操作站点。
二、新增/编辑用户组: 给每个类型的用户组设置租户后台的可操作和界面权限。
说明:下图所示的站点权限是指租户后台的菜单权限等功能!
三、添加/编辑人员账号:在新增/编辑时给账户设置用户组、赋值此账号对应的可操作的站点ID,如下图所示:
四、登陆站点后台,站点后台页面显示已经给的权限页面和操作(若账号在登陆到未获得权限的站点时,系统会禁止登陆)!
总结:一套系统需要连接多个数据库,需要配置每个站点的对应的数据库信息!
三、
相关文章:

站点平台技术架构
系统架构部署思维导图 平台模块分配: 1.账号模块 2.权限模块 3.站点模块 4.配置模块 5.系统升级 6.日志模块 一、前期工作 1.系统保持一致性方案: GIT版本控制:通过总控端向租户端发送一个更新同步请求,租户端收到请求后执行GI…...
一个以太坊合约的漏洞分析-重入攻击
请找出下列合约漏洞,并说明如何盗取ContractB 中的数字资产,并修复合约。中说明:ContractB 的contract_a接口为ContractA 地址 pragma solidity ^0.8.21; interface ContractA {function get_price() external view returns (uint256); }int…...

测试先行:探索测试驱动开发的深层价值
引言 在软件开发的世界中,如何确保代码的质量和可维护性始终是一个核心议题。测试驱动开发(TDD)为此提供了一个答案。与传统的开发方法相比,TDD鼓励开发者从用户的角度出发,先定义期望的结果,再进行实际的开发。这种方法不仅可以确保代码满足预期的需求,还可以在整个开…...

如何用Dockerfile部署LAMP架构
目录 构建LAMP镜像(Dockerfile) 第一步 创建工作目录 第二步 编写dockerfile文件 Dockerfile文件配置内容 第三步 编写网页执行文件 第四步 编写启动脚本 第五步 赋权并且构建镜像 第六步 检查镜像 第七步 创建容器 第八步 浏览器测试 构建LA…...

基于量子粒子群算法(QPSO)优化LSTM的风电、负荷等时间序列预测算法(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

SQL Server软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 SQL Server是一种关系型数据库管理系统,由美国微软公司开发。它被设计用于存储、管理和查询数据,被广泛应用于企业级应用、数据仓库和电子商务等场景。 以下是SQL Server软件的主要特点和功能࿱…...

基于Django的博客管理系统
1、克隆仓库https://gitee.com/lylinux/DjangoBlog.git 若失效:https://gitee.com/usutdzxy/DjangoBlog.git 2、环境安装 pip install -Ur requirements.txt3、修改djangoblog/setting.py 修改数据库配置,其他的步骤就按照官方文档。 DATABASES {def…...

windows系统依赖环境一键安装
window系统程序依赖库,可以联系我获取15958139685 脚本代码如下,写到1. bat文件中,双击直接运行,等待安装完成即可 Scku.exe -AVC.exe /SILENT /COMPONENTS"icons,ext\reg\shellhere,assoc,assoc_sh" /dir%1\VC...
centos7安装nacos
解决 Nacos 国内下载速度缓慢的问题 方案 1. 选择相应的版本源码下载 1.1 依次点击 1、2、3 选中我们的最新稳定版本 1.4.0 1.2 点击下载 ZIP、或者 clone 也行,这里都可以 2. 本地编译 2.1 预备环境准备 2.2 解压编译 3. 启动验证 3.1 解压 3.2 启动服务器 3…...

【python】python智能停车场数据分析(代码+数据集)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
如何使用Redis来防止穿透、击穿和雪崩问题
推荐阅读 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 史上最全文档AI绘画stablediffusion资料分享 AI绘画关于SD,MJ,GPT,SDXL百科全书 「java、python面试题」…...

以getPositionList为例,查找接口函数定义及接口数据格式定义
job-app-master/pages/index/index.vue中299行 async getPositionList(type refresh, pulldown false) {this.status 请求中;if (type refresh) {this.query.page 1;} else {this.query.page;}let res await this.$apis.getPositionList(this.query);if (res) {if (type …...

一生一芯8——在github上添加ssh key
为在github上下载代码框架,这里在github上使用ssh key进行远程连接,方便代码拉取 参照博客https://blog.csdn.net/losthief/article/details/131502734 本机 系统ubuntu22.04 git 版本2.34.1 本人是第一次配置,没有遇到奇奇怪怪的错误&…...
2023年6月电子学会Python等级考试试卷(一级)答案解析
青少年软件编程(Python)等级考试试卷(一级) 一、单选题(共25题,共50分) 1. 可以对Python代码进行多行注释的是?( ) A. #...

ppt如何转pdf文档?用这个方法可将ppt转pdf
在现代社会中,PPT(幻灯片)已成为一种常见的演示工具,被广泛应用于学术、商务、培训等领域。然而,PPT文件的使用和分享存在一些问题,例如文件格式不兼容、内容修改易被篡改等。为了解决这些问题,将PPT转换为PDF格式已成…...

Hope.money:新兴DeFi项目如何重新定义稳定币生态的未来?
联储加息导致金融市场紧缩,Terra、3AC、FTX等知名中心化机构未能妥善应对而暴雷,并重创了整个加密货币市场,导致参与者损失惨重。这些事件揭示了中心化机构的局限,投资者对其资产掌控权的担忧愈发强烈。 自2018年首个DeFi协议Com…...

使用 S3 生命周期精确管理对象生命周期
在亚马逊工作这些年,我发现 S3 的生命周期配置是管理对象生命周期的重要但复杂的工具。在这篇文章中,我将利用实战经验,深入剖析生命周期,从核心概念到实际应用。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活…...

RocketMQ零拷贝原理
1 PageCache ●由内存中的物理page组成,其内容对应磁盘上的block。 ●page cache的大小是动态变化的。 ●backing store:cache缓存的存储设备。 ●一个page通常包含多个block,而block不一定是连续的。 1.1读Cache ●当内核发起一个读请求时&#x…...
HTML <tbody> 标签
实例 带有 thead、tbody 以及 tfoot 元素的 HTML 表格: <table border="1"><thead><tr><th>Month</th><th>Savings</th></tr></thead><tfoot><tr><td>Sum</td><td>$180<…...

4.22 TCP 四次挥手,可以变成三次吗?
目录 为什么 TCP 挥手需要四次呢? 粗暴关闭 vs 优雅关闭 close函数 shotdown函数 什么情况会出现三次挥手? 什么是 TCP 延迟确认机制? TCP 序列号和确认号是如何变化的? 在一些情况下, TCP 四次挥手是可以变成 T…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...