分布式系统

什么是分布式系统

分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。从进程角度看,两个程序分别运行在两台主机的进程上,它们相互协作最终完成同一个服务。分布式系统本质:高吞吐、高可用、可扩展 。

集群:就是将相同的程序,通过不断横向扩展,以提高服务能力的方式。

分布式系统有哪些优势

高吞吐:意味着你的系统,可以同时承载大量的用户使用。

高并发:高吞吐的一个延伸需求。当我们在承载海量用户的时候,我们当然希望每个服务器都能尽其所能的工作,而不要出现无谓的消耗和等待的情况。

可伸缩性(可扩展性):是一种对软件系统计算处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展成长过程中,软件能够保证旺盛的生命力,通过很少的改动甚至只是硬件设备的添置,就能实现整个系统处理能力的线性增长,实现高吞吐量和低延迟高性能。

集中式系统是把所有的程序、功能都集中到一台主机上,从而往外提供服务的方式。

分布式系统会面临哪里挑战

毫无疑问,分布式系统对于集中式系统而言,在实现上会更加复杂。分布式系统将会是更难理解、设计、构建和管理的,同时意味着应用程序的根源问题更难发现。

设计分布式系统时,经常需要考虑如下的挑战:

  • 异构性:分布式系统由于基于不同的网络、操作系统、计算机硬件和编程语言来构造,必须要考虑一种通用的网络通信协议来屏蔽异构系统之间的差异。一般交由中间件来处理这些差异。
  • 一致性:数据被分散或者复制到不同的机器上,如何保证各台主机之间的数据的一致性将成为一个难点。
  • 并发:分布式系统的目的,是为了更好的共享资源。那么系统中的每个资源都必须被设计成在并发环境中是安全的。
  • 安全性:加密用于给共享资源提供适当的保护,在网络上所有传递的敏感信息,都需要进行加密。拒绝服务攻击仍然是一个有待解决的问题。
  • 可扩展性:系统要设计成随着业务量的增加,相应的系统也必须要能扩展来提供对应的服务。

如何来设计分布式

设计分布式系统的本质就是“如何合理将一个系统拆分成多个子系统部署到不同机器上”。

    1.  首要考虑的问题是如何合理的将系统进行拆分

    2.  由于拆分后的各个子系统不可能孤立的存在,必然是通过网络进行连接交互,所以它们之间如何通信变得尤为重要。

    3.  当然在通信过程要识别“敌我”,防止信息在传递过程中被拦截和窜改,这就涉及到安全问题了。

    4.  分布式系统要适应不断增长的业务需求,那么就需要考虑其扩展性

    5.  分布式系统还必须要保证可靠性和数据的一致性

1. 系统如何拆分为子系统

    (1)根据系统需求来进行拆分:1交付速度单体程序最大的问题在于系统错综复杂,因此对系统进行拆分,理清各个功能间的关系并解耦。2.技术需求基于技术的横向拆分也很重要,使用数据访问层可以很好的隐藏对数据库的直接访问、减少数据库连接数、增加数据使用效率等;横向拆分可以极大的提高各个层级模块的重用性。3.业务需求将那些有特殊要求的功能从系统中抽取出来,独立部署和扩展。

    (2)数据拆分: 首先对数据库按照业务进行拆分,把需要拆分的业务的相关表放到一个新的数据库中,但是保持上层系统结构不变

    (3)功能拆分:完成数据拆分后,就可以开始业务的拆分;拆分过程中需要坚持一个基本原则:高内聚、低耦合。拆分的实际工作就是解耦

2. 如何规划子系统间的通信

   (1)基于消息方式实现系统间的通信:要基于网络协议来实现,常用的网络通信协议有:TCP/IP和UDP/IP两种

   (2)基于远程调用方式实现系统间的通信:在远程调用中,客户端仅有服务器端提供的接口。通过此接口实现对远程服务器端的调用。

3.  通信过程中的安全如何考虑

   身份验证和信息加密

4.子系统的可靠性如何保证

    即当故障发生时确保系统的全局一致性,系统具有一定的容错能力--冗余技术

    硬件冗余,软件冗余,信息冗余,信息进行复制备份,设置检查点以进行恢复等。

5.数据的一致性是如何实现的

BASE原则:BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写,BASE是对CAP中一致性和可用性权衡的结果。

基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。

软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。

最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值