我正在上一门关于分布式系统的入门课程,在阅读入门教程时,作者讨论了
单个负载均衡器后面的5台Rails服务器都连接到一个数据库,不是分布式系统的一个例子。
原因是:
只有当节点相互通信以协调它们的操作时,系统才是分布式的。
这让我思考了什么是真实世界的例子,它们实际上符合分布式系统的定义。我找到了一个列表这里,并发现电子银行实际上是一个例子,但我似乎不知道为什么。根据我的理解,自动取款机不能与每台机器通信,对吗?他们将与某种集中式服务器进行通信,以通信和协调他们的操作。那么,这又如何成为一个例子呢?
还有谁能给我一个更好的分布式系统的定义?
发布于 2018-08-30 18:00:57
当你更正式地使用严格的定义时,你应该系统地观察每个术语背后的确切内容。
在您的例子中,关键是术语系统:您为定义考虑的系统是什么,更确切地说,它的边界是什么。
以下是一些例子:
另一个术语是模棱两可的:“相互交流”。我理解几个节点之间的一些通信。可以作出更严格的解释,但不现实:
发布于 2018-08-30 14:54:45
像这样的计算机科学术语每隔一天重新定义一次。你最好问:“人们对”标准“系统之上的分布式系统有什么期望?”
他们期望的是没有一个人能够摧毁这个系统。“谁能摧毁一件东西,谁就能控制一件事。”
在标准负载平衡web场的情况下,通常由一个人控制所有的部件。即使我们在技术上尽可能地分割所有的东西,仍然有一个人拥有DNS记录。
理想情况下,分布式系统允许用户信任其继续存在,可能允许他们运行系统,即使其他所有人都停止运行。
显然,一旦我们有了理想的分布式系统的概念,我们就可以开始将其他事物称为“分布式”,即使它们没有完全实现理想。
如果我将我的服务扩展到两个物理位置,那么如果我的服务继续运行,那么对我来说,它是“分布式的”。我不在乎我决定不经营这项服务。
但对我的用户来说,这不是,他们依赖于一个人,我,继续运行这项服务。如果我“下去”,他们就被困住了。
https://softwareengineering.stackexchange.com/questions/377706
复制相似问题