分布式系统介绍
分布式系统区分
分布式系统分为两种,一种是底层相关的分布式,涉及到底层的一些架构,存储,算法等,另一种是分布式业务系统,把原来用java开发的一大块系统,拆分成多个子系统
底层分布式系统
底层分布式系统相关的有 分布式存储系统 hadoop hdfs,分布式计算系统,hadoop mapreduce, spark,分布式流式计算系统 storm 等
分布式业务系统
把原来用java开发的一大块系统,给拆分成多个子系统,多个子系统之间互相调用,形成一个大系统的整体
为什么要进行系统拆分?
- 分布式系统是整个IT行业发展的大趋势
- 可以极大的对集中式系统进行拆分,将数十万,数百万行代码的项目可以拆分成多个服务,进行拆分部署,极大的简化了项目上线部署的步骤,提高了系统部署的效率
- 对于某个模块的拆分以及优化方便很多,各个服务通过RPC远程调用框架进行数据交互以及服务调用,降低了模块之间的耦合
- 项目技术升级和模块升级很方便,在每次进行技术栈升级或者项目更新的时候,只需要将当前升级的服务模块进行测试即可,不需要考虑整套大系统的系统测试,方便很多
分布式系统必要的问题及解决方案
首先就是增加了网络消耗,以及各个服务之间调用的负载均衡等等一些问题,现目前解决方式主要有dubbo和SpringCloud两种方式