课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员能够掌握的编程架构方式也在发生变化,而今天我们就一起来了解一下,分布式系统的概念与痛点分析。
1、分布式系统
身为二十一世纪的一名程序员,没听说过分布式系统就显得自己好像没有女票一样尴尬。无论是出去面试跟面试官吹水,还是在工作中和同事吹水,分布式系统永远是你显得高人一等的筹码。分布式系统已经诞生了好几十年,说起来比我们八零后程序员好要老成,随着现代互联网的崛起,对于系统在性能,可靠性上的要求大大提高。
分布式系统的定义其实很简单,也很抽象:任何由处于不同物理位置的多个进程提供相同服务的系统都可以称之为分布式系统,退一万步讲,同一台服务器上的不同进程也可以组成分布式系统
分布式系统的要目标是提高系统的整体性能,但不仅限于吞吐量,可靠性,响应时间,数据一致性等,其中提高性能指标是重要的。如果终设计出来的分布式系统占用了更多的资源却还比不上单机的性能,那这个分布式系统是失败的,理论上没有存在的价值
一个分布式系统的整体性能提高并不是单单依靠扩展来实现,提高单机的处理性能仍然很重要,一个把单机性能发挥到极致的分布式系统,在同等性能的需求下,采用的资源要远远小于其他系统。
2、分布式系统痛点
一个好的分布式系统在性能方面要远超单机系统,但是在数据行为方面要表现的和单机系统一样优秀,其中包括数据的一致性,硬件的故障发生率,网络的不稳定性等。
无论是单机系统还是分布式系统都存在无法回避并且无法彻底去除的风险,比如:硬盘发生故障,网络发生瘫痪,光纤被挖.....分布式系统随着节点的增加,把这些故障的发生率也随之增大,所以分布式系统其中一个目标是要尽量降低这些风险,也就是所谓的容错性。
既要快还要不出错,这在“伦理”上是冲突的。就像我们平时说的分布式锁,如果要保证对一个资源的修改不会发生线程安全问题,就要付出降低性能的代价。至于性能和容错性怎样选择,还需要具体到每个业务场景中,比如支付场景中,数据的正确性可能要比性能指标更重要,而那些日志型数据,比如用户的登录日志,这些数据的大特点就是允许小部分丢失,在这样的日志系统设计中,可能性能指标要大于容错性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。