分布式系统的原理和范例[分布式系统设计原理]

分布式系统的原理和范式可能是相关行业的人应该关注的知识。这里详细介绍一下分布式系统的设计原理,还有一些相关知识分享给大家,希望能给你带来帮助!

分布式软件系统是支持分布式处理的软件系统,以及在通过通信网络互连的多处理器架构上执行任务的系统。

它包括分布式操作系统、分布式编程语言及其编译(解释)系统、分布式文件系统和分布式数据库系统。分布式数据库系统由几个工作站组成。这些站也称为节点,它们在通信网络中连接在一起。每个节点都是一个独立的数据库系统,它们都有自己的数据库、中央处理器、终端和自己的本地数据库管理系统。

因此,分布式数据库系统可以看作是一系列集中式数据库系统的组合。。它们在逻辑上属于同一个系统,但在物理结构上是分布的。

扩展信息:

分布式操作系统的特点:

1。分布式数据库系统不强调集中控制的概念。它有一个基于全局数据库管理员的分层控制结构,但是每个本地数据库管理员都有高度的自主权。

2。数据独立性的概念在分布式数据库系统中同样重要,但是增加了一个新概念,即分布式透明性。。所谓分布式透明,就是写程序的时候,好像数据不是分布式的,所以转移数据不会影响程序的正确性。但是程序的执行速度会降低。

3。不同于集中式数据库系统,数据冗余被认为是分布式系统中的必要特征。原因如下:首先,如果在所需节点复制数据,可以提高本地适用性。

其次,当一个节点出现故障时,可以操作其他节点上复制的数据。因此,这可以增加系统的有效性。当然,分布式系统中最优冗余的评估是非常复杂的。

参考来源:百度百科-分布式操作系统

分布式系统背景

说到分布式系统,就必须说集中式系统。在集中式系统中,整个项目是一个独立的应用程序,整个应用程序就是整个项目,所有的东西都在一个应用程序中。

网站就是一个应用。最后,添加多个服务器或多个容器,达到负载均衡的目的,避免单点故障。当然,数据库可以单独部署。

集中化的明显优势是开发测试运维会更方便,不用考虑复杂的分布式环境。

集中化的明显缺点是不容易扩展,所有应用每次都要更新。而且,一个问题意味着所有的应用都有问题。当系统越来越大时,中心化将是系统最大的瓶颈。

什么是分布式系统?

分布式系统是几台独立计算机的集合,对于用户来说,它们就像一个相关的系统。

以上定义摘自《分布式系统的原理和范例》一书。也就是说,分布式系统是由一系列计算机组成的。,但用户并没有意识到背后的逻辑,就像访问单台计算机一样。

有点迂回,可以简单看一下分布式系统图。

分布式系统的优缺点

分布式系统:

1。应用可以按照服务类型分为多个应用,再按照结构分为接口层和服务层;我们还可以根据接入点定义不同的接口应用,比如移动终端和PC终端。

2。可以根据业务类型将数据库分成多个实例。,也可以将数据库和表划分为单个表;

3。添加分布式缓存、搜索、文件、消息队列、非关系数据库等中间件;

显然,分布式系统可以解决集中式不方便扩展的缺点。我们可以在任何一个环节轻松扩展应用,即使一个应用出现问题,也不会影响到其他应用。

随着微服务SpringCloudDocker的流行和国内开源分布式Dubbo框架的重生。分布式技术发展非常迅速。

分布式系统虽然好,但是也带来了系统的复杂性,比如分布式事务、分布式锁、分布式会话、数据一致性等等,这些都是现在分布式系统需要解决的难题,虽然有很多成熟的方案。,但它们并不完美。分布式系统也增加了开发和测试运维的成本,工作量增加。分布式系统管理不善将成为一种负担。

如果你对分布式技术有更好的看法,或者对本文有什么异议,请在下面留言。

关注Java技术栈微信微信官方账号,后台回复:架构,获取更多栈长编写的架构教程,都是实战干货。以下只是部分预告。

如果有一些系统设计的基础,我给你推荐几本书:《面向模式的软件架构卷4:分布式计算的模式语言》出版社:人民';s邮电出版社

主要致力于分布式计算系统软件的设计与实现。

软件方向,相对专业。。《分布式计算(第二版)》出版社:电子工业出版社

主要介绍分布式计算的数学基础和理论,揭示设计分布式系统的底层问题(通信、协调、同步和不确定性),基本算法概念和下界技术。

通俗易懂,适合自学。《分布式系统原理与范型》出版社:清华大学出版社

第一部分讨论分布式系统的原理、概念和技术,包括通信、进程、命名、同步、一致性和复制、容错和安全。。第二部分给出了一些实用的分布式系统:基于对象的分布式系统、分布式文件系统、基于文档的分布式系统和协同分布式系统,并介绍了一些实用系统的设计思想和实现技术。

通俗易懂,适合自学。

首先,谷歌';s三篇入门文章(GFS/大表/MapReduce)必读,对分布式系统有基本了解。此外,你需要理解lamport'的逻辑时钟思想;的父亲,然后读木筏。

筏,其实是比较容易实现的一个玩具。真正难的是大量原论文没有提到的工程优化。。不过根据原论文中的几个RPC实现来看,问题不大,只是有点慢,吞吐量可以';不要起床。

参考了go的几个raft实现,比如hashicorp(领事)的,可能测试的少一点。,可能有bug),C'slogcabin(Diego自己写的…不过性能呵呵)

几个工业级的raft实现其实不太适合新手。比如coreos的etcd和pingcap的tikv(其实这两个raft实现是同根的,都是从etcd派生出来的raft实现。,由pingcap和coreos两个团队维护和开发)。这两个实现做了大量的工程优化,有些地方和原论文有点出入。但是这两个测试,无论是测试还是生产环境,都是其他raft实现无法比拟的。。

分布式系统的特点:

1。分销。分布式系统由许多计算机组成,这些计算机在地理上是分散的,可以分散在一个单位、一个城市、一个国家甚至全世界。。整个系统的功能分布在各个节点上,所以分布式系统具有数据处理的分布性。

2。自主。分布式系统中的每个节点都有自己的处理器和存储器,每个节点都有独立的数据处理功能。通常,它们的地位是平等的,不仅可以自主工作,还可以使用共享的通信线路传递信息,协调任务处理。

3。并行性。一个大任务可以分成几个子任务,在不同的主机上执行。

4。全球。分布式系统中必须有一个单一的、全局的进程通信机制,使得任何进程都可以与其他进程通信,而无需区分本地通信和远程通信。同时,应该有一个全球保护机制。。系统中的所有机器都有一套统一的系统调用,必须适应分布式环境。在所有CPU上运行相同的内核使得协调更加容易。

5。分布式系统更加开放。相同的接口规范,集群计算机可以方便地操作数据,系统协作性更高;

外部:体现在统一的接口描述中,用统一的接口描述语言描述一组所有服务器都知道的规则。这样服务器之间的交互就没有问题了。具体的接口实现是根据各个服务器的情况来实现的,这样就有效的将实现和声明解耦了。内部:每个服务器的内部策略和实现也需要解耦。为了防止整个服务器按照实现和声明的逻辑来实现,但是服务器确实是一个整体,这样会大大降低分发的开放性。

与传统拼接处理器相比,分布式输入输出节点设备分开部署。通过IP网络互联,分布式部署在软件厂商集中控制的拼接控制系统中。因此,与集中式系统相比,分布式系统具有低成本、高性能和扩展简单的优点。比如一张世界地图。如果互联网上所有的世界地图都存储在一个服务器上。那么,面对来自世界各地的巨大访问量,东道主必然会走下坡路。但如果地图信息存储在世界各地的服务器上,大家通过网络交互来访问,就不会出现这样的问题。而且即使某个地区的服务器宕机,需要修复的也只是这一台服务器。。这就是分布式工作的原理和优势。目前分布式处理器在国内做的不错。可以查一个叫晨宇科技的公司。目前,在音视频技术领域,如大屏幕拼接、投影融合、KVM坐席等,经常使用分布式。。KVM是一个大规模的可视化代理协同管理平台,新闻里那些火箭发射指挥中心都是用这样的系统。

都看过了吗?我相信现在您已经对分布式系统的原则和范例有了初步的了解。!也可以收藏页面,获取更多分布式系统设计原理的知识!区块链,虚拟货币,我们是认真的!

分布式系统的原理和范例[分布式系统设计原理]文档下载: PDF DOC TXT
文章来源: 肖肖
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。