什么是分布式系统?

什么是分布式系统?-mikechen

分布式系统定义

分布式系统是由多个独立的计算机或节点组成的系统,这些节点通过网络进行通信和协作,共同完成特定的任务或提供特定的服务。

 

分布式系统作用

分布式系统的设计目标是通过将计算和数据分布在不同的节点上,实现更高的性能、可扩展性、容错性和可靠性。

 

分布式系统特点

分布式系统的关键特点包括:

  1. 分布性:系统由多个节点组成,并且这些节点可以分布在不同的物理位置或计算机上。
  2. 并发性:多个节点可以并行地执行任务,从而提高系统的处理能力和性能。
  3. 缺乏全局时钟:分布式系统中的节点通常没有全局时钟,而是使用局部时钟进行时间同步或事件排序。
  4. 故障容忍性:分布式系统应对节点故障和通信故障具有容忍性,能够继续提供服务或恢复正常运行。
  5. 可扩展性:系统应能够方便地扩展,添加或移除节点以适应不断增长的工作负载。

 

分布式系统有哪些

1.分布式服务

比如大家现在熟知的:Spring CloudSpring Cloud Alibaba以及新一代Istio为代表的ServiceMesh都是分布式服务典型代表。

 

2.分布式缓存

常用的分布式缓存包括Redis和Memcached。

1.Memcached

什么是分布式系统?-mikechen

Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。

Memcached通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

 

2.Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis支持多种类型的数据结构,最常用的5大数据类型,如下图所示:

什么是分布式系统?-mikechen

 

3.分布式文件系统

比如:常见的GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等分布式文件系统

什么是分布式系统?-mikechen

 

4.分布式计算系统

例如:Apache Spark、Apache Flink和Hadoop MapReduce等,用于高性能数据处理、大规模数据分析和批处理的分布式计算系统。

 

5.分布式消息队列系统

例如:Apache Kafka和RabbitMQ、RocketMQ等,用于处理实时数据流和消息传递的分布式消息队列系统。

什么是分布式系统?-mikechen

1)Producer 消息生产者:负责产生和发送消息到 Broker;

2)Broker 消息处理中心:负责消息存储、确认、重试等,一般其中会包含多个 queue;

3)Consumer 消息消费者:负责从 Broker 中获取消息,并进行相应处理;

 

其它分布式系统技术

除此之外,还会涉及:分布式配置中心、分布式日志中心、分布式监控、分布式会话等等,都是分布式系统场景下你需要使用和了解的一些技术。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法