教你简单理解分布式与传统单体架构的区别

教你简单理解分布式与传统单体架构的区别
原文:教你简单理解分布式与传统单体架构的区别

分布式是一种系统架构方式,而在分布式系统中一般基于中间件进行开发,消息中间件是分布式系统中比较核心的中间件之一。这三样东西随便拿出一个来都可能要说上半天,而且个人水平有限,所以这里我也只能按照个人的理解简单说一下。

分布式是区别于传统的传统的单体架构而言的。

下面以小作坊和大工厂为例简单说一下。

小作坊就相当于是传统的单体架构

一般来说,小作坊人手比较少,甚至只有一个人,那么其中所有的工作都要由他一个人负责,从接收订单,到采购原料,再到生产,还有财务都需要他一个人来做,但毕竟每个人的精力有限,一个人的小作坊能够承接的业务量也就很有限。如果这个人生病了,那整个作坊就无法运转,无法提供任何服务。另一方面,随着新东西的出现,总需要扩增一些新的产品线,那小作坊的负责人就必须自己去学习,而且能够学到的东西也有限,无法扩展太多的产品线。单体架构与小作坊的生产模式类似,存在的缺陷也类似,单体架构的系统吞吐量差,故障影响范围大,扩展性差,开发成本高,不适用于现在大多数的互联网系统。

随着业务的增长,小作坊已经处理不了大量的订单,为了能够继续发展,只能改变工作模式,开始招兵买马。

其中每个人都有自己的职责,有负责接收订单的,有采销,有技术工人,有财务,而且每个岗位都由一个多人小组来负责,这样即使小组中有人离职或者生病请假,都不会对整个业务造成任何影响,仍然可以正常运转。当订单量增加,现有人手处理不过来的时候,只需要再招一些人就可以了。

如果需要开辟新的产品线和开展新业务,那么只需要再培训或者招聘一批专业的技术人员即可。

分布式系统的架构就与大工厂类似

分布式系统吞吐量大大提升,同时具有故障影响范围小,易于扩展,开发成本低等诸多优点。但这也并不意味着分布式架构就很完美,与小作坊相比,大工厂员工很多,因此就带来了很高的管理成本,以及沟通成本,如何维持员工之间的信息对等以及如何保证商业机密不泄露等都是比较大的问题。同样,分布式系统对于系统运维,服务治理与调度,数据同步以及系统的安全性有很高的要求。

总的来说,两种架构各有各的优点,不能简单的说好与不好,只有合适不合适,下面的表格中简单列举了两种架构之间的差别。像个人博客,这种访问量比较小,功能比较单一的使用单体架构就足够,而电商和金融这种访问量高,比较复杂的系统更适合用分布式系统架构。

 

 

posted on 2019-04-03 00:16 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10646374.html

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

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

相关文章

js(Dom+Bom)第五天(1)

JavaScript BOM介绍 概念 BOM(Browser Object Model)即浏览器对象模型。 本质: 通过对象抽象浏览器中的一些功能 例如:(刷新页面,alert,confirm,pormpt,跳转 ...)BOM顶级对象 window对象是js中…

第六节:深究事务的相关性质、隔离级别及对应的问题、死锁相关

一. 相关概念 前面系列中的章节的: 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁、更新锁、排它锁等)和事务隔离级别 介绍了各种锁以及事务的隔离级别,是从数据库的角度进行介绍的,本章节是通过EF Core为载体&…

js(Dom+Bom)第五天(2)

webAPI 01-事件监听 为什么要学事件监听 之前给元素注册事件的时候,同一个事件会被覆盖掉事件监听的本质 通过另外一种方式给元素注册事件, 同时可以解决同一个事件不会被覆盖掉.知识点-通过 on 方式给元素注册事件 之前注册事件的方式:事件源.onclick function() {}on是一种…

UIAutomator简介

简介 Android 4.3发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的。也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期。比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以…

从零开始实现ASP.NET Core MVC的插件式开发(五) - 插件的删除和升级

标题:从零开始实现ASP.NET Core MVC的插件式开发(五) - 使用AssemblyLoadContext实现插件的升级和删除 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11395828.html 源代码:https://github.com/lamondlu/Mystique 前景回…

【JavaWeb】石家庄地铁搭乘系统——第一版(功能尚未完善)

小组成员:高达,程超然 项目目的:能算出地铁搭乘的最优路线并显示在地图上 个人任务:调用队友写好的java代码,将结果显示在网页上 新的知识:百度地图API,使用JQuery的AJAX异步提交 进度&#xff…

扫描枪连接zebra打印机打印条码标签无需电脑

在一些流水线生产的现场,需要及时打印条码标签,由于现场环境和空间限制,无法摆放电脑或者通过连接电脑来打印条码标签的速度太慢, 瑞科条码特提供了一套扫描枪直接连接条码打印机,扫描枪扫描条码之后直接打印输出条码标…

简单的动画函数封装(1)

//创建简单的动画函数封装效果(目标对象&#xff0c;目标位置) function animate(obj,target){var id setInterval(function(){if(obj.offsetLeft > target){clearInterval(id);}else{obj.style.left obj.offsetLeft 5 px;}},30) }可以实现如下效果&#xff1a; <div…

NodeMCU学习(三) : 进入网络世界

阅读原文可以访问我的个人博客 把NodeMCU连接到路由器网络上 NodeMCU可以被配置为Station模式和softAP模式或者Station AP模式&#xff0c;当它被配置为Station模式时&#xff0c;就可以去连接Access Point&#xff08;如路由器&#xff09;。当它被配置为Soft Access Point模…

操作系统原理之进程调度与死锁(三)

一、进程调度的功能与时机 进程调度&#xff1a;进程调度的功能由操作系统的进程调度程序完成 具体任务&#xff1a;按照某种策略和算法从就绪态进程中为当前空闲的CPU选择在其上运行的新进程。 进程调度的时机&#xff1a;进程正常或异常结束、进程阻塞、有更高优先级进程到来…

模拟京东侧边栏

思路&#xff1a; // 1. 获取元素 // 1.1 获取一组li // 1.2 获取一组类名为item的div // 1.3 获取类名为slide的div// 2. 循环遍历给每一个li注册onmouseenter&#xff0c;并且每一个li添加一个index表示索引 // 2.1 循环遍历把所有的li的类名设置为,把所有的item的display设…

ViewPager + TabLayout + Fragment + MediaPlayer的使用

效果图 在gradle里导包 implementation com.android.support:design:28.0.0 activity_main <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:tools"http…

vs code打开文件显示的中文乱码

这种情况下&#xff0c;一般是编码格式导致的&#xff0c;操作办法&#xff1a; 鼠标点击之后&#xff0c;上面会弹出这个界面&#xff0c;双击选中 然后从UTF-8换到GB2312&#xff0c;或者自己根据情况&#xff0c;更改编码格式 转载于:https://www.cnblogs.com/132818Creator…

操作系统原理之内存管理(第四章第一部分)

内存管理的⽬标&#xff1a;实现内存分配和回收&#xff0c;提高内存空间的利用率和内存的访问速度 一、存储器的层次结构 寄存器&#xff1a;在CPU内部有一组CPU寄存器&#xff0c;寄存器是cpu直接访问和处理的数据&#xff0c;是一个临时放数据的空间。 高速缓冲区&#xff1…

自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6

版权声明&#xff1a;本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/u010480479/article/details/27362147 阿嚏~~~ 话说本屌丝没啥开发插件的经验&#xff0c;可是天公不作美&#xff0c;公司须要让我自己开发个图片放大的插件 但公司老大的话&#xff0…

黑白两客进入页面(1)

<div><span>欢</span><span>迎</span><span>来</span><span>到</span><span><strong>黑白两客</strong></span><span>的</span><span>博</span><span>客</sp…

zookeeper学习之原理

一、zookeeper 是什么 Zookeeper是一个分布式协调服务&#xff0c;可用于服务发现&#xff0c;分布式锁&#xff0c;分布式领导选举&#xff0c;配置管理等。这一切的基础&#xff0c;都是Zookeeper提供了一个类似于Linux文件系统的树形结构&#xff08;可认为是轻量级的内存文…

前端js基础智能机器人

<script>var flag true;while(flag) {//获取用户输入信息 var code prompt(你好,我是小娜\n请输入编号或者关键词选择功能,输入Q(q)退出聊天\n1.计算\n2.时间\n3.笑话);switch( code ) {case q:case Q:alert(狠心的抛弃了小娜);flag false;break;case 1:case 计算:var…

2018-2019-2 《Java程序设计》第6周学习总结

20175319 2018-2019-2 《Java程序设计》第6周学习总结 教材学习内容总结 本周学习《Java程序设计》第七章和第十章&#xff1a; 内部类&#xff1a; 1.内部类可以使用外嵌类的成员变量和方法。 2.类体中不可以声明类变量和类方法。 3.内部类仅供外嵌类使用。 4.类声明可以使用s…

Hbase基本原理

一、hbase是什么 HBase 是一种类似于数据库的存储层&#xff0c;也就是说 HBase 适用于结构化的存储。并且 HBase 是一种列式的分布式数据库&#xff0c;是由当年的 Google 公布的 BigTable 的论文而生。HBase 底层依旧依赖 HDFS 来作为其物理存储。 二、hbase的列式存储结构 行…