标签:分解 roc multi mpp redis 分析 之一 系统 for
架构设计的真正目的
为了解决软件系统复杂度带来的问题。
复杂度来源:高性能、高可用、可扩展性、低成本、安全、规模
1. 高性能
软件系统中高性能带来的复杂度主要体现在两方面,
一方面是单台计算机内部为了高性能带来的复杂度;
另一方面是多台计算机集群为了高性能带来的复杂度。
单机复杂度
计算机内部复杂度最关键的地方就是操作系统。计算机性能的发展本质上是由硬件发展驱动的,尤其是 CPU 的性能发展。著名的“摩尔定律”表明了 CPU 的处理能力每隔 18 个月就翻一番。
操作系统和性能最相关的就是进程和线程。
让多个 CPU 能够同时执行计算任务,从而实现真正意义上的多任务并行。目前这样的解决方案有 3 种:SMP(Symmetric Multi-Processor,对称多处理器结构)、NUMA(Non-Uniform Memory Access,非一致存储访问结构)、MPP(Massive Parallel Processing,海量并行处理结构)。其中 SMP 是我们最常见的,目前流行的多核处理器就是 SMP 方案。
在做架构设计的时候,需要花费很大的精力来结合业务进行分析、判断、选择、组合,这个过程同样很复杂。举一个最简单的例子:Nginx 可以用多进程也可以用多线程,JBoss 采用的是多线程;Redis 采用的是单进程,Memcache 采用的是多线程,这些系统都实现了高性能,但内部实现差异却很大。
集群的复杂度
通过大量机器来提升性能,并不仅仅是增加机器这么简单,让多台机器配合起来达到高性能的目的,是一个复杂的任务。
2.高可用
定义:系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计的准则之一。
本质上都是通过“冗余”来实现高可用。
标签:分解 roc multi mpp redis 分析 之一 系统 for
原文地址:https://www.cnblogs.com/xl717/p/13354203.html