标签: scalability

可伸缩性的设计模式(或技术)

哪些设计模式技术,你使用的是向专门针对可扩展性

在我看来,像Flyweight模式这样的模式是工厂模式的专用版本,以提高高可伸缩性或在内存或存储限制内工作时.

你用过别人的吗?(数据库的非规范化等)当高可用性或可伸缩性是您的主要目标时,您是否发现规则会发生变化?

可能的情况是:

  • 移动设备的内存,处理能力和连接性比台式机或笔记本电脑更有限
  • 有限硬件上的高用户数(缓存策略等)
  • 优化数据库模式以提高效率以代替标准化设计(例如,用于存储的SharePoint列包装)

design-patterns scalability high-availability

25
推荐指数
3
解决办法
1万
查看次数

社交网站如何计算好友更新?

社交网站可能会为用户,朋友和活动维护表格......

他们如何使用这些表以高效和可扩展的方式计算朋友事件?

scalability social-networking

24
推荐指数
2
解决办法
1万
查看次数

如何模拟Web应用程序的高流量负载?

我编写了一个Python Web API,每天可能会收到大量请求.我想在进一步测试之前测试负载水平.

在我的localhost Web应用程序上模拟大量流量的最佳方法是什么?是否有(linux兼容的)工具将大量请求发送到localhost URL?

simulation load scalability

24
推荐指数
4
解决办法
4万
查看次数

Java的Mahout等效于Python

基于Java的Mahout的目标是构建可扩展的机器学习库.Python中是否有任何等效的库?

python java scalability machine-learning mahout

24
推荐指数
1
解决办法
9618
查看次数

Neo4j分片方面

我正在研究Neo4j的可扩展性,并阅读David Montag在2013年1月撰写的文档.

关于分片方面,他说2014年的第一个版本将带来第一个解决方案.

有没有人知道它是否已完成或其状态如果不是?

谢谢!

scalability neo4j

24
推荐指数
2
解决办法
1万
查看次数

我可以扩展nodejs应用程序的最佳方法是什么?

基础

现在我的一些朋友和我正在尝试开发一个在nodejs中制作的浏览器游戏.这是一个多人自上而下的射击游戏,客户端和服务器端代码中的大多数都是用javascript编写的.我们有一个很好的总体方向,我们想进去,我们在开发游戏方面有很多乐趣.制作这款游戏​​时我们的目标之一就是让它尽可能地作弊.做到这一点,我们所有的游戏逻辑都在服务器端处理.客户端仅通过Web套接字将其输入发送到服务器,并且服务器使用游戏中发生的事情更新客户端(也是Web套接字).这是我们问题的开始.

所有的服务器端数学都变得非常沉重,我们发现我们需要以某种方式扩展以处理超过10个玩家(我们希望能够容纳更多).起初我们认为我们可以根据需要垂直扩展,但由于nodejs是单线程的,因此只能利用一个核心.这意味着获得更强大的服务器无助于解决这个问题.我们唯一的解决方案是横向扩展.

我们为什么要问这里

我们还没有找到任何关于如何扩展nodejs游戏的好例子.我们的用例非常特别,虽然我们已经尽力做到了这一点,但我们真的可以从外部意见和建议中受益

细节

我们已经对如何解决这个问题投入了大量的思考.我们已经研究了一个多星期了.这是我们到目前为止所做的事情:

四种类型的服务器

我们将任务分成4种不同的"类型"服务器.每个人都将完成一项特定的任务.

代理服务器

代理服务器将位于整个堆栈的前端,并且是可从Internet直接访问的唯一服务器(可能有更多这些服务器).它会有haproxy,它会将所有连接路由到Web服务器.我们之所以选择haproxy,是因为它具有丰富的功能集,可靠性和几乎无与伦比的速度.

Web服务器

Web服务器将接收Web请求,并为所有Web页面提供服务.他们还将处理游说创建/管理和游戏创建/管理.要做到这一点,他们会告诉游戏服务器它有什么游说,用户在那个大厅,以及他们将要玩的游戏的信息.然后,Web服务器将更新游戏服务器关于用户输入,并且游戏服务器将更新游戏中发生的事件的Web服务器(谁将更新客户端).Web服务器将使用TCP套接字与游戏服务器就任何类型的管理进行通信,并且在与游戏更新进行通信时将使用UDP套接字.这将全部用nodejs完成.

游戏服务器

游戏服务器将处理有关游戏的所有游戏数学和变量更新.游戏服务器还与数据库服务器通信,以记录游戏中玩家的酷炫统计数据.这将通过nodejs完成.

数据库服务器

db服务器将托管数据库.事实证明这部分是最简单的,因为我们找到了rethinkdb,这是有史以来最酷的数据库.这很容易扩展,奇怪的是,它是扩展我们的应用程序最简单的部分.

其他一些细节

如果你无法解决整个问题,那么看看这个,这是我们认为我们将如何扩展的半准确图表.

如果你只是好奇,或者认为看看我们的游戏可能会有所帮助,那么它目前在这里处于未扩展状态.

我们不想要的一些事情

  • 我们不想使用nodejs的集群模块.它不稳定(这里说),它不能扩展到其他服务器,只能扩展到其他处理器.我们想要实现横向扩展.

我们的问题,总结一下

我们希望我们朝着正确的方向前进,我们已完成了我们的功课,但我们不确定.我们当然可以采取一些技巧,以正确的方式做到这一点.

谢谢

我意识到这是一个很长的问题,做出深思熟虑的答案并不容易,但我真的很感激.

谢谢!!

javascript sockets scalability node.js autoscaling

24
推荐指数
1
解决办法
7166
查看次数

为什么Azure资源组与特定区域相关联?

我是Azure架构的新手,我正在尝试理解为什么Azure资源组(在Azure上构建的应用程序的逻辑部署存储桶)在定义时与区域相关联.

起初我认为它是为灾难恢复或地理冗余提供全球分发,但后来我意识到单个资源组可以包含不同地区的Web应用程序,可以通过Traffic Manager提供这些功能.我认为使用单独的资源组有助于更好地识别哪些资源位于哪个区域,但除了组织目的之外,我无法理解资源组的区域定义意味着什么.

(编辑:删除一般建议查询以更集中)

scalability azure azure-web-sites azure-resource-manager

24
推荐指数
3
解决办法
7711
查看次数

CodeIgniter是大型应用程序的明智选择吗?

从开发的角度来看,我一直在阅读伟大的codeigniter.我确信使用该框架将使开发过程更快.但我问自己的问题是,单独制作的框架会不会满足您的需求?

CI虽然广告占用空间很小,却会"陷入困境",因为它基本上是一个框架框架(后面指的是PHP作为C的框架)?有没有很好的方法来分散负载?在CI中,是否存在任何大型应用程序?

谢谢卡斯帕尔.

php scalability codeigniter scale

23
推荐指数
2
解决办法
2万
查看次数

什么是大型网站不使用MySQL与ASP.NET的原因是什么?

我从Stack Overflow和其他大型网站的高可伸缩性中读到了这篇文章.许多大型高流量.NET站点如lotsoffish.com,MySpace和Stack Overflow都使用.NET技术并将SQL Server用于其数据库.在文章中它说Stack Overflow中的一个消息来源说:

随着您添加越来越多的数据库服务器,SQL Server许可证成本可能会非常高昂.因此,通过扩大规模并逐步扩展非开源软件,您可能会陷入财务困境.

为什么这些网站不使用MySQL而不是SQL Server?

mysql sql sql-server asp.net scalability

23
推荐指数
5
解决办法
7668
查看次数

制作需要扩展的网站的内容是什么?

我打算构建一个可以获得大量流量的应用程序.(请不要说我不会获得流量,这是针对内部网络的,所以流量会在那里.只是试图避免'你不会得到那么多的流量,不要担心它.)

至于我期望的流量类型,用户将浏览各种动态创建的(基于用户帐户详细信息).在这些网站上,用户可以提交文本输入.加载页面和处理用户输入都将命中数据库.加载显然是读取,但处理输入将需要读取和写入.输入也可能影响其他用户的视图.如果发生这种情况,我将需要通知其他用户刷新页面.

我需要做什么样的事情才能在大量用户的负载下崩溃?

什么成为限制因素?数据库东西?前端的I/O?

我以前从来没有真正开发过一个严肃的网络应用程序,我正在寻求一些帮助.

编辑:我正在考虑使用Erlang作为后端,因为我已经使用了一点点,并且非常喜欢所有并发的东西.这是一个可行的选择还是我应该尝试更传统的东西?

scalability web-applications

23
推荐指数
1
解决办法
575
查看次数