问题标签 [cluster-computing]

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.

0 投票
2 回答
1297 浏览

filesystems - 基于网络的轻量级开源共享文件系统

我们有两个具有负载平衡功能的 Web 服务器。我们需要在这些服务器之间共享一些文件。这些将是上传的文件、会话文件、php 应用程序创建的各种文件。

我们不想使用重量级的、不再维护的或商业的解决方案。我们正在寻找一些可以作为共享文件系统工作的轻量级开源软件。它应该很容易设置,必须是 HA 可用,必须非常快。它应该适用于 RedHat Linux。

我们查看了诸如带有同步文件共享的 drbd 之类的解决方案,但我们不能使用它们,因为它不能在像 ext3 这样的底层文件系统上工作。

0 投票
8 回答
3551 浏览

asp.net - asp.net,状态服务器,NLB,会话丢失

关于stackoverflow的第一篇文章,希望有很好的反馈:)

我目前正在尝试对我们的网站进行负载平衡。我们在带有 IIS 6 的 windows server 2003 上设置了 2 个集群 NLB。

在测试设置时,我发现有时我们的会话会丢失。一天半之后,结果如下:

  1. 是的,我们的 machine.config 都具有相同的加密/解密密钥。
  2. 是的,两台机器的 iis metabase.xml 中的 id 相同。实际上,整个文件都是一样的,除了“AdminACL”。
  3. 两个 Web 应用程序都设置了“StateServer”,并且都指向同一台机器。

从那时起,在谷歌上搜索提供的信息和可能的解决方案就更少了。

据我所知,没有导致此问题的特定模式。它只是偶尔发生一次。

在尝试查找问题时,我看到一个请求将 asp session id cookie 发送到服务器,但服务器没有将其映射到用户会话。

于是客户端发出了请求号x,带有cookie,session被映射,一切顺利。请求号 x+1 是从客户端发送的,带有 cookie,但未找到会话。

这两个请求都是在 NLB 中的同一台机器上发出的。

这是 asp trace.axd 的一个片段:

第一个请求:

请求详细信息会话 ID:j2ffvy45updpc52uhw1mbg55 请求类型:GET 请求时间:2008 年 11 月 26 日下午 2:58:06 状态代码:200 请求编码:Unicode (UTF-8) 响应编码:Unicode (UTF-8)

请求 Cookie 收集

名称 值 大小

ASP.NET_SessionId j2ffvy45updpc52uhw1mbg55 42 AID 22 9

响应 Cookie 集合

名称 值 大小

标头集合

名称 值

Cookie ASP.NET_SessionId=j2ffvy45updpc52uhw1mbg55; 援助=22

第二个要求:

请求详细信息会话 ID:请求类型:POST 请求时间:2008 年 11 月 26 日下午 2:58:08 状态代码:
请求编码:Unicode (UTF-8) 响应编码:

请求 Cookie 收集

名称 值 大小

响应 Cookie 集合

名称 值 大小

标头集合名称值 Cookie ASP.NET_SessionId=j2ffvy45updpc52uhw1mbg55; 援助=22

正如您在第二个请求中看到的,cookie 是从客户端发送的,但 asp 似乎从未将 cookie 添加到它的“请求 cookie 集合”中。我认为这就是它找不到会话的原因。

那么为什么cookie没有映射到会话呢?那是问题吗?问题在其他地方吗?

随时询问任何澄清。

谢谢大家的反馈。

杰夫

0 投票
2 回答
218 浏览

sql - 指定集群主控的 SQL 语句

我有集群应用程序,需要将其中一个节点指定为主节点。集群节点在带有nodeIDisMasterlastTimestamp列的表中进行跟踪。

集群中的每个节点每X秒都会尝试成为主节点。节点只能成为主节点,如果

  • 没有其他主节点
  • 当前主节点上的lastTimestamp早了2*X

满足上述条件之一时

  • 当前主节点的isMaster应该被清除
  • 应该设置新主节点的isMaster
  • 新主节点的lastTimestamp应设置为“now”时间戳。

在没有两个或更多节点成为主节点的情况下,实现上述目标的单个(可移植)SQL 语句是什么?

0 投票
8 回答
4814 浏览

java - 如何创建一个 Linux 集群以在 java 中运行物理模拟?

我正在开发一个用于执行物理模拟的科学应用程序。使用的算法是 O(n3),因此对于大量数据需要很长时间来处理。该应用程序在大约 17 分钟内运行一次模拟,而我必须运行大约 25,000 次模拟。这大约是一年的处理时间。

好消息是模拟完全相互独立,因此我可以轻松更改程序以在多台计算机之间分配工作。

我可以看到多种解决方案来实现这一点:

  • 获得一台多核计算机并在所有内核之间分配工作。不够我需要做的。
  • 编写一个连接到多个“处理”服务器并在它们之间分配负载的应用程序。
  • 获得一组便宜的 linux 计算机,并让程序将所有内容视为一个实体。

选项 2 相对容易实现,所以我不太会寻找如何实现它的建议(可以通过编写一个在给定端口上等待参数、处理值并返回结果的程序来完成作为序列化文件)。那将是网格计算的一个很好的例子。

但是,我想知道最后一个选项(传统集群)的可能性。在 linux 网格中运行 Java 程序有多难?所有独立的计算机是否都被视为具有多核的单台计算机,从而使程序适应变得容易?是否有任何好的资源指针可以让我开始?或者我让这变得过于复杂,我最好选择第 2 个选项?

编辑:作为额外信息,我对如何实现 Wired Magazine 的这篇文章中描述的内容很感兴趣:Scientific replace a supercomputer with a Playstation 3 linux cluster。绝对第二听起来像是要走的路……但凉爽因素。

编辑 2:计算非常受 CPU 限制。基本上对大矩阵有很多运算,例如逆和乘法。我试图为这些操作寻找更好的算法,但到目前为止我发现我需要的操作是 0(n3) (在通常可用的库中)。数据集很大(用于此类操作),但它是根据输入参数在客户端创建的。


我现在看到我对 linux 下的计算机集群如何工作有一个误解。我的假设是,它会以这样一种方式工作,即看起来您拥有所有可用计算机中的所有处理器,就像您拥有一台具有多核的计算机一样,但情况似乎并非如此。似乎所有这些超级计算机的工作方式是让节点执行由某个中央实体分配的任务,并且有几个不同的库和软件包可以轻松执行这种分配。

所以问题真的变成了,因为没有数字 3 这样的东西:创建集群 Java 应用程序的最佳方法是什么?

0 投票
4 回答
2437 浏览

java - 更快地插入 Oracle 哈希集群表

由于我开始了将 7M 行从一个表插入另外两个表的过程,我现在想知道是否有更快的方法来执行此操作。该过程预计将在一个小时内完成,即 24 小时的处理时间。

事情是这样的:

此表中的数据

应该在另外两个集群表 T1 和 T2 中找到新家

通过像这样手动提交的Java插入

有任何想法吗?

0 投票
5 回答
1714 浏览

performance - ColdFusion Web 应用程序级查询缓存

我们有许多 Web 服务器,每个服务器运行一个版本的 ColdFusion。集群前面有一个负载均衡器。

显然,这些服务器中的每一个都运行着自己的 CF 应用程序,这在 CF 应用程序级别实现了查询缓存。但是,由于所有这些服务器都服务于一个 Web 应用程序,因此这些缓存查询中的许多查询在 CF 应用程序实例之间重复。

有没有办法在 Web 应用程序级别(即跨许多 CF 实例)实现查询缓存。或者如果没有,是否有更好的方法来设置我们的集群以最小化数据库服务器上的负载?

我希望我说清楚了:)

干杯,Ciaran

0 投票
5 回答
247 浏览

parallel-processing - 如何通过 tcp 电缆连接两台或多台机器以形成网络网格?

如何连接两台或多台机器以形成网络网格,以及如何将工作负载分配给两台机器?

我需要在机器上运行什么操作系统,我应该使用什么应用程序来管理负载平衡?

注意:我在某处读到谷歌使用廉价机器来执行这个盛宴,他们如何连接两个网卡('Teaming')并在机器之间分配负载?

好的实际示例对我很有帮助,带有实际的代码示例。

指向一些我可能会阅读这些内容的好网站的指针将不胜感激。

0 投票
2 回答
3156 浏览

mysql - MySQL 集群与 MySQL innoDB 持久存储

我们正在为具有高性能和数据一致性需求的高可用性 (5 9s) 应用程序开发数据库解决方案。我们计划使用 MySQL Cluster 作为主要的内存数据存储,由辅助 innoDB MySQL 数据存储备份以进行持久存储。

建议的方法是在线应用程序将只与内存数据库(MySQL 集群)交互,而 MySQL 集群将通过异步复制/消息传递将数据传播到 innoDB 实例以进行持久存储。

MySQL 集群或 MySQL 本身可以支持这个要求吗?

更新:

关于迄今为止提供的答案:

通过使用主数据存储的 MEMORY 引擎和辅助数据存储的 innoDB 引擎,仅使用 MySQL 5.1 是否可行?

MySQL 是否可以使用基于事件的延迟插入方法将插入主数据存储的数据异步复制到辅助数据存储?

0 投票
5 回答
1931 浏览

cloud - 购买集群/网格/云时间?

我在工业和学术环境中使用过集群,但它们归我工作的组织所有。我从来没有从一家销售集群/云/网格时间的公司购买时间。

假设我想运行一些计算密集型程序,例如大型模拟或数据挖掘应用程序。或者,也许我想通过在外包基础设施上运行分布式构建来优化大型产品套件的完整构建。我在哪里可以购买集群时间来运行这些程序?

我有兴趣了解运行 Linux、BSD、Mac OS X 和 Windows 等流行操作系统平台的集群。

显然,现在有使用快速、廉价硬件的构建你自己的集群解决方案,但我对外包解决方案特别感兴趣。

0 投票
2 回答
2775 浏览

.net - .Net 服务器集群技术

我想开发一个多服务器集群框架,其工作方式与以下消息流步骤类似。

来自客户

  • 网关服务器收到消息
  • 网关服务器发送 ACK 消息 (UDP)
  • 消息通过工厂自定义从二进制反序列化为对象
  • 然后将消息路由到集群中的辅助服务器(基于配置)并通过 WCF 将对象发送到辅助服务器
  • 消息在辅助服务器上处理。

从服务器

  • 辅助服务器构建消息并发送到网关服务器
  • 网关服务器二进制序列化消息
  • 网关服务器将二进制文件发送到客户端并等待 ACK 消息 (UDP)

服务器将通过 .config 文件配置为指向服务,可以在本地同一应用程序(WCF 将被初始化)或其他系统中。

有没有人致力于创建任何类型的这样的架构,如果是这样,你遇到了哪些问题?


编辑
系统将成为已经存在的协议的服务器端,因此任何客户端到服务器协议本质上都是不可触及的,但它确实包括状态管理(客户端在每次调用时发送会话)、加密、服务器路由、和数据包保护。


编辑
甚至可以提供一个链接到使用.Net 中的集群的开源项目吗?