如今的架构不少,各类各样的,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等,还有不少。面试
那什么是分布式系统?分布式系统是支持分布式处理的软件系统,是由通讯网络互联的多处理机体系结构上执行任务的系统。包括分布式操做系统、分布式程序设计语言及其编译系统、分布式文件系统分布式数据库系统等,固然这些也是分布式的关键技术。数据库
使用分布式系统主要有:网络
1.增大系统容量。咱们的业务量愈来愈大,而要能应对愈来愈大的业务量,一台机器的性能已经没法知足了,咱们须要多台机器才能应对大规模的应用场景。因此,咱们须要垂直或是水平拆分业务系统,让其变成一个分布式的架构。架构
2.增强系统可用。咱们的业务愈来愈关键,须要提升整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会由于一台机器出故障而致使总体不可用。因此,须要经过分布式架构来冗余系统以消除单点故障,从而提升系统的可用性。并发
3.由于模块化,因此系统模块重用度更高运维
4.由于软件服务模块被拆分,开发和发布速度能够并行而变得更快分布式
5.系统扩展性更高模块化
6.团队协做流程也会获得改善微服务
分布式系统的类型有三种:高并发
1.分布式处理,但只有一个总数据库,没有局部数据库
2.分层式处理,每一层都有本身的数据库
3.充分分散的分布式网络,没有中央控制部分,各节点之间的联系方式又能够有多种,如松散的联接,紧密的联接,动态的联接,广播通知式的联接等
而后来对比一下单体应用和分布式架构的优缺点:
1.从上面的表格能够看到,分布式系统虽然有一些优点,但也存在一些问题
2.架构设计变得复杂(尤为是其中的分布式事务)
3.部署单个服务会比较快,可是若是一次部署须要多个服务,部署会变得复杂
4.系统的吞吐量会变大,可是响应时间会变长
5.运维复杂度会由于服务变多而变得很复杂
6.架构复杂致使学习曲线变大
7.测试和查错的复杂度增大
8.技术能够不少样,这会带来维护和运维的复杂度
9.管理分布式系统中的服务和调度变得困难和复杂
因此总结一下,分布式系统架构的难点在于系统设计,以及管理和运维。因此分布式系统架构在解决了一些问题的同时,也增长了其余的问题,这就须要不断的再用各类各样的技术跟手段去解决这些新增的问题。后续会跟上分布式系统架构的搭建以及使用。
Hadoop伪分布式集群搭建使用
Hadoop HA 高可用关键搭建
欢迎工做一到五年的 Java 的工程师朋友们加入的 Java 架构开发:705127209
本群提供免费的学习指导架构资料以及免费的解答
不懂得问题均可以在本群提出来以后还会有职业生涯规划以及面试指导
做者:OnTheRoad_Kang
来源:CSDN
原文:https://blog.csdn.net/qq_32297447/article/details/79081112