在DDD领域驱动下的微服务数据库的MVC设计思路(高度可行性)
在DDD领域驱动下的微服务架构中使用MVC设计思路来设计数据库是可行的,因为MVC是一种经典的软件架构模式,可以将应用程序分为三个主要部分:模型、视图和控制器。在微服务架构中,每个微服务可以看作是一个模块,可以使用MVC模式来设计和组织其数据库。
下面以一个项目为例子来说明:
M层可以包含基础功能的微服务(这里有多个),它们通常包含数据模型,这些微服务的主要任务是处理基础数据或则是基础功能,比如文件上传微服务、字典微服务、权限管理微服务、产品微服务、风控微服务,等等的基础信息微服务,因此它们可以被视为MVC模式中的模型层。
C层可以包含主要逻辑的微服务(这里就一个),它们通常是应用程序的核心部分,负责处理主要的业务逻辑。比如业务的所有流程从进件、贷前测额、信授、放款、贷后监控、费用生成、流程管理、还款计划、流程回退,锁定店铺,贷后监控、季度风控计算、店铺维护、钉钉消息发送等等 。同时C层的微服务中,可以把M层的一个基础功能微服务对应C层微服务中的一张或多张表(保持有一个小主表),这样容易在C层中模块化管理,便于扩展表。同时在C层中再保留一个主表(做各种查询操作的桥梁表),这个主表就存一个各个小主表的id(这样主表的字段就不会大多,可能不超过20个字段)。 这个微服务可以被视为MVC模式中的控制器层。
V层可以包含各种统计信息的结果服务(可以有多个,这里就一个),它们通常用于数据的统计,可以被视为MVC模式中的视图层。比如以店铺和借款人为维度的画像统计数据, 每天、每周、每月的通过定时器去跑数据(从C层微服务中取数据,MVC架构的层次感就出来了),以确保以店铺维度和以借款人为维度的风控数据的准确性,便于准确的把握好店铺和借款人。
使用MVC模式来设计数据库可以使微服务更加模块化和可维护。它可以帮助开发人员更好地理解和组织微服务的功能,并使微服务之间的通信更加清晰和简单。同时,MVC模式还可以帮助开发人员更好地组织和管理数据,并确保数据的一致性和完整性。
那么什么是DDD领域驱动呢?看这里:关于DDD的关键部分摘抄-CSDN博客
相关文章:
在DDD领域驱动下的微服务数据库的MVC设计思路(高度可行性)
在DDD领域驱动下的微服务架构中使用MVC设计思路来设计数据库是可行的,因为MVC是一种经典的软件架构模式,可以将应用程序分为三个主要部分:模型、视图和控制器。在微服务架构中,每个微服务可以看作是一个模块,可以使用M…...
Leetcode2834. 找出美丽数组的最小和
Every day a Leetcode 题目来源:2834. 找出美丽数组的最小和 解法1:贪心 从最小正整数 1 开始枚举,设当前数为 num,如果 nums 里没有 target - num,就说明可以添加 num,依次填满直到有 n 个数即可。 用…...
acwing算法基础之搜索与图论--kruskal算法
目录 1 基础知识2 模板3 工程化 1 基础知识 kruskal算法的关键步骤为: 将所有边按照权重从小到大排序。定义集合S,表示生成树。枚举每条边(a,b,c),起点a,终点b,边长c。如果结点a和结点b不连通(用并查集来…...
微信H5跳转微信小程序
官方文档:目录 | 微信开放文档 方法一:微信浏览器打开的h5跳转方式 HTML代码 <wx-open-launch-weapp id"launch-btn" username"所需跳转的小程序原始id" path"pages/pay/pay"><script type"text/wxtag…...
Yii2 引入 外部无命名空间的类,Class not found
记一次问题解决 问题描述 支付宝开放平台SDK v2 无命名空间。需 require 引入。 require Yii::$app->vendorPath."/alipay-sdk-php/v2/aop/AopClient.php"; var_dump(new AopClient([]));exit();上述写法会直接报错。 Class temporary\controllers\AopClient …...
设计模式是测试模式咩?
设计模式和测试模式概述 软件的生命周期为什么要进行测试(测试的目的)?软件的设计模式1. **瀑布模型**3. 增量和迭代模型4. 敏捷模型5. 喷泉模型 测试模型V模型W模型 一个应用程序从出生到“死亡”会经过非常漫长的流程…… 软件的生命周期 …...
Aspose.OCR for .NET 2023Crack
Aspose.OCR for .NET 2023Crack 为.NET在图片上播放OCR使所有用户和程序员都可以从特定的图像片段中提取文本和相关的细节,如字体、设计以及书写位置。这一特定属性为OCR的性能及其在扫描遵循排列的记录时的功能提供了动力。OCR的库使用一条线甚至几条线来处理这些特…...
conda环境中pytorch1.2.0版本安装包安装一直失败解决办法!!!
conda环境中pytorch1.2.0版本安装包安装一直失败解决办法 cuda10.0以及cudnn7.4现在以及安装完成,就差torch的安装了,现在torch我要装的是1.2.0版本的,安装包以及下载好了,安装包都是在这个网站里下载的(点此进入&…...
后端面试问题(学习版)
JAVA相关 JAVA语言概述 1. 一个".java"源文件中是否可以包含多个类?有什么限制? 可以。 一个源文件可以声明多个类,但是最多只能有一个类使用public进行声明 且要求声明public的类的类名与源文件相同。 2. Java的优势ÿ…...
数据管理系统-week1-介绍
文章目录 一、数据它是什么?二、电子存储设备三、持久存储设备1、硬盘驱动器(HDD)、硬盘、硬盘驱动器是一种用于存储和检索数字信息的机电持久存储设备。2、固态硬盘(SSD)使用非易失性存储器,即使用NAND闪存…...
【SpringBoot】手写模拟SpringBoot核心流程
依赖包 新建一个工程,包含两个 module: springboot 模块,表示 springboot 源码实现;user 模块,表示业务系统,使用 springboot 模块; 依赖包:Spring、SpringMVC、Tomcat 等ÿ…...
应对.locked勒索病毒:恢复、预防全方位攻略
导言: .locked勒索病毒并非简单的数字威胁,它是一场对个人和企业数字资产的精密审判。这种病毒通过各种方式感染系统,从而以瞬间之间将用户的关键文件变成数字拼图,无情地要求赎金以换取解锁的密钥。如果您正在经历勒索病毒数据恢…...
基于DS1302时钟液晶12864显示2路闹钟仿真及源程序
一、系统方案 1、本设计采用51单片机作为主控器。 2、DS1302采集年月日时分秒送到液晶12864显示。 3、按键年月日时分秒,两路闹钟。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 uchar clock_time[6] {0X00,0X59,0X23,0X09,0X…...
AGC034E Complete Compress
AGC034E Complete Compress 洛谷[AGC034E] Complete Compress 题目大意 给你一棵有 n n n个节点的树,并用 01 01 01串告诉你哪些节点上有棋子(恰好一棵)。 你可以进行若干次操作,每次操作可以将两颗距离至少为 2 2 2的棋子向彼…...
python设计模式12:状态模式
什么是状态机? 关键属性: 状态和转换 状态: 系统当前状态 转换:一种状态到另外一种状态的变化。 转换由触发事件或是条件启动。 状态机-状态图 状态机使用场景: 自动售货机 电梯 交通灯 组合锁 停车计时…...
JS对图片尺寸和DPI进行编辑修改(1寸照修改为2寸照)
各种报名都对照片有大小限制,鉴于这种情况,网上搜了后拼凑出了如下代码,用于解决1寸照片修改为2寸照片,同时将DPI修改为300,当然也可以根据自己的情况修改代码: HTML <input type"file" id&…...
EDA实验----四选一多路选择器设计(QuartusII)
目录 一.实验目的 二.实验仪器设备 三.实验原理: 四.实验要求 五.实验内容及步骤 1.实验内容 2.实验步骤 六.实验报告 七.实验过程 1.创建Verilog文件,写代码 2.波形仿真 …...
从windows iso文件中提取install.wim
1、首先从微软官方下载需要的windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10/ 2、在下载的iso文件右键,打开压缩包,在sources文件夹下,应该就可以看到install.wim了。但似乎在最新的win10版本,微软采…...
Python的flask网页编程的GET和POST方法的区别
关于flask网页编程的GET及POST方法之间存在哪些区别问题,我们主要从以下六个关键点予以详细阐述: 首先需要明确的是,GET与POST两种不同类型的HTTP方法所采用的请求模式有所差别。其中,GET方法采用的是基于URL请求的机制ÿ…...
15 # 手写 throttle 节流方法
什么是节流 节流是限制事件触发的频率,当持续触发事件时,在一定时间内只执行一次事件,这个效果跟英雄联盟里的闪现技能释放差不多。 函数防抖关注一定时间连续触发的事件只在最后执行一次,而函数节流侧重于一段时间内只执行一次…...
支承套零件加工工艺编程及夹具(论文+图纸)
支承套作为机械传动系统中的关键零件,其加工精度直接影响设备运行的稳定性与寿命。在传统加工模式下,工序分散、定位误差累积等问题常导致零件合格率波动,而专用夹具的设计与数控编程技术的结合,为解决这一难题提供了有效路径。通…...
客服机器人回答错误可自动撤回?智能 Agent 功能详解 + 消息撤回,发错答案快速补救?
在电商客服场景中,智能客服机器人已经成为企业降本增效的核心工具。然而,机器人再智能,也难免出现回答偏差、答非所问或信息过时的情况。客服人员忙碌接待时,往往来不及截图上报,就只能眼睁睁看着错误信息发给买家。这…...
BGE Reranker-v2-m3部署案例:离线考试阅卷系统中实现主观题参考答案语义匹配
BGE Reranker-v2-m3部署案例:离线考试阅卷系统中实现主观题参考答案语义匹配 1. 项目背景与需求场景 在传统的考试阅卷系统中,主观题评分一直是个让人头疼的问题。特别是像简答题、论述题这类题目,学生的答案五花八门,但表达的意…...
创建Controller HTTP测试脚本
创建Controller HTTP测试脚本 任务概述 为fastbee-open-api模块下的103个Controller创建对应的HTTP测试脚本文件,确保测试覆盖所有主要接口。 测试脚本规范 文件格式 文件名: {ControllerName}.http (如: DeviceController.http, SysUserController.http)存放位置: f:/project/…...
Mysql注释+范式+外键+高级操作
注释不是指普通的注释,让系统(服务器)自动的去忽略无效代码。真正的注释将一段用来描述字段文件保存到对应的数据表里,用于提示用户当前结构的情况。SQL注释:让系统忽略-- :两个中划线和一个空格࿰…...
学习CRUISE M热管理的视频教程及文档解说,无需模型,轻松入门
录的CRUISE M热管理视频,有文档解说,没有模型,可用来学习了解。最近在研究CRUISE M的热管理系统,手头只有官方视频和文档,模型文件倒是没给。不过这样也好,反而能逼着自己动手撸代码理解底层逻辑。就拿他们…...
全文降AI的好处:手动改 vs 工具全文降,省多少时间?
全文降AI的好处:手动改 vs 工具全文降,省多少时间? 说一个真实的场景。 论文初稿写完了,跑了一遍AI检测,结果55%。学校要求20%以下。你打开论文,开始逐段阅读检测报告里标红的段落,想着一段一段…...
我的AI配音副业起步:如何用Python+Xinference批量生成有声书和视频配音
用PythonXinference打造AI配音流水线:从技术到变现的实战指南 去年夏天,我偶然在音频平台上发现一个有趣的现象:许多热门有声书的评论区都有人询问"这是AI配音吗?"。更让我惊讶的是,这些由AI生成的内容不仅收…...
c#如何使用ModbusRTU_c#ModbusRTU快速上手实战教程
串口参数不匹配是90%“读不到数据”的主因,需严格同步波特率、数据位、停止位、校验位;Modbus地址需换算(如40001→0);务必使用SerialPortStream替代SerialPort;CRC不可重复计算,且响应后须手动…...
从选电容到调眼图:一个硬件工程师的PCIe 4.0实战避坑笔记
从选电容到调眼图:一个硬件工程师的PCIe 4.0实战避坑笔记 去年参与某AI加速卡项目时,团队第一次尝试PCIe 4.0设计就遭遇了信号完整性问题。当示波器上出现几乎闭合的眼图时,我才真正理解高速信号设计的复杂性。本文将分享从器件选型到调试全流…...
