全国热线

400-080-3312

全国监督投诉热线:9:00-23:00

it分布式系统学习

由于IT的广泛应用,越来越多的企业在不断地对其产品迭代的同时,也在对其技术结构进行升级,将早期的单一结构升级为分布式结构。更新改造的成本是很大的,那么为什么各大企业仍然趋之若鹜地在做架构改造?有三个主要原因:

  由于IT的广泛应用,越来越多的企业在不断地对其产品迭代的同时,也在对其技术结构进行升级,将早期的单一结构升级为分布式结构。更新改造的成本是很大的,那么为什么各大企业仍然趋之若鹜地在做架构改造?

  有三个主要原因:

  单片机系统带来的成本过高,因特网用户的大量涌入,导致需要更好的计算能力、网络能力、存储器能力,而仅仅通过扩充小型机、大型机来提高单片机的性能,成本过高,一般企业难以承受。

  2)数据为王的时代要求更多的数据分析,企业需要更经济的方式来存储数据、分析数据,显然,分布式系统多节点是更好的选择;

  3)在用户为王的因特网时代,因特网产品都需要7*24小时的服务,以保证系统的高可用性,通过增加设备,做好容灾准备的方法也可以发展成为一种分布式系统。

  如前所述,我们需要分布式系统。分布系统的定义是由一组计算机节点组成的系统,它们通过网络进行通信,协同工作,完成共同的任务,简单地说,就是通过网络将多台连结的计算机连结起来,协同工作,形成一个高效、高效的外部服务系统。

  分布系统的学习由分布计算与分布存储两大模块组成。对于分布式计算,需要了解四个知识点:

  1)服务如何定位其他服务?

  如何判断将服务请求发送给哪个实例?

  3)如何避免系统性雪崩?

  四、如何进行监控报警工作?

  我们还需要学习的分布式存储的四个知识点:

  如何判定资料储存的规则?

  如何对数据进行分片?

  三、数据如何被复制?

  4)分布式事务如何实现?

  在分布式计算的分布式系统中,第一个问题就是如何找到其他服务?这一块主要是结合微服务的理念在落地。把服务分成(提供响应的服务)和消费者consumer(发起请求的服务),然后通过服务注册,服务发现,生产者节点将其能够提供的服务、其IP地址端口等发送到注册中心,消费者节点则从注册中心获得所需的服务,以满足其要求。

  其次,在服务发现之后,用户节点应该将用户请求发送给部署了生产者节点的哪个服务呢?若服务处于有状态(即同一服务下不同机器的数据不同),则通过路由确认当前正在访问的请求数据位于哪个实例,然后再进行请求的分发;如果服务处于无状态(即同一服务不同机器的数据相同),则可以通过hash、加权分配、轮询等规则来分发请求。

  还有一个问题是如何避免服务出现雪崩(例如,某一台部署服务的机器出现了故障,发出了大量请求,导致其他机器无法运行,最终该服务的所有机器都挂了)?分布系统中有两种方法:1)快速降低系统负荷,以避免雪崩的方式,即服务熔断,服务降级,限制流量;2)快速增加机器节点,承受更多服务请求,即弹性扩展。

  如何对分布式系统进行监控告警是最后一个问题?对于分布式系统来说,当发生问题时,由于服务数量多、机器多,如果不了解系统的总体情况、服务和服务之间的关系,那么查找问题的过程是非常困难的。将探针安装到部署服务的每一台机器上,收集数据,进行分布式的trace跟踪,再与特定的报警机器相结合,就能保证服务的高可用性,在出现问题时能迅速地进行查找、解决。

  在分布式存储系统中,首先要解决的问题是,如何根据规则来存储数据?有三种理论在业界很受欢迎:ACID(即atomicity原子性、consistency一致性、isolation隔离性、durability持续性)、BASE(即BasicallyAvailable基本可用、SoftState软状态、EventuallyConsistent最终一致性)、CAP(即Consistency一致性、Availability可用性、Partition分区容错性)。根据业务场景的不同,在交易场景中,大多数企业会遵循ACID原则,即交易操作不能接受任何错误,每一操作的步骤都必须是原子的、操作与操作之间的数据是隔离的、操作完成后的数据是持久的;在大多数情况下,企业通常采用BASE原则,即每一业务系统在开始时由于大量业务量等原因,数据并不需要很强的一致性,但是可以以某种方式使数据保持一致。

  其次,如何进行数据分片处理?因特网系统会产生大量的数据,单机是不可能全部存储数据的,所以就有必要研究如何将数据存储在不同的机器上。分布系统中使用最多的规则是Hash规则、一致性hash规则、分片规则,这些规则用于在不同的机器上存储数据。

  三是如何进行数据复制操作?为保证服务的高可用性,除机器冷备准备外,还需要对数据进行处理,以保证业务请求访问任意节点的数据的一致性和准确性。常见的解决方案有主从复制,一致性协议,等等。

  四是如何处理分布式事务的问题?而在分布式系统中,由于系统被分解为微服务,微服务又被分成多个部署节点,系统中的时间无法完全同步,此时可采用整体系统选择一台机器,按单机的模式来生产事务ID,而多中心同城多中心和异地多中心则可实现事务ID,从而达到分布式事务一致性。


上一篇:java三个综合知识点
下一篇:大厂为什么要用DevOps

相关推荐

免费试听 | 学费咨询 | 在线报名 | 申请补贴 | 软件培训 | 网站地图

2016-2020 南京学码思教育科技有限公司 .All Rights Reserved

苏ICP备16033487号 www.njxms.com.cn

全国热线

400-080-3312

全国监督服务热线:9:00-23:00