【架构设计】单体软件分布式化思考

单体软件

单体软件是历史悠久的软件架构形态,以下是一个简单的前后端分离的单体架构的 web 软件。

请求
转发
客户端
代理层
服务
数据库

分布式部署

单体软件采用分布式方案部署,是根据需求而定的。

为了满足不同场景下的需求,单体软件中的客户端、代理层、服务、数据库,都可以以多个副本联合起来,提供服务的方式部署,这种部署方式叫做分布式部署。

这种多个副本共同提供服务的形式叫做集群服务(注意,不是分布式服务)。

客户端分布式

客户端分布式示意图

请求
转发
请求
请求
客户端1
代理层
服务
数据库
...
客户端2

很显然,客户端天然是分布式的。

代理层分布式部署

请求
转发
请求
转发
请求
转发
客户端
代理层1
服务
数据库
...
代理层n

现实中,仅对单体服务的代理层进行分布式

服务分布式部署

请求
转发
转发
转发
客户端
代理层
服务1
数据库
...
服务n

数据库分布式部署

请求
转发
客户端
代理层
服务
数据库1
...
数据库n

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

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

相关文章

redis原理(二)数据结构

redis可以存储键与5种不同数据结构类型之间的映射: String类型的底层实现只有一种数据结构,也就是动态字符串。而List、Hash、Set、ZSet都由两种底层数据结构实现。通常我们把这四种类型称为集合类型,它们的特点是一个键对应了一个集合的数据…

【MATLAB】【数字信号处理】产生系统的单位冲激响应h(t)与H(z)零极点分布

一、实验目的与要求 产生h(t) 与H(z) 零极点分布 二、实验仪器 微机,仿真软件MATLAB 2022a 三、实验内容与测试结果 1.已知描述连续系统的微分方程为y(t)5y(t)6y(t)2x(t)8x(t) ,计算系统的单位冲激响应h(t) 程序如下: clear all; ts0;…

JavaScript采集各大电商平台关于预制菜酸菜鱼销售量

因为我喜欢吃酸菜鱼,但是自己弄又弄不来,想从网上找找看看,但是种类多,自己逐个选择又太浪费时间。索性利用自己专业爬虫知识,一边检验我最近代码水平,另一方面还能选择到满意的年货。过去写个各大平台预制…

centos7 arm服务器编译安装gcc 8.2

前言 当前电脑的gcc版本为4.8.5,但是在编译其他依赖包的时候,出现各种奇怪的问题,会莫名其妙的中断编译。本地文章讲解如何自编译安装gcc,替换系统自带的gcc。 环境准备 gcc 需要 8.2:下载地址 开始编译 1、解压gcc…

医疗器械网络安全风险评定CVSS打分

为了完成医疗器械软件的网络安全风险评定相关文档,需要进行CVSS评分,这个评分对于第一次做的人来说感觉还是有些迷惑的,查了一些资料,留作参考。 CVSS 指的是 Common Vulnerability Scoring System,即通用漏洞评分系统…

QLExpress和Groovy对比

原理 Groovy groovy基于JVM运行。 编译时:将源文件编译成class文件后,用java的classLoader加载;运行时:直接用groovy classLoader加载 QLExpress QLExpress将文本解析成AST,用java对象表达后执行。 特点 Groo…

C++命名空间的using声明

在前边的C讲解中,使用输入输出流cin和cout前要加std::,每次前边都要加就会很麻烦。解决这个问题,我们就要了解一下命名空间和using声明。  命名空间会限定作用域具体格式及使用参照C入门讲解命名空间,上边的cin和cout就是声明在s…

大屏项目:react中实现3d效果的环形图包括指引线

参考链接3d环形图 3d效果的环形图 项目需求实现方式指引线(线的样式字体颜色) 项目需求 需要在大屏上实现一个3d的环形图,并且自带指引线,指引线的颜色和每段数据的颜色一样,文本内容变成白色,数字内容变…

最值得推荐的10个免费PDF转Word的方法

PDF转Word是一项很常见的操作,将PDF文件转换为Word文档可以方便我们对文件进行编辑和修改,而且Word格式也更加好打印。 最值得推荐的10个免费PDF转Word的方法 PDF 文件格式在很多场合都被广泛使用,但有时候我们需要修改 PDF 文件内容并保存&…

第十二讲_css动画

css动画 1. 动画介绍2. 动画的基本使用2.1 定义关键帧(方式一)2.2 定义关键帧(方式二)2.3 给元素使用动画 3. 动画的其他属性4. 动画示例 1. 动画介绍 动画使元素逐渐从一种样式变为另一种样式。使用 CSS 动画,您必须…

抖店入驻+运营全方位指导,开店篇!无货源/有货源统统适用

我是王路飞。 关于抖店的入驻和运营教程,准备出一个比较详细、系统的全方位指导内容,感兴趣的可以持续关注下。 不管你做的是无货源还是有货源模式,核心思路都是一样的,统统适用。 这篇文章,先给你们分享下抖店的入…

nestjs 控制反转、依赖注入

1、全局安装typescript npm install typescript -g 2、全局安装ts-node npm install ts-node -g 3、demo.ts /** * B中代码的实现是依赖A的,两者之间的耦合度非常高,当两者之间的业务逻辑复杂程度增加的情况下 * 维护成本与代码的可读性都会随着…

SpringBoot的数据层解决方案

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

LLM之RAG实战(十五)| RAG的自动源引文验证技术

​ 在过去的一年里,检索增强生成(RAG)已经成为一种基于LLM的流行架构,旨在解决在基于知识的LLM最常见的挑战之一,可怕的幻觉。 一、RAG如何解决幻觉? RAG Pipeline包括两个关键组件:&…

区间合并(pair,auto的用法)

给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 输入格式 第一行包含整数 n。 接下来 n行,每行包含两…

Java零基础教学文档servlet(1)

【Web开发和HTTP协议】 1. Web开发概述 1.1 web概述 万维网(英语:World Wide Web)亦作WWW、Web、全球广域网,是一个透过互联网访问的,由许多互相链接的超文本组成的信息系统。英国科学家蒂姆伯纳斯-李于1989年发明了…

Python使用函数输出指定范围内Fibonacci数的个数

本题要求实现一个计算Fibonacci数的简单函数&#xff0c;并利用其实现另一个函数,输出两正整数m和n&#xff08;0<m<n≤100000&#xff09;之间的所有Fibonacci数的数目。 所谓Fibonacci数列就是满足任一项数字是前两项的和&#xff08;最开始两项均定义为1&#xff09;的…

类脑研究之脑组成及神经系统相关理论!大脑是什么?大脑和脑有什么区别?大脑皮层和脑膜什么关系?人的神经系统有哪些?

目录 1 引言2 神经系统3 脑组成3.1 大脑成分3.2 大脑外部&#xff1a;脑膜3.3 大脑中部&#xff1a;大脑皮层3.4 大脑内部3.5 脑干3.6 小脑 1 引言 为了深入研究类脑&#xff0c;必须了解大脑的结构和机制。从神经系统分级和脑组成两个角度出发&#xff0c;详细介绍了大脑的生…

1.如何记录每个变量携带的数据:DataFrame与Series

序列格式和列表区别&#xff1a;序列格式可以直接汇总&#xff1a;均值&#xff0c;总和&#xff0c;百分位数等 DataFrame Series

[链路层] 点对点协议 PPP

目录 1、PPP协议的特点 2、PPP协议的组成和帧格式 3、PPP协议的工作状态 目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 1、PPP协议的特点 我们知道&#xff0c;互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机…