问题标签 [distributed-system]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
distributed-system - 消息传递是什么意思?http 或 udp
海,
我们在分布式系统中使用消息,消息是什么意思?
我们可以说UDP使用消息而不是HTTP,有人能告诉我原因吗?
非常感谢
azure - 你推荐任何关于分布式系统和云计算的好书吗?
我正在学习 Microsoft Azure,有很多概念虽然对我来说并不新鲜,但我想了解更多关于它们的信息,例如数据库分片、非规范化、nosql、内容交付网络、分布式缓存(像memcache),异步处理,拆分系统,负载平衡等......等等......
我正在寻找一本关于方法而不是技术的书。
问题是我可以阅读很多关于如何使用 Azure 存储,或者如何使用 Azure CDN 的信息,但是如果没有正确的方法,结果不会像预期的那么好。
提前致谢。
real-time - 实时分布式系统的本质是什么?
我开始涉足承包工作,今天我进行了承包商职位的第一轮面试。我已经通过了,但有人告诉我——主要是一名 UI 开发人员——我只介绍了他们后端所需的基础知识,我应该在第二轮之前阅读分布式系统。
到目前为止,在我的职业生涯中,我一直从事后期操作,从不需要实时。由于我只剩下几天了,我需要涵盖哪些主题?首先能够回答他的问题并且通常被认为在分布式系统中就足够了?
问题是如何在您的 UI 上近乎实时地显示数据?后端需要做什么?我已经提到了实时数据馈送的生产者/消费者模式。他喜欢它,但他说他在第二次采访时需要更多。
任何帮助将非常感激,
distributed - 分布式和去中心化服务之间有什么区别?
我无法提出两者之间的根本区别。我只能举几个例子:
- BitTorrent 是一个分布式 p2p 系统,但 ToR 是去中心化的。
- Web 服务是分散的,但我想不出分布式 Web 服务。(也许是侨民?)
distributed-computing - 如何使用 ZooKeeper 设计任务分发
我打算编写一个具有分布式工作进程的应用程序。其中之一将是领导者,它将任务分配给其他进程。设计领导者选举过程非常简单:每个过程都尝试在同一路径中创建一个临时节点。谁成功,谁就成为领导者。
现在,我的问题是如何设计平均分配任务的过程?有什么食谱吗?
我将详细说明环境设置:
假设有 10 台 worker 机器,每台运行一个进程,其中一台成为 leader。任务在队列中提交,Leader 接受它们并分配给工作人员。每当提交任务时,工作进程都会收到通知。
distributed-computing - 虚拟同步
我正在和我的一个朋友一起做一个系统来实现一个可靠的多播库。我们正在处理属于一个组的许多进程;任何进程都可以加入或离开组。如果一个人发送消息,则由所有其他人发送。
我们希望处理发件人的崩溃,以便在发生这种情况时,所有或没有收件人传递消息。
你能建议一个好的策略(算法)来处理关于全部或全部的部分吗?
java - Java RMI 加号
我正在尝试学习 RMI 在 Java 中的工作原理(RMI 的完整初学者),并且我一直在查看一些示例,这些示例展示了如何将两个数字相加。问题是我总是使用 netbeans(并希望继续这样做),所有示例都是命令行中的 Java。有人知道如何从 netbeans 做这么小的应用程序吗?(我使用的是 build 6)提前非常感谢 :) 我一直在看的教程是:http ://www.scs.ryerson.ca/mes/courses/cps530/programs/rmi/Schildt/addTwoNumbers .html
nosql - NoSQL 和最终一致性——现实世界的例子
我正在寻找 NoSQL 应用程序的良好示例,这些应用程序描述了如何在缺乏事务性的情况下工作,正如我们在关系数据库中所知道的那样。我对编写密集型代码最感兴趣,因为对于大多数只读代码来说,这是一项更容易的任务。我已经阅读了很多关于 NoSQL 的东西,关于 CAP 定理,最终一致性等。然而,这些东西往往专注于数据库架构本身,而不是与它一起使用的设计模式。我确实理解在分布式应用程序中实现完全事务性是不可能的。这正是为什么我想了解应该在哪里以及如何降低要求以使任务可行。
编辑:
这并不是说最终的一致性是我自己的目标。目前我还没有真正了解如何将 NoSQL 用于某些写入密集型的事情。说:我有一个简单的拍卖系统,里面有报价。理论上,第一个接受报价的人获胜。在实践中,我至少想保证只有一个获胜者,并且人们在同一个请求中得到他们的结果。这可能是不可行的。但是如何在实践中解决它 - 也许有些请求可能比平时花费更长的时间,因为出了点问题。也许一些请求应该自动刷新。这只是一个例子。
database - 最适合分散式中心辐射系统的 NoSQL 数据库
我们正在构建一个具有中心辐射型拓扑的分布式系统:中心办公室和连接到中心办公室的远程站点,采用低带宽 (~10Mbps) WAN 连接。
该系统正在管理可以在任何站点更新的数据,并且还应该在整个系统中复制。
系统应支持断网工作。当网络重新连接时,数据应该再次同步。
我们正在考虑使用 NoSQL DB 来管理我们的数据。然而,我们对许多不同的选择有点不知所措。
我们很想听听有关拟合解决方案的建议。
c++ - 分发应用服务器
我有一个应用程序服务器。在较高级别上,此应用程序服务器具有用户和组。用户是一个或多个组的一部分,服务器使所有用户都知道他们的组和他们组中的其他用户的状态。主要有以下三个功能:
- 更新和广播与用户及其群组相关的元数据;例如,用户登录,服务器会更新该用户的状态并将其广播给该用户组中的所有在线用户。
- 充当两个或多个用户之间的代理;客户端利用点对点传输,但在两个用户无法直接相互连接的情况下,服务器将充当他们之间的代理。
- 为离线用户存储数据;如果客户端需要向不在线的用户发送一些数据,服务器会将该数据存储一段时间,然后在用户下次上线时发送。
我正在尝试修改这个应用程序以允许它分布在多个服务器上,不一定都在同一个本地网络上。但是,我要求不能破坏与旧客户端的向后兼容性;本质上,分发需要对客户端透明。
我遇到的最大问题是处理连接到服务器 A的用户进行更新的情况,该更新需要广播给服务器 B上的用户。
通过扩展,更大的问题是当服务器 A上的用户需要服务器充当他们和服务器 B上的用户之间的代理时。
我最初的想法是尝试为每个用户分配一个首选服务器,使用一些算法来考虑他们需要与哪些用户进行通信。这可以减少可能需要与其他服务器上的用户通信的用户数量。
但是,这只会最大限度地减少不同服务器上的用户需要通信的频率。我仍然有实现不同服务器上用户之间通信的问题。
我能想到的唯一解决方案是让服务器相互连接,当他们需要处理连接到不同服务器的用户时。
例如,如果我连接到服务器 A并且我需要一个代理与另一个连接到服务器 B的用户,我会要求服务器 A与该用户建立代理连接。服务器 A会看到另一个用户已连接到服务器 B,因此它将与服务器 B 建立“中继”连接。此连接只会将我的请求转发到服务器 B并将响应转发给我。
这样做的问题是它会增加带宽使用,这已经非常高了。不幸的是,我没有看到任何其他解决方案。
是否有任何众所周知或更好的解决方案来解决这个问题?分布式系统要求不同服务器上的用户之间进行通信似乎并不常见。