• 分布式系统简介


    定义

    • 组件分布在网络计算机上

    • 组件之间仅仅通过消息传递进行通信和协调行动

    意义

    • 提高系统可用性,防止单节点故障引起的系统不可用

    • 提升系统整体性能,通过负载均衡技术(硬件负载均衡,软件负载均衡),避免单机性能瓶颈

    特点

    • 分布性:分布式系统中的多台计算机都会在空间上随意分布

    • 对等性:分布式系统中的计算机没有主/从之分

    • 并发性:分布式系统中可能会并发地操作一些共享的资源

    • 缺乏全局时钟:分布式系统的时钟和事件顺序

    • 故障总会发生:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生异常故障

    问题

    • 通信异常:由于网络本身的不可靠性。分布式系统需要在各节点之间进行网络通信,因此每次通信都会伴随网络不可用风险。即使分布式系统各节点之间的网络通信能够正常进行,其延时也会远大于单机操作。现代计算机体系结构中,单机内存访问的延时在纳秒数量级(通常是10ns左右),而正常的一次网络通信的延迟在0.1~1ms左右(相当于内存访问延时的100多倍),如此巨大的延时差也会影响消息的首发过程,因此消息丢失和消息延迟变得非常普遍

    • 网络分区:由于网络通信异常,导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点能够正常进行通信,而另一些节点则不能。当网络分区出现时,分布式系统会出现局部小集群,在极端情况下,原本需要整个分布式系统才能完成的功能,是对分布式系统一致的最大难题

    • 三态:分布式系统中的每一次请求与响应,存在特有的”三态“概念,即成功、失败与超时。传统单机系统中,应用程序在调用一个函数后,能够得到一个非常明确的响应:成功或失败。而在分布式系统中,由于网络是不可靠的,通常网络通信能够接收到成功或失败的响应,但是当网络出现异常时,就可能会出现超时现象(请求或响应过程发生了消息丢失现象),这时网络通信的发起方无法确定当前请求是否被成功处理

    • 节点故障:分布式系统中的节点出现宕机或“假死”现象,每个节点都有可能出现故障

  • 相关阅读:
    ios属性或者变量的前缀-杂记
    xcode注释方法
    ios 不同的数据类型转化为json类型
    第一部分----HTML的基本结构与基本标签
    Git使用总结
    c#后台弹出框
    svn下载安装
    svn配置
    access 日期转换
    C# 中关于汉字与16进制转换的代码
  • 原文地址:https://www.cnblogs.com/cmdra/p/5906087.html
Copyright © 2020-2023  润新知