集中式到分布式的发展历史

一、发展

世界上第一台电子计算机ENIAC于1946年2月14号诞生于宾夕法尼亚大学。

冯诺依曼结构包括:输入设备、存储器、输出设备、运算器、控制器(运算器加控制器为CPU)。

CISCComplex Instruction Set Computer(复杂指令集),面向个人。

RISC,Reduced Instruction Set Computer(精简指令集),面向企业。

去IOE:IOE指IBM小型机、Oracle数据库、EMC的高端存储,采用oracle数据库传统集中式的架构的tuozhan主要采用向上拓展的方式,即通过增加CPU、内存、磁盘等方式提高处理能力。这种架构越不适应海量数据对计算能力的要求。

二、分布式系统的意义:

 

  1. 升级单机处理能力的性价比越来越低。
  2. 单机处理能力存在瓶颈。
  3. 稳定性和可用性这两个指标难达到。

三、分布式系统中的概念:

集群:对于同一个系统使用多个服务器。

分布式:分布处理逻辑。

节点:一个可以独立按照分布式协议完成的一组逻辑的程序个体。

副本机制:为数据和服务提供的冗余。

中间件:位于操作系统提供的服务之外,又不属于应用。是位于应用和系统层之间为开发者方便的处理通信、输入输出的一类软件。

四、分布式架构的演进过程

    1、单应用架构:把所用软件和应用都部署在一个单机上。

集中式到分布式的发展历史_第1张图片

    2、应用服务器和数据库服务器分离:web服务器和数据库服务器分离,提高了单机的负载能力,也提高了容灾能力。

集中式到分布式的发展历史_第2张图片

3、应用服务器集群-应用服务器负载告警:提升了应用服务器的负载能力。带来的问题:1.用户由谁来转发到具体的服务器。2.用户访问到不同的服务器时如何维护session。解决:添加中间件,负载均衡器

集中式到分布式的发展历史_第3张图片

集中式到分布式的发展历史_第4张图片

4、数据库压力变大,使数据库读写分离。带来问题:主从数据库之间的同步,可以使用mysql自带的master-slave方式实现主从复制;对应数据源的选择,采用第三方数据库中间件,如mycat。

集中式到分布式的发展历史_第5张图片

5、使用搜索引擎缓解读库的压力。这样能提高查询速度,但也带来问题,如维护索引的构建。

集中式到分布式的发展历史_第6张图片

6、引入缓存机制缓解数据库的压力。对于热点数据,可以使用mencache、redis等来作为我们应用层的缓存;使用nosql的方式限制某些ip的访问频率。

集中式到分布式的发展历史_第7张图片

7、数据库的水平垂直拆分。

垂直拆分:把数据库不同业务数据拆分到不同的数据库。

水平拆分:把同一个表中的数据拆分到两个甚至更多的数据库中。

集中式到分布式的发展历史_第8张图片

8、应用的拆分:按照领域模型拆分为多个子系统。

集中式到分布式的发展历史_第9张图片

这是各种子系统间可能会相互调用,如用户数据需要在商品和交易中都需要查询。此时可能通过走服务化的方式进行解决。集中式到分布式的发展历史_第10张图片

服务之间的通讯可通过RPC技术,如webservice、hessian、http、RMI等等。

总体梳理:

集中式到分布式的发展历史_第11张图片

分布式领域中冯诺依曼模型的变化(类比)

输入设备的变化

在分布式系统架构中,输入设备可以分两类,第一类是互相连接的多个节点,在接收其他节点传来的信息作为该节点的输入;另一种就是传统意义上的人机交互的输入设备了 。

输出设备的变化

输出和输入类似,也有两种,一种是系统中的节点向其他节点传输信息时,该节点可以看作是输出设备;另一种就是传统意义上的人际交互的输出设备,比如用户的终端 。

控制器的变化

在单机中,控制器指的是 CPU 中的控制器,在分布式系统中,控制器主要的作用是协调或控制节点之间的动作和行为;比如硬件负载均衡器; LVS 软负载;规则服务器等 。

运算器

在分布式系统中, 运算器是由多个节点来组成的。运用多个节点的计算能力来协同完成整体的计算任务 。

存储器

在分布式系统中,我们需要把承担存储功能的多个节点组织在一起,组成一个整体的存储器;比如数据库、 redis(key-value 存储) 。

五、分布式系统的难点

三态:在集中式架构中,调用一个接口返回的结果只有成功和失败,但在分布式领域中会出现“超时”这个状态,即未知。

分布式事务:确保ACID。

负载均衡

一致性:确保各台数据库主机数据的一致性。

故障的独立性:分布式系统中各个节点的故障是独立的,确保一个节点故障不会引起其他节点的宕机。

 

 

你可能感兴趣的:(集中式到分布式的发展历史)