分布式系统

《深入理解分布式系统》之认识分布式系统 阅读详情

一、什么是分布式:

1、常用的分布式框架:

各种分布式框架层出不穷,常用的基本上就这两个Spring Cloud,阿里的 Dubbo。

2、分布式的概念:

为了解决传统单体服务架构带来的各种问题,代码数量庞大,迭代测试维护困难,可能因为一处改动测试不到位造成整个服务瘫痪等问题,分布式系统就是将一个大的服务拆分成几十个甚至上百个微小的服务。

阿里的 Dubbo,还有 Spring 全家桶里的 Spring Cloud,都是解决分布式微服务架构的优秀框架。

关于分布式系统,通俗点讲就把整个业务系统拆分成很多的服务,每个服务责任到人,服务之间代码都没有冲突,服务可以自治,每个服务到技术也可以自己选型,只要遵循统一的服务调用协议就可以了。每次发布如果就改动一个服务那就上线一个服务,不用所有人一起联调,这样每次发布牵扯到的改动影响也是可控的。不像传统单体架构服务,动辄几百万行代码融在一起。
 

百度百科是这样解释的:
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。

分布式系统并不是某一门具体的技术,也不是具体的框架。用大白话理解就是将计算能力和数据存储能力分散在不同服务器上,通过网络连接组成的一个整体的服务,不同服务器可能是物理机,也可能是虚拟机,分布式的概念可以理解成一种解决方案。

分布式系统总结来说是将数据存储能力和计算能力分布到不同的服务器上,作为一个整体对外服务。目的在于解决单台机器的故障问题,单机计算和 IO 性能问题,以及单机存储空间不足的问题。虽然单机故障的概率比较小,但是随着集群规模大了之后,集群宕机和磁盘损坏基本上是常态,分布式系统主要解决的是各种故障带来的问题。
 

3、分布式系统和微服务什么关系:

关于分布式系统和微服务,两者都只是一种概念。如果你采用微服务,就意味着系统一定是分布式的,分布式系统具有的优缺点在微服务里都会体现。

微服务是分布式系统的一种具体落地方案。

4、分布式的优缺点:

优点:

1、系统可用性提升:

传统的集中式计算或集中式存储在遇见单点故障时很容易造成整个服务不可用,分布式下的服务体系,单台机器有故障,不致于造成整个服务不可用。

2、系统并发能力提升:

请求通过 Nginx 负载均衡被分发到不同的服务器上,运行同样代码的服务器可以有 1 台或 N 台,通常情况下会根据实际用户访问量随时增加机器,无论是数据库或者服务,都可以做到随时水平扩展。
比如双 11 活动,平时订单少 50 台机器就够了,到了 11 订单量剧增,服务器增加到 100 台,每台机器之间相互独立,互不影响。

3、系统容错能力提升:

 同一组服务分别部署在不同的地方,当一个地方的机房/服务器出现问题,可以将请求这个服务器的流量分发到 其他地方的服务器。

同一组服务分别部署在北京上海杭州,杭州的机房突发断电或者火灾,杭州机房的流量会被自动分发到北京和上海的机房,不影响用户使用。

4、低延迟:

不同地方的用户请求,可以根据IP选择距离自己最近的服务器,可以有效降低网络延迟。

参考上一个图,北京的用户请求自动分发到北京,上海的用户请求被分发到上海,服务器会根据用户的 IP 选择距离自己最近的机房,降低网络延迟。 

缺点:

1、分布式服务依赖网络:

服务器间通讯依赖网络,不可靠网络包括网络延时,丢包、中断、异步,一个完整的服务请求依赖一连串服务调用,任意一个服务节点网络出现问题,都可能造成本次请求失败。

2、维护成本高:

传统单体式服务只需要维护一个站点就可以。
分布式服务系统被拆分成若干个小服务,服务从 1 变为几十个上百个服务后,增加运维成本。

3、一致性、可用性、分区容错性无法同时满足:

这个是最主要的,这三种特性就是平时说的 CAP 定理,在分布式系统中,这三种特性最多只能满足两种,无法同时满足,需要根据实际情况去调整牺牲掉其中哪个。

重点!!!CAP定理

目录

一、什么是分布式:

1、常用的分布式框架:

2、分布式的概念:

3、分布式系统和微服务什么关系:

4、分布式的优缺点:

优点:

缺点:

重点!!!CAP定理


  1. C 的全拼是 Consistency,代表 一致性的意思。
  2. A 的全拼是 Availability,代表 可用性的意思。
  3. P 的全拼是 Partition tolerance,代表 分区容错性的意思。

一个分布式系统最多同时满足一致性 (Consistency),可用性 (Availability) 和分区容忍性 (Partition Tolerance) 这三项中的两项。

同时满足一致性(C)和可用性(A)就要牺牲掉容错性(P)


同时满足可用性(A)和分区容错性(P)就要牺牲掉一致性(C)


同时满足一致性(C)和分区容错性(P)就要牺牲掉可用性

(A)

注:

为什么CAP原理只能同时满足两个:


 

BASE定理


BASE定理是对CAP定理的延伸:即使无法做到强一致性(Strong Consistency),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。CAP中提到的一致性是强一致性,所谓“牺牲一致性”指牺牲强一致性保证弱一致性。

BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。

基本可用:出现故障的时候,允许损失部分可用性,即,保证核心可用。
如,电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务

软状态:允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
软状态本质上是一种弱一致性,允许的软状态不能违背“基本可用”的要求。如,分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时(某些时刻副本数低于3)。

最终一致性:系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
软状态的终极目标是最终一致性。如,分布式存储的副本数最终会达到稳定状态。

分布式系统总结 分布式系统总结       我们的系统一直是分布式的。即便在虚拟化、容器技术出现之前,我想他也是一个分布式系统。今天尝试将我对分布式的理解做一些总结。 为什么要分布式?     我想首先是money方面的问题。随着产品支持的容量增加,软件的计算量、存储的数据都变得很大。Grosch定理说CPU的计算能力与它的价格的平方成正比。也就是说如果你付出两倍的价钱,就能获得四倍的性能。这么看其实花钱 阅读详情

相关推荐

分布式系统之一:分布式系统的挑战

本博文主要介绍分布式系统的特征、应用与挑战(参考Distributed Systems Concepts and Design) 博主曾经在国内某电子商务公司的终面里面遇到了关于分布式系统的问题(因为我的简历上写明了我熟悉分布式系统),于是面试官很慈祥的问了我什么是分布式系统、cap理论、应用场景等。从面试官的言情看得出来他很不满意,博主也很是失望。只想告诫大家:一个项目并不代表你对着一个方向

Evan的开源之旅 5252

分布式系统(Distributed Systems)概述

随着互联网的持续发展(以Web应用为代表)、计算机应用的深入、分布式系统构建技术的日益成熟,分布式系统逐渐深入到人们的日常生活,并渗透到社会、经济、文化生活的各个方面。现如今,分布式系统已成为主流的软件系统。本文主要介绍下分布式系统的特征和在进行分布式系统设计过程中所必须解决的问题:可伸缩性、异构性、安全性和故障处理等。

云原生Java Web领域技术博客 1万+

《分布式系统》教学大纲

本课程是计算机科学与技术专业硕士研究生的一门专业课程,同时也是通信工程专业、软件工程专业硕士研究生和计算机技术专业工程硕士的一门专业选修课。本课程的内容涉及分布式系统的基本概念、基本原理和基本方法,具体涵盖了分布计算系统的基本概念和体系结构,分布计算系统的进程通信,分布式程序设计语言,命名与保护,分布式同步和互斥机构,死锁问题及其处理技术,容错技术,分布式数据管理,分布式文件系统的设计问题与实现方法,分布式调度,分布式共享存储器技术以及基于对象的分布式系统,以及相关的前沿主题,包括web服务、网格、移动系统和无处不在系统等。通过这门课程的教学,使学生对分布式系统的基本概念、有关体系结构、分布式系统设计原理与方法有一个系统的掌握,能深入理解一些典型的分布式计算系统,为以后从事分布式系统研究与设计打下良好的理论和工程实践的基础。

什么是分布式系统

CAP CAP 理论的定义很简单,CAP 三个字母分别代表了分布式系统中三个相互矛盾的属性: Consistency (一致性):CAP 理论中的副本一致性特指强一致性(1.3.4 ); Availiablity(可用性):指系统在出现异常时已经可以提供服务; Tolerance to the partition of network (分区容忍):指系统可以对网络分区(1.1.4.2 )这种异...

脚踏实地 2万+

ElaticSearchUtil工具类封装

package com.xxx.util; import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.action.ad

会飞的狼 6295

解决vscode无法运行npm命令的问题(cmd可行)

Powershell以及vscode中npm命令使用不了

无痕坚守本心的博客 2749

【分布式系统学习】之分布式入门理解

分布式、分布式系统、分布式架构

大龄烤红薯的博客 2939

Unity插件UniWebView实战:UGUI动态调整内嵌网页尺寸与交互优化

本文详细解析了如何在Unity游戏中使用UniWebView插件实现内嵌网页的动态尺寸适配与深度交互。核心在于利用Reference Rect Transform属性,将网页窗口精准绑定至UGUI控件,并随其动态调整。文章进一步探讨了通过消息系统与JavaScript执行实现Unity与网页的双向通信,并提供了加载优化、过渡动画及事件拦截等实用技巧,助力开发者打造无缝、流畅的游戏内网页体验。

earth的博客 276

到底什么是分布式系统?你需要了解这些

摘要:什么是分布式系统?为什么要用分布式系统?分布式系统如何分布?这些你知道吗? 小引 分布式系统是一个古老而宽泛的话题,而近几年因为 “大数据” 概念的兴起,又焕发出了新的青春与活力。本文将会通过对如下几个问题展开谈一下分布式系统: 什么是分布式系统? 为什么要用分布式系统? 分布式系统设计推演 CAP定理是什么? 分布式系统如何进行分布? 分布式应用通常使用的架构类型哪些? 分布式系统的优缺点有哪些? 1. 什么是分布式系统? 简单的来说,一个分布...

华为云官方博客 1万+

太美了!现代女主jk海军风穿搭四视图

哪个女孩子初高中的时候不买几套JK衣服啊,穿上完全是青春女孩。那还愣着干啥,不得也给你的漫剧女主也穿上!直接就是分享三套JK穿搭,红棕双麻花辫配经典水手服,是那种乖乖巧巧的元气学妹;粉色羊毛卷双马尾,搭配蝴蝶结和小挎包甜度直接拉满;还有灰棕色侧麻花辫,浅蓝上衣配黑色百褶裙,温柔里又带点小酷。下面把这三套角色的完整提示词分享出来,喜欢哪套就拿去参考,改改发型和配色,还能继续解锁新角色!

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 51

成本中心(CO)和利润中心(PCA)是管理会计模块的核心组件

SAP中成本中心(CO)和利润中心(PCA)凭证处理存在差异:①外部交易(如费用支付、销售)会生成FI借贷凭证;②内部成本分摊和转移仅产生CO/PCA管理凭证,通过次级成本要素或利润中心转移科目记录,不涉及FI模块。核心区别在于是否涉及企业实际收支:实际收支触发FI凭证,内部核算仅生成管理会计凭证。系统通过这种机制实现财务会计与管理会计的集成与分离。

金牌架构师 1127

什么是分布式系统,如何学习分布式系统

在很多文章中,主要讲分布式系统分为分布式计算(computation)与分布式存储(storage)。计算与存储是相辅相成的,计算需要数据,要么来自实时数据(流数据),要么来自存储的数据;而计算的结果也是需要存储的。在操作系统中,对计算与存储有非常详尽的讨论,分布式系统只不过将这些理论推广到多个节点罢了。那么分布式系统怎么将任务分发到这些计算机节点呢,很简单的思想,分而治之,即分片(。对于计算,那么就是对计算任务进行切换,每个节点算一些,最终汇总就行了,这就是MapReduce的思想;

2401_85123579的博客 3546

Go基础:一文掌握Go语言网络编程

Go语言凭借强大的标准库和原生并发支持,非常适合网络编程开发。文章介绍了Go语言在网络编程中的核心概念和应用场景,包括TCP、UDP和HTTP等协议的具体实现方法。主要内容包括:1)网络编程核心概念(Listener、Conn、Addr等);2)TCP服务器/客户端的实现流程与示例代码;3)UDP无连接通信的实现方式;4)利用net/http包构建HTTP服务。文章通过详细的代码示例展示了如何利用Go的Goroutine和Channel特性高效处理网络连接,并强调了连接管理的最佳实践。

数据知道的博客 5512

什么是分布式系统!以及分布式系统架构的优缺点!

现在的架构很多,各种各样的,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等,还有很多。那什么是分布式系统?分布式系统是支持分布式处理的软件系统,是由通信网络互联的多处理机体系结构上执行任务的系统。包括分布式操作系统、分布式程序设计语言及其编译系统、分布式文...

OnTheRoad的博客 7万+

Allegro172版本DFM功能介绍

Allegro172版本提供了实时DFM检查的功能,让违反要求的地方实时以DRC的形式报出来,让加工不可加工因素在设计的时候同步避免。打开Constraint,选择Manufacturing, 所有DFM相关DRC都在这。把所有下面DRC开关(DFM,DFA,DFT)都选择on,选择OK。这个规则和物理和间距规则等等都没有关系,单独的一个加工规则。这些DRC大部分是正常的,正常的可以去修改规则来消除。等待DRC刷新,板子上会出现很多DRC,类似下图。下面介绍如何调用和产生DFM规则。一直往下点击next。

weixin_54787054的博客 1337

9、工业数据管理:Historian、ERP、MES与资产模型解析

本文深入解析了工业数据管理中的核心概念与技术,包括Historian数据库、ERP和MES系统以及资产模型。文章详细介绍了Historian数据库的特性、架构分类、数据采集方式及时间序列处理能力,同时探讨了ERP和MES系统的功能与优势,特别是MES在生产执行中的重要作用。资产模型部分结合ISA-95和ISA-88标准,阐述了工业资产的层次化建模方法。此外,文章还分析了各系统之间的协同关系、面临的挑战及应对策略,并展望了未来工业数据管理的发展趋势,如云原生技术、人工智能融合和工业物联网的应用。

pz89012345的博客 143

[分布式系统]全面介绍分布式系统

[分布式系统]全面介绍分布式系统 [声明:本篇文章翻译转载自Stanislav Kozlovski] :A Thorough Introduction to Distributed Systems。 很感谢原作者这么通俗易懂介绍分布式系统。考虑在国内访问不到该作者的文章,以及自己学习的便利性,想在这里和大家分享一下 Stanislav Kozlovski 作者的文章。 什么是分布式系统...

咸鱼的梦想专栏 4455

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

分布式系统介绍

主题介绍 分布式系统--在这种系统中,一组独立的计算机在其用户看来是一个单一的统一系统。 分布式计算机系统是一组网络连接的独立计算机,它作为一个单一的计算机呈现给用户。 分布式软件系统是一组通过消息交换方式进行互动的组件。 分布式系统的主要任务是促进用户对远程资源的访问,并确保其共同使用。 本文讨论了如何组织进程的交互以及它们对RAM和文件系统的访问。 描述了分布式系统可靠运行的原则。 ...

JiangTao2333的博客 4305

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

分布式系统原理介绍_分布式系统的全面介绍

分布式系统原理介绍by Stanislav Kozlovski 斯坦尼斯拉夫·科兹洛夫斯基(Stanislav Kozlovski) 分布式系统的全面介绍 (A Thorough Introduction to Distributed Systems) 什么是分布式系统,为什么这么复杂? (What is a Distributed System and why is it so compl...

cumian9828的博客 4930

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

白话解析分布式系统,小白也能看懂

西方诗歌有云,无人是孤岛,你我心相系。今天,这句话同样适用于计算机。我们身边的服务器,个人电脑以及数据存储一直都在彼此通信。其实,我们每天使用的(和在开发的)应用和服务也都是构成完整系统的计算元素,彼此进行着交互,尽管很多时候我们感知不到。 对这些系统及其运行原理的研究属于分布式计算的一部分,而分布式计算又是分布式系统的核心所在。一方面,我们可以把分布式系统看作计算机科学的扩展或继续,...

java580的博客 9954

分布式系统简述

简单来说,分布式系统是计算机的集合,它们一起工作以形成最终用户的单台计算机。所有这些分布式机器共享相同的状态并同时运行。 它们可以独立失败而不会损坏整个系统,就像微服务一样。这些相互依赖的自主计算机联网,可以轻松共享信息、通信和交换信息。 一般来说,有以下三种类型的分布式计算系统: 分布式信息系统:使用多种通信模型将信息分布在不同的服务器上。 分布式普及系统:使用嵌入式计算设备(例如 ECG 监视器、传感器、移动设备) 以及分布式计算系统:网络上的计算机通过消息传递交换数据。 去中心化.

JiangTao2333的博客 3247

分布式系统的特征

《分布式系统概念与设计》读书笔记(第一章) [1] [0] 简介 分布式系统是其组件分布在联网的计算机上,组件之间通过传递消息进行通信和动作协调的系统。该定义引出了分布式系统的下列重要特征:组建的并发性、缺乏全局时钟、组件故障的独立性。 我们看一下现代分布式系统的几个例子:Web搜索、多人在线游戏和金融交易系统,也考察今天推动分布式系统发展的关键趋势:现代网络的泛在特性,移动和无处不在的计算的出现,分布式多媒体系统不断增加的重要性,以及把分布式系统看作一种实用系统的趋势。接着本章强调资源共享是构造媒体系统

野犬17的博客 3151

浅析分布式系统

我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ拉、微信拉、淘宝拉。那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念。 承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天有1000万个用户

tengxy_cloud的专栏 2922
上一篇: Jkenis自动化部署工具
下一篇: RPC原理
深渊之望
博客等级 码龄6年 2粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值