课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而今天我们就通过案例分析来了解一下,软件开发架构技术局限性。
架构领域在经历了模块化编程、面向事件设计、面向接口设计等一系列发展后,1996年,Garnter提出了SOA概念,将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务将不同接口和协议联系起来。现在,SOA已经被很少提及,大家提到多的是往往微服务。
分布式架构系统使模块重用度更高,开发和发布速度变得更快。但新的架构模式在解决问题的同时,也会带来新的问题。分布式架构先就面临着高复杂度的问题,这主要体现在以下三个方面:
协作模式。多台机器之间如何协作是非常重要的,选择主从模式、对等模式还是其他协作方式,直接决定了系统后的运行效率。数据一致性。单体架构中,数据的存储、读取和计算等都在一处,处理起来很方便,但在分布式架构中,会有多处进行数据处理,那如何保证服务器间数据在同一时刻是一致的、客户端读取的都是新结果?效率问题。限制效率的因素有很多,除了跨机房、跨地域的分布式架构自带的物理限制,还有节点规模越来越大而带来的沟通效率等问题。
为了解决上述问题,一开始企业采用了简单的主从结构协作模式,即设置一个中心节点来处理相应的事务,类似班级里班长的角色。但这种架构天生带有一种危险因素:中心依赖。中心节点对吞吐量要求很高,一旦挂掉系统就会处于“群龙无”的状态。
随着进一步演化,这个“班长”不再固定,变成各节点动态“轮值”,类似企业CEO轮值,然后再通过层层分级的管理方式实现整体管控。
这里就要提到分布式系统中的CAP原理:一致性(Consisteny)、可用性(Availability)和分区容错性(PartitionTolerance),这三者是无法同时满足的。比如,分区容错性能够解决集群分区问题,但网络故障导致分布式系统各组件之间产生分区,便无法同时满足一致性和可用性。
在的区块链分布式账本技术中,虽然强调不存在中心节点,但也有分区政策。比如一笔交易并不会让所有节点记录,达到一定比例即可被加到账本中。完全的分布式账本思路很优秀,但现实适用性还不够好。拿现在分布式账本上做得好的比特币网络来说,因为系统采用了简单的存储和计算模型,在效率等方面就做出了牺牲。
回归到分布式架构,层层分级的管理方式虽然保证了一定的分布式理念,也避免了节点数量过多而使架构整体更加复杂,但却不是真正的“去中心化”。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。