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