教你簡單理解分布式與傳統單體架構的區別

教你簡單理解分布式與傳統單體架構的區別
原文:教你簡單理解分布式與傳統單體架構的區別

分布式是一種系統架構方式,而在分布式系統中一般基于中間件進行開發,消息中間件是分布式系統中比較核心的中間件之一。這三樣東西隨便拿出一個來都可能要說上半天,而且個人水平有限,所以這里我也只能按照個人的理解簡單說一下。

分布式是區別于傳統的傳統的單體架構而言的。

下面以小作坊和大工廠為例簡單說一下。

小作坊就相當于是傳統的單體架構

一般來說,小作坊人手比較少,甚至只有一個人,那么其中所有的工作都要由他一個人負責,從接收訂單,到采購原料,再到生產,還有財務都需要他一個人來做,但畢竟每個人的精力有限,一個人的小作坊能夠承接的業務量也就很有限。如果這個人生病了,那整個作坊就無法運轉,無法提供任何服務。另一方面,隨著新東西的出現,總需要擴增一些新的產品線,那小作坊的負責人就必須自己去學習,而且能夠學到的東西也有限,無法擴展太多的產品線。單體架構與小作坊的生產模式類似,存在的缺陷也類似,單體架構的系統吞吐量差,故障影響范圍大,擴展性差,開發成本高,不適用于現在大多數的互聯網系統。

隨著業務的增長,小作坊已經處理不了大量的訂單,為了能夠繼續發展,只能改變工作模式,開始招兵買馬。

其中每個人都有自己的職責,有負責接收訂單的,有采銷,有技術工人,有財務,而且每個崗位都由一個多人小組來負責,這樣即使小組中有人離職或者生病請假,都不會對整個業務造成任何影響,仍然可以正常運轉。當訂單量增加,現有人手處理不過來的時候,只需要再招一些人就可以了。

如果需要開辟新的產品線和開展新業務,那么只需要再培訓或者招聘一批專業的技術人員即可。

分布式系統的架構就與大工廠類似

分布式系統吞吐量大大提升,同時具有故障影響范圍小,易于擴展,開發成本低等諸多優點。但這也并不意味著分布式架構就很完美,與小作坊相比,大工廠員工很多,因此就帶來了很高的管理成本,以及溝通成本,如何維持員工之間的信息對等以及如何保證商業機密不泄露等都是比較大的問題。同樣,分布式系統對于系統運維,服務治理與調度,數據同步以及系統的安全性有很高的要求。

總的來說,兩種架構各有各的優點,不能簡單的說好與不好,只有合適不合適,下面的表格中簡單列舉了兩種架構之間的差別。像個人博客,這種訪問量比較小,功能比較單一的使用單體架構就足夠,而電商和金融這種訪問量高,比較復雜的系統更適合用分布式系統架構。

?

?

posted on 2019-04-03 00:16 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/10646374.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248211.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248211.shtml
英文地址,請注明出處:http://en.pswp.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 前景回…

JDBC Druid式link

準備工作:導入包------druid-1.0.9.jar src文件夾下放下druid.properties文件 且其中的url和數據庫名要配置完備 import JdbcUtils.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.PseudoColumnUsage;import java.sql…

vs strcore.cpp(156) 內存泄漏

在一個靜態函數的線程回調中,一個cstring的對象沒釋放。 遇到這種問題: 1、查看所有的指針對象,有沒有合適的回收 2、查看代碼的malloc,看看有沒有free 3、一點一點注釋代碼,定位位置 轉載于:https://www.cnblogs.com/…

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

webAPI 01-鍵盤事件 知識點-onkeydown事件[掌握] onkeydown: 當鍵盤上的鍵被按下時候觸發的一個事件知識點-onkeyup事件[掌握] onkeyup: 鍵盤上鍵彈起時候觸發的一個事件知識點-onkeypress事件[了解] onkeypress: 當鍵盤上的鍵被按下時候觸發的事件onkeydown 和 onkeypress的區…

【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;可認為是輕量級的內存文…