分布式:
我们目前开发一个功能,是在一个项目中将功能进行实现。然后将开发好的功能部署到tomcat服务器中,对外进行服务。但是呢在实际的应用场景中,有很多的用户都会访问我们的功能,造成我们的服务器压力过大。于是我们对服务器进行水平扩容。搭建很多的服务器,每个服务器都在运行我们的功能。比如:查询账户余额的功能,如果我们此功能只部署在一个服务器中运行,有一亿个用户来访问,造成服务器崩溃。我们搭建N个服务器,同时运行我们的查询功能,用户请求任意服务器都可以处理其请求。但是呢,我们还需要一个特殊的服务器,该服务器不对外进行功能的服务器,而是根据用户的请求,将用户的请求分发到对应的空闲的服务器来处理,避免单个服务器的拥堵。但是我们的一个系统是由很多的
功能组成,根据上面的理论,我们将系统中的某个功能搭建了多台服务器提供服务器,那么
系统的其他功能怎么办呢?因为其他的功能不是高并发的,无需水平扩容,将系统拆分为
多个子功能,每个功能都可以独立的运行在服务器中,并提供服务器。相较于我们以前
将一个系统中的所有功能部署到一个服务器,变为将系统功能拆分后,部署到N个服务器中对外提供访问,并且可以根据高并发的需求,都某个功能的服务器进行水平扩容。此种
方式就是分布式。
简单的讲: 大任务划分为小任务。一个或多个人(或机器)完成同一任务中的不同部分。被分解后的小任务互相之间有独立性,节点之间只管接受和传递信息。
总结:
分布式:就是将由一个服务器运行的资源,拆分到多个服务器中运行。
一、分布式开发:
多人协同,根据接口,个自开发一个模块,最后组合起来运行,可以称为分布式开发。
二、分布式系统:
一个系统,分为多个模块,在不同的机器上部署不同的功能,组合起来工作,(例如,大型系统中, 个人信息模块,商品模块,分别部署在不同的地方,或者不同的部门管理,访问时通过公司规定的接口规范,也是现在流行的微服务。)
三、并行系统(负载均衡)
多个相同的程序,运载在不同的服务器上,可以叫做并行系统。
Git概念
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。
优点:项目开发的管理工具,使用Git可以方便的完成团队的协作开发,以及项目
开发过程中的资源管理。
版本控制工具的作用
1.协同修改 :多人并行不悖的修改服务器端的同一个文件。
2.数据备份 :不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
版本管理 。在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。
3.权限控制 :对团队中参与开发的人员进行权限控制。 对团队外开发者贡献的代码进行审核——Git 独有。
4.历史记录 :查看修改人、修改时间、修改内容、日志信息。 将本地文件恢复到某一个历史状态。
5.分支管理 :允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。