课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,软件架构形式也越发的多样化,今天我们就从可用性、扩展性等角度来对软件架构做一个简单分析。
高可用
在我们谈高可用的时候,我们无时无刻不在面对各种故障。显然,让系统拥有自愈的能力和机制是面对故障时依旧保持高可用的根本。无状态的服务的恢复相对简单,只需自愈机制将故障服务重启或迁移到正常节点。而对于有状态的服务,如果状态是可以恢复的,不论是从更底层的存储系统恢复状态还是利用副本机制从其他副本恢复,那么自愈机制同样可以维持有状态服务的高可用。后我们还希望隔离各种故障所产生的变化,让业务端尽可能感知不到故障恢复前后系统所发生的各种微妙变化。
可扩展
在一个系统里无状态的部分通常是容易扩展的,在服务发现和路由机制的帮助下无状态的服务可以非常容易地横向扩展到更多的节点上。尽量消除组件的状态可以帮助我们提升整个系统的可扩展性。但业务是多样的,系统也是复杂的,不可能理想化地只包含无状态的组件。在这种情况下我们应当收拢状态,减少需要维护的强状态组件。如果能进一步将有状态的服务调整为可从外部系统恢复的弱状态服务,对整个系统的可扩展性同样能起到非常正面的作用。
去并发
通常业务系统越往核心组件走状态越重扩展的代价也越大,层层拦截快速降低需要深入到核心组件的并发请求量在大型系统设计上是非常常见的。在已读服务中采用了两个常见的分层去并发的设计。先是高效率的缓存,通过提高缓存的命中率我们将大量的业务请求拦截在系统薄弱的数据库层以外。其次是数据压缩机制,通过使用高效率的压缩机制来平衡计算和存储的消耗降低终落到物理存储设备上的I/O压力。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。