分布式系统基础
本文最后更新于 2024年9月12日 晚上
分布式系统
定义
一个分布式系统是:一组独立的计算机,在用户看来是一个单一的连贯系统。其中,位于联网计算机上的硬件或软件组件仅通过传递消息来通信和协调其操作。
构造分布式系统的主要动机是资源共享和协同计算
特点
资源共享:分布式系统中的多个节点可以共享资源(如计算能力、存储和网络带宽),并且这些资源可以被多个用户和应用程序访问。
并发性:分布式系统允许多个用户和应用程序同时访问和操作系统中的资源。这种并发性是分布式系统设计的核心。
透明性:用户和应用程序通常不需要关心资源的物理位置。分布式系统通过中间件和协议提供透明性,使得资源的访问和管理看起来像是在单一系统中进行。
容错性:分布式系统能够在部分节点发生故障时继续运行。系统通常会实现冗余和备份机制,以确保高可用性。
可扩展性:系统规模有一定规模的扩展,无论是资源还是用户,系统的性能保持在一定的水平。
异构性:分布式系统可以由不同类型的计算机和操作系统组成,能够在异构环境中协同工作。
没有全局时钟:每个机器的有各自的时间,没有办法做到统一,程序间的协调靠交换消息
故障独立性:一些进程出现故障,并不能保证其它进程都能知道
中间件的作用

通信管理:分布式中间件提供了不同系统或服务之间的通信机制,支持异步消息传递、远程过程调用(RPC)等,简化了系统间的交互。
负载均衡:通过分布式中间件,可以实现请求的负载均衡,将流量分配到多个服务实例上,提高系统的可用性和性能。
事务管理:中间件可以提供分布式事务管理,确保多个服务之间的数据一致性。
安全性:中间件可以提供安全机制,如身份验证和授权,确保只有经过授权的用户和服务可以访问特定资源。
监控与管理:分布式中间件通常集成监控工具,帮助开发者和运维人员实时监控系统的健康状态和性能指标。
容错与恢复:中间件可以实现故障检测和自动恢复机制,提高系统的可靠性和可用性。
中间件的插入,实现了分布式系统对用户的透明性,用户不用再关注分布式系统底层的架构和通信,只需要调用中间层暴露出来的接口。