跟我学代码架构设计模式之--分布式系统的本质

首先,分布式系统也是计算机软件应用系统。

那么一个计算机软件系统普遍应该有哪些部分组成呢?

1 计算资源,体现在系统中就是线程资源,线程池。

2 存储资源,体现在系统中就是内存存储或者磁盘存储。

3 连接器,即socket,几乎所有的对外提供服务的系统,都通过socket和外部系统打交道。

4 共享数据资源,这里的共享数据资源指的是用来协调其他资源的配置信息等,在非分布式的系统中,一般共享数据资源都加载到内存的堆中或者静态数据区,所有的线程都能够访问到。

下面跟我来分析下,单机系统和分布式系统。

# 单机系统中由于进程都加载到了内存中,上述的所有组成部分都可以在内存中直接获,不再多说。

# 对于分布式系统,进程扩展到了多个机器或节点上,上面说的系统组成部分中,除了连接器是绑定到进程的,计算资源和存储资源都扩展到了多个物理机器上,即:

1 计算资源:CPU变多了,分布式系统可用的线程池变多了。

2 存储资源:内存和磁盘变多了,分布式系统可用的存储变多了。

分布式系统如何才能有分配计算资源和存储资源呢,答案是必须要有共享存储资源的协调,比如跨节点线程调度和数据分片存储!只有做到了共享数据资源在分布式系统的多节点共享,才能实现一个分布式系统!

那么分布式系统如何做数据共享呢?两种方式:

1 节点间通过广播或者两两互相点对点通信的方式交换共享数据,始终保持分布式系统中的每个节点上都有一份相同的且时时保持同步的共享数据。

2 引入外部共享数据存储服务器,分布式系统中的所有节点都从共享存储服务器获取共享数据资源。

对于引入外部共享存储本身的集群实际上是通过上面的1方式来实现的共享数据。

(完)

发布了63 篇原创文章 · 获赞 25 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/w1857518575/article/details/85679593