什么是分布式系统呢?
分布式系统是由多台计算机(节点)通过网络连接在一起,并以协同的方式工作以完成共同的目标的系统。这些计算机通常被称为节点,它们分布在不同的位置并通过网络进行通信。在分布式系统中,各个节点可以独立工作,协同完成一项任务,或者共同处理一组任务。
关键特点和概念包括:
-
分布性:系统的组件在多个物理位置上分布,彼此通过网络连接进行通信。
-
并发性:多个节点同时执行任务,可以同时处理多个请求或操作。
-
透明性:用户或应用程序不需要关心哪些操作在哪个节点上执行,系统应该尽可能隐藏分布式性质。
-
可靠性:分布式系统应该是可靠的,即使有部分节点或通信出现故障,系统仍能保持运行。
-
可扩展性:系统应该能够通过增加节点或资源来扩展性能,以满足不断增长的需求。
-
一致性:各个节点之间的数据应该保持一致,不同节点对共享数据的访问应该具有一致性。
常见应用分布式系统的领域包括大规模数据处理、云计算、分布式数据库、分布式存储、物联网等。分布式系统通常通过采用诸如分布式计算、消息传递、远程过程调用(RPC)等技术来实现节点之间的通信和协作。
设计和管理分布式系统需要考虑到许多挑战,如网络延迟、节点故障、数据一致性、安全性等问题。因此,在构建分布式系统时,需要深入了解这些挑战,并使用适当的架构和技术来解决这些问题,以确保系统的可靠性、性能和稳定性。
我来翻译一下, 一个系统,因为所谓的分布式系统,只是多个计算机连接起来,形成一个功能完善的服务系统。
可靠性,A主机挂了, B主机还能提供网络服务, 提高稳定性。
并发性,就像多个线程访问共享变量需要加锁一样,分布式系统也要保证多个客户利用同一个账户访问时,保证数据的正确性,不能就像你在银行同时(两个人,在同一瞬间利用同一个账户都取了1000元,结果只扣了1000元)
可拓展性,就是你可以在一个10台机器的分布式系统上,加10或20台机器,提升系统的可靠性。
ok, this is all.
下次我们利用c++来模拟分布式系统。