分布式思想

1、单体架构设计存在的问题

传统项目采用单体架构设计,虽然可以在一定的程度上解决企业问题,但是如果功能模块众多,并且将来需要二次开发.由于模块都是部署到同一台tomcat服务器中,如果其中某个模块代码出现了问题,将直接影响整个tomcat服务器运行.
这样的设计耦合性太高.不便于开发和维护.
在这里插入图片描述

2、分布式思想(拆)

2.1 分布式计算

说明: 如果某个业务需要处理1000G的数据 如果通过一个线程.该工作几乎不可能完成…
优化方式: 同时开启多个线程 一起执行任务的计算. 理论上来说运行的速度大幅度提升.
难点: 数据如何拆分/数据如何合并
计算方式: 大数据应用.

2.2 分布式系统

说明: 分布式系统指按照某种规则,将项目按照规则进行拆分.从架构上降低了系统的耦合性.提高软件的扩展性.

2.2.1 按照模块拆分

说明:按照特定的业务规则,将项目进行拆分.
在这里插入图片描述

2.2.2 按照层级拆分

说明: 由于某个项目比较复杂.需要多个开发人员相互配合.这时为了提高开发的效率.采用层级拆分的方式进行.
在这里插入图片描述

2.3分布式系统设计问题说明

铺垫: maven项目打包方式: 1.jar包(默认值) 2.war包 3.pom(聚合工程)
1).由于项目众多 如何统一的管理?
答案: 采用聚合工程的方式统一管理项目 打包方式 POM

2).项目多了之后,如何保证jar包版本的稳定?
答案: 采用统一的方式管理jar包文件 通过父级工程定义父级jar包.之后子级项目继承父级即可.

3).工具API如何做到统一的管理?
答案: 定义核心工具API工程. 架构师/高级程序员统一维护API项目. 之后API项目被其他的项目进行依赖.
在这里插入图片描述

2.4关于分布式系统父子级关系说明

说明: 如果搭建了父级工程 则可以通过父级检查所有的关联项目
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19.ADC模数转换器知识点+AD单通道AD多通道应用程序示例

0. 江协科技/江科大-STM32标准库开发-各章节详细笔记-查阅传送门_江协科技stm32笔记-CSDN博客文章浏览阅读2.9k次,点赞44次,收藏128次。江协科技/江科大-STM32标准库开发-各章节详细笔记-传送门至各个章节笔记。基本上课程讲的每句都详细记录&#xff0c…

Python转C++的童鞋看这里

一、前言 Python学完了,很多人都去学了C。在学习C之前,建议大家先打好基础,对C和Python的区别先了解了解,会对后续的C学习提供很大的帮助。 二、特点区分 1. Python Python是一种简单而高效的语言,它已经帮你封装好了…

Python-OpenCV-边缘检测

摘要: 本文详细介绍了Python-OpenCV的边缘检测技术,包括基础知识回顾、功能实现、技巧与实践、常见问题与解答等,为读者提供了全面深入的教程。 阅读时长:约60分钟 关键词:Python, OpenCV, 边缘检测, Canny, Sobel …

群晖 Synology Photos DSM7 自定义文件夹管理照片

背景 众所周知,目前群晖DSM7中使用Synology Photos做照片管理时,个人照片只能默认索引 /home/Photos 文件夹,但是如果个人照片很多或者用户很多时,共享文件夹/homes 所在的存储空间就会不够用 当然,如果你的存…

李彦宏“程序员将不再存在”言论被周鸿祎驳斥,网友怒怼:先把百度程序员都开除了

在 3 月 9 日央视的《对话》开年说节目上,百度创始人、董事长兼 CEO 李彦宏表示,基本上以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力。 “未来的编程语言只会剩下两种,一种叫做英文&am…

Python和RPA之间的区别和联系

Python是实现RPA的工具之一,且RPA要复杂的多,远不是会Python这么简单。 要理解RPA和Python的区别,先看它们各自做什么。 1、什么时候会用到RPA? 比如你的财务同事需要做财务对账,发票报销,税务申报等&…

【刷题训练】LeetCode125. 验证回文串

验证回文串 题目要求 示例 1: 输入: s “A man, a plan, a canal: Panama” 输出:true 解释:“amanaplanacanalpanama” 是回文串。 示例 2: 输入:s “race a car” 输出:false 解释:“rac…

C#常用数据操作方法详解

文章目录 C#常用数据操作方法详解字符大师:String类的使用艺术字符串截取:Substring示例寻找字符串:IndexOf示例字符串替换:Replace示例字符串分割:Split示例转小写:ToLower示例 数学机械师:Mat…

Java 设计模式系列:行为型-观察者模式

简介 观察者模式是一种行为型设计模式,又被称为发布-订阅(Publish/Subscribe)模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 观察者…

全面解析 Axios 请求库的基本使用方法

Axios 是一个流行的基于 Promise 的 HTTP 请求库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API,可以发送各种类型的请求(如 GET、POST、PUT、DELETE等),并处理响应数据,Axios 在前端工…

MySQL常见的数据类型

一、数值型 5 种整型 tinyint、smallint、mediumint、int 和 bigint,主要区别就是取值范围不同,还可以在类型前添加一个 限制词 unsigned,不允许添加负数。 3 种浮点型:不能精确存放 float 和 double,可以精确存放 de…

朋友,代码库的“健身方案”要不要了解一下?

你有没有想过,你的代码库可能正面临“健康危机”—— 代码臃肿、低效交付、BUG隐藏、潜藏的安全风险…… “健身达人”上线 如果你的开发、安全和运维团队像是三位“健身达人”,那么极狐GitLab的DevSecOps线上成熟度评估,就是他们的“健身教…

09、用数据变量等控制 vue 项目标签中 CSS 样式的五种方法

通过 vue 中的变量值控制标签/组件样式 Ⅰ、通过 Vue3 的数据变量来控制 h1 标签样式:1、代码为:2、截图为: Ⅱ、通过 vue3 的 computed 来控制 h1 标签样式:1、代码为:2、截图为: Ⅲ、通过 vue3 的 comput…

MySQL gh-ost DDL 变更工具

文章目录 1. MDL 锁介绍2. 变更工具3. gh-ost 原理解析4. 安装部署5. 操作演示5.1. 重点参数介绍5.2. 执行变更5.3. 动态控制 6. 风险提示 1. MDL 锁介绍 MySQL 的锁可以分为四类:MDL 锁、表锁、行锁、GAP 锁,其中除了 MDL 锁是在 Server 层加的之外&am…

SpringBoot vue轮胎批发系统

SpringBoot vue轮胎批发系统 系统功能 首页 图片轮播 轮胎商品 评论 公告信息 搜索 购物车 立即购买 客服中心 登录注册 个人中心 我的订单 我的地址 我的收藏 后台管理 登录 个人中心 用户管理 轮胎分类管理 轮胎商品管理 公告信息管理 客服中心管理 轮播图管理 订单管理 …

Linux--基本知识入门

一.几个基本知识 终端: CtrlAltT 或者桌面/文件夹右键,打开终端切换为管理员: sudo su 退出:exit查看内核版本号: uname -a内核版本号含义: 5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新. 二.目录…

Canny详解

Canny 边缘检测是一种经典的图像处理技术,被广泛应用于计算机视觉和图像处理领域。它由 John F. Canny 在 1986 年提出,是一种多阶段的边缘检测算法,具有高精度和低错误率的特点。 Canny 边缘检测的步骤: 高斯滤波(Ga…

FreeRTOS学习第10篇--队列使用示例

FreeRTOS学习第10篇–队列使用示例 本文目标:FreeRTOS学习第10篇–队列使用示例 按照本文的描述,可以进行简单的使用队列。 本文实验条件:拥有C语言基础,装有编译和集成的开发环境,比如:Keil uVision5 …

【Java 并发】AbstractQueuedSynchronizer

1 AQS 简介 在同步组件的实现中, AQS 是核心部分, 同步组件的实现者通过使用 AQS 提供的模板方法实现同步组件语义。 AQS 则实现了对同步状态的管理, 以及对阻塞线程进行排队, 等待通知等一些底层的实现处理。 AQS 的核心也包括了这些方面: 同步队列, 独占式锁的获取和释放, 共…

手写vue将虚拟 Dom 转化为真实 Dom

vue将虚拟 Dom 转化为真实 Dom {tag: DIV,attrs:{id:app},children: [{tag: SPAN,children: [{ tag: A, children: [] }]},{tag: SPAN,children: [{ tag: A, children: [] },{ tag: A, children: [] }]}] }把上面虚拟Dom转化成下方真实Dom<div id"app"><sp…