git的分布式与svn的集中式

git是分布式版本控制系统,而svn是集中式版本控制系统。

首先要明确集中式与分布式的区别

集中式是早期出现的计算机系统架构方式,工作原理简单讲就是由一台大型主机或者几台主机构成的中心节点,来存储、控制、处理所有的数据。所有访问主机的计算机都只是执行输入输出操作。一旦主机崩溃,系统将无法继续工作。打个比方,人体就是一个集中式处理系统,大脑就是主机,身体的其他部位就是访问主机的用户。我们的所见所闻都要传输到大脑进行处理,得到操作反馈,形成记忆。大脑一旦坏死,人体系统也会停止运作。(当然,人体的处理机制远远没有这么简单)

分布式是计算机不断发展过程中出现的另外一种计算机系统架构。具有以下几个特征:1. 分布性:分布式系统中的多台计算机在空间上随意分布,比如可以分布在不同的城市。2. 对等性:各个计算机之间没有主从关系,既没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有节点都是对等的。3. 并发性:多个节点可能会并发的操作一些共享资源。当系统之一的节点崩溃,可以迅速从崩溃节点的副本拷贝一份出来建立新的节点来恢复服务。副本包括数据副本和服务副本,数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的 数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题最为有效的手段。另一类副本是服务副本,指多个节点提供同样的服务,每个节点都有 能力接收来自外部的请求并进行相应的处理

而版本控制系统中的集中式和分布式是有区别的

集中式版本控制系统,版本库是集中存储在中央服务器的,每个人电脑上有的是最近一次从服务器获得的新版本。若想针对每个功能做一次说明提交,就只能上传至远程服务器,所以联网才能工作。而且要保证网速。一旦服务器崩溃,将不能提交。如果服务器损坏,将丢失历史提交记录。

分布式版本控制系统没有“中央服务器”的概念,但是为了方便多人协同开发,还是会找一台机器充当“中央服务器”,不过每个人的电脑上都有完整的版本库。在没有网络的情况下可以先提交到本地,再上传到服务器。如果服务器崩溃,可以立即从一个人的电脑上复制一份出来再建一个“服务器”,不会丢失历史记录。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,048评论 2 89
  • 分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据...
    olostin阅读 4,667评论 2 26
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 原文地址Dynamo 摘要 面对世界上最大的电商网站 Amazon.com,我们遇到的最大挑战之一就是海量规模下后...
    wangjie_yy阅读 2,215评论 0 3
  • 总结 现在感觉学完东西如果不做笔记的话,确实非常容易忘记 1.暑假重新用hexo和github搭建了博客,把hex...
    gzlfight阅读 192评论 0 0