23.DDD与微服务

ops/2024/12/18 17:37:49/

学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid=1940048&ctype=0

文章目录

DDD与微服务的关系

1. DDD可以用微服务实现,也可以不用微服务实现

DDD是一套方法论,我们用它可以设计出领域模型,领域模型可以指导程序员去写代码实现功能,但DDD并没有指定一定要用什么样的架构实现。它的实现架构是在不断演变的,它可以使用微服务来实现,也可以不用微服务来实现。DDD是在2003年提出的,微服务在2014年提出的,所以在微服务出现之前,DDD就已经用其他的架构实现了。

2. DDD是微服务拆分的必须参考项之一

不能将同一个上下文的功能分拆到不同的微服务中。 在实践过微服务之后,人们发现微服务的服务力度比传统的SOA力度更小,那就涉及到更多的要把哪些功能分拆到哪些微服务的问题。人们又发现领域驱动设计得到的限界上下文,正好可以回答这个问题。如果要做微服务设计,就必须参考领域驱动设计得到的限界上下文,否则就很可能形成一个分布式大泥球

拆分方案
方案1: 把多个限界上下文放到同一个微服务中,这样做没有问题
在这里插入图片描述
方案2:把多个限界上下文分别放到不同的微服务中,这样做也没有问题。
在这里插入图片描述
方案3:把同一个限界上下文,放到不同的微服务中,这样做有问题。
这样做会导致两个微服务之间的关系非常的紧密,二者之间需要网络通信。如果微服务架构大量存在这种场景,最终它就会形成一个分布式大泥球,难以维护,还不如使用单体架构
在这里插入图片描述

3. 微服务架构还需要考虑别的因素

DDD是微服务拆分的必须参考项之一,但不是全部。其他因素比如:

总结

领域驱动设计得到的限界上下文是微服务拆分的必须参考项之一,拆分错的话,可能会形成分布式大泥球,但并不是唯一因素。


http://www.ppmy.cn/ops/142969.html

相关文章

el-select多选设置默认值且默认值不可删除

需求 <el-select>多选时&#xff0c;需要设置默认值&#xff0c;且默认值不可删除&#xff0c;但手动勾选的值可以删除。 实现原理 在el-select框中隐藏默认值的el-tag后面的叉在option中置灰默认值的选项使其不可被操作 代码实现 新建一个自定义指令&#xff0c;并在<…

学习笔记071——Java中的【线程】

文章目录 1、基础2、进程和线程3、什么是多线程4、Java 中线程的使用5、Java 中创建线程的方式5.1、继承 Thread 类5.2、实现 Runnable 接口5.3、继承 Thread 和实现 Runnable 接口的区别5.4、实现 Runnable 接口的优化 6、线程的状态7、线程调度7.1、线程休眠7.2、线程合并7.3…

selenium自动化测试基础知识

目录 一、概念知识 (一)三大核心组件 (二)Selenium 自动化测试的工作原理 (三)Selenium 支持的操作 (四)Selenium 自动化测试的优点 (五)Selenium 自动化测试的缺点 (六)Selenium 自动化测试的应用场景 总结 二、实操例子 使用前提--安装步骤 注意事项 (一)浏览器的…

LruCache(本地cache)生产环境中遇到的问题及改进

问题&#xff1a;单机qps增加时请求摘要后端&#xff0c;耗时也会增加&#xff0c;因为超过了后端处理能力&#xff08;最大qps&#xff0c;存在任务堆积&#xff09;。 版本一 引入LruCache。为了避免数据失效&#xff0c;cache数据的时效性要小于摘要后端物料的更新时间&…

高并发-缓存预热

缓存预热的必要性 缓存预热是为了在系统面临高并发请求时&#xff0c;确保热点数据已经被加载到缓存中&#xff0c;从而提高系统响应速度和稳定性。通过缓存预热&#xff0c;可以避免因数据未命中而导致的数据库压力激增。 典型应用场景 电商系统&#xff1a;在秒杀活动期间&…

火山引擎声音复刻API-2.0

火山引擎声音复刻API-2.0使用解释 付费模式解释&#xff1a; 1.字符版本按照字符付费 2.并发版 是按 并发连接数 或 同时使用量 来收费的付费模式&#xff0c;常见于软件、API 服务、云服务等产品中。 上传音频文件demo代码 import base64 import os import requestshost …

基于单片机的智能化教室环境系统设计

本设计的智能化教室环境系统选用STC89C52做为核心控制器&#xff0c;通过红外传感装置检测教室人数&#xff0c;温度感应模块及光强感应模块检测当前教室内的温度和光照强度&#xff0c;以此来为单片机提供数据来控制灯光与风扇。控制模式设有自动和手动&#xff0c;可调节温度…

优化算法之遗传算法思想和应用实例

优化算法有很多&#xff0c;常用的有粒子群&#xff08;蚁群&#xff09;算法&#xff0c;模拟退火、遗传算法、免疫算法&#xff08;IA&#xff09;、差分进化算法&#xff08;Differential Evolution, DE&#xff09;、梯度下降等。这些算法思想有一些共性&#xff0c;大概是…