问题标签 [scalability]

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 投票
4 回答
2104 浏览

scalability - 您将如何为用户实现“最后一次看到”功能?

在 Stack Overflow 上,个人资料页面列出了“最后一次看到”的属性。这似乎并没有在每个页面视图上更新(显然是出于性能原因)。您将如何在流量大的 Web 应用程序中实现它?你会只在某些页面上更新它吗?或者缓存您上次记录用户上次访问的时间并在更新数据库之前等待特定的时间?还是完全不同的东西?

0 投票
8 回答
14369 浏览

concurrency - 函数式语言(特别是 Erlang)如何/为什么能够很好地扩展?

一段时间以来,我一直在关注函数式编程语言和功能日益增长的知名度。我调查了他们,没有看到上诉的原因。

然后,最近我在Codemash参加了 Kevin Smith 的“Erlang 基础”演讲。

我很喜欢这个演示,并了解到函数式编程的许多属性使得避免线程/并发问题变得更加容易。我理解缺乏状态和可变性使得多个线程无法更改相同的数据,但 Kevin 说(如果我理解正确的话)所有通信都是通过消息进行的,并且消息是同步处理的(再次避免并发问题)。

但我读过 Erlang 用于高度可扩展的应用程序(爱立信首先创建它的全部原因)。如果所有内容都作为同步处理的消息进行处理,如何有效地处理每秒数千个请求?这难道不是我们开始转向异步处理的原因吗?这样我们就可以利用同时运行多个操作线程并实现可伸缩性?看起来这种架构虽然更安全,但在可扩展性方面倒退了一步。我错过了什么?

我理解 Erlang 的创建者故意避免支持线程以避免并发问题,但我认为多线程是实现可伸缩性所必需的。

函数式编程语言如何在本质上是线程安全的,但仍然可以扩展?

0 投票
7 回答
1005 浏览

iis - 在高流量网站上记录请求

我想知道高流量网站如何处理流量记录,例如像 myspace.com 这样的网站收到很多点击,我可以想象记录所有这些请求需要很多空间,所以,他们记录每个请求还是如何记录他们处理这个吗?

0 投票
4 回答
612 浏览

.net - 您是否应该请求 .NET 中的锁定超时?

释放它!, Michael Nygard 解释说,许多灾难性的系统故障往往是由一连串的错误引起的。例如,两个线程死锁。现在线程池中的线程减少了两个,因此其他线程上的负载增加,从而增加了死锁可能性。突然,服务器根本没有响应,因为线程池耗尽,这导致负载均衡器将流量转移到其他服务器(它们都运行相同的代码),这增加了它们发生死锁的可能性。突然整个农场都离线了。

大多数 RDBMS 服务器检测死锁并决定一个“失败者”(一个事务被中止,另一个可以继续)。相比之下,在 C# 中,lock语句将无限期地等待获取锁。

但是,您可以调用Monitor.TryEnter(lockObject, TimeSpan)来请求锁定或超时。如果超时到期并且无法获取锁,则返回 false。有些人将其包装在 using 语句中以保持良好的语法。

所以我的问题是,您是否总是使用超时获取锁?与死锁场景相比,超时会产生哪些问题?

0 投票
9 回答
43970 浏览

ruby-on-rails - Ruby on Rails 的可扩展性/性能?

我已经使用 PHP 有一段时间了,并且已经很好地将它与 CodeIgniter 一起使用,这是一个很棒的框架。我正在开始一个新的个人项目,上次我在考虑使用什么(PHP 与 ROR)我使用 PHP,因为我听说 ROR 存在可伸缩性问题,尤其是在阅读了 Twitter 开发人员对此的评价之后。可扩展性在 ROR 中是否仍然是一个问题,或者是否已经对其进行了改进?

我想学习一门新语言,ROR 似乎很有趣。PHP 完成了工作,但众所周知,它的语法和组织结构很糟糕,感觉就像一个大黑客。

0 投票
6 回答
6355 浏览

java - 大型机上的 Java

我为一家大型公司工作,该公司运行大量基于 x86 的服务器,我们在这些服务器上运行 JVM。

我们已经成功地对 VMWare ESX 进行了试验,以更好地利用我们的数据中心。但是这些仍然消耗每个处理单元的大量功率。

我有一个疯狂的想法,我们应该复活大型机,我们可以托管大量的 JVM 或虚拟机。

有没有人试过这个?有什么好的成本效益吗?

你会失去灵活性吗?例如,我们在公司的其他部分有大型机,但它们似乎对机器的使用更加严格。大量的变更控制,长的交货时间等

0 投票
2 回答
441 浏览

sql-server - SQL 服务器复制建议

我们有一个场景

一个主要的电子商务网站 - 目前吸引了大量访问者。

三个子“品牌特定”站点将挂起此站点 - 随着时间的推移,这些站点中的每一个都可能具有相同的流量水平。

客户要求每个品牌站点的订单处理在一个地方(即一个后台)进行。

我们应该选择什么样的拓扑?我们认为,也许拥有一个从后台读取和写入的主 sql 服务器,并将该数据复制到“品牌特定”的 sql 服务器实例可能会起作用。每个品牌特定站点都有自己的专用 sql 服务器用于 Frontoffice“读取”。我们执行的任何写入都将返回到主数据库以保持库存并发

有什么想法吗?未来的可扩展性是一个主要因素。

0 投票
4 回答
2945 浏览

erlang - Erlang 的可扩展性秘诀是什么?

Erlang 在处理大量消息和请求方面享有盛誉。我没有时间下载并尝试深入了解 Erlang 先生对切换理论的理解......所以我想知道是否有人可以教我(或指向一个好的教学网站。)

假设作为一个思想实验,我想将 Erlang ejabberd 移植到 Python 和 C 的组合中,以一种给我相同的速度和可扩展性的方式。我必须理解和实施哪些结构或模式?(Python 的 Twisted 是否已经这样做了?)

0 投票
4 回答
2252 浏览

java - 比较 Java 和 .NET 上的可扩展 Web 应用架构

在 Java 和 .NET 中创建可扩展的 Web/企业应用程序的推荐步骤是什么?我对从低容量应用程序到高容量应用程序需要什么更感兴趣(假设原始架构中没有重大故障)。例如,每个平台的集群、负载平衡、会话管理、缓存等选项有哪些。

0 投票
6 回答
8045 浏览

java - Java 独立应用程序的可扩展性和高可用性

我们目前正在 Linux 机器上运行 Java 集成应用程序。首先是应用程序的概述。

Java 应用程序是一个独立的应用程序(未部署在任何 Java EE 应用程序服务器上,如 OracleAS、WebLogic、JBOSS 等)。独立我的意思是它不是桌面应用程序。但是,它是从 Main 类的命令行运行的。用户根本不直接与此应用程序交互。使用 API 将消息转储到队列中,然后由我的应用程序读取,该应用程序 24/7 持续运行。我不认为这是一个桌面应用程序,因为用户没有直接与之交互。(不确定这是否是有资格成为一个的正确理由)。

它使用 Spring 并连接到 WebSphere MQ 和 Oracle 数据库 我们使用 Spring 侦听器(Spring Message Driven POJOs)来侦听 WebSphere MQ 上的队列。一旦队列中有消息,应用程序从 MQ 读取消息并将其转储(插入/更新)到数据库中。

现在的问题是:

  1. 我们如何水平扩展这个应用程序?我的意思是只放置更多的盒子并运行同一个应用程序的多个实例,这是一种可行的方法吗?
  2. 我们是否应该考虑从 Spring MDP 迁移到 EJB MDB?从而将其部署在 Application Server 上。这样做有什么额外的好处吗?
  3. 是否有请求使应用程序高可用(HA)?可以采用哪些建议的方法或策略来制作独立的应用程序 HA?