![]() |
1
14
简短回答: 你可以扩展像Hell Yah这样的海边应用程序 长回答: 在IT领域,缩放是一回事,但它有两个维度:
几乎每个人都在考虑垂直尺寸的缩放。直到英特尔和朋友们遇到了一些物理障碍,开始添加内核以弥补目前无法添加兆赫的情况。 这时,我们开始更加意识到水平缩放是一种可行的方法。 我为什么要告诉你这个? 因为seaside是一个运行在VM中的smalltalk映像,这与单核处理器服务器中系统的情况大致相同。 以此为基础,你可以通过制作服务器集群来扩展Web应用程序。这是自然的事情,这是容错的事情,是拓扑智能的事情,是灵活的事情,我想你得到了这个想法…… 因此,如果在扩展方面,您与Intel&Friends的做法相同,则采用水平方式。垂直方式更便宜(这将引导您使用和昂贵一样好的IBM和Sun服务器)。 ROR应用程序通常是水平缩放的。谷歌有无数便宜的服务器来做他们的事情。不管人们多么戏剧化地想给你留下深刻印象,向你扔下一堆健忘的Twitter鲸鱼,它都是完美的。 如果他们和你谈论这件事,你只是礼貌地听他们说什么,但记住这一点:
顺便说一句,Amazon也做了类似的事情(而且它有点结合了地理位置,所以它们可以增加通过离您最近的集群处理请求的机会)。 另一方面,avi扩展dabbledb(twitter收购的基于海边的网络应用公司)的方式是每个客户帐户使用一个虚拟机(启动和关闭那些按需运行的应用程序)。 在图像中有大量的状态并不会使缩放变得不可能或复杂。 只是不同而已。 方法是使用一个使用粘性会话的负载均衡器,这样您就可以有一个映像来关注用户会话的所有请求。这样,负载均衡器后面的任何工作者图像都可以访问给定应用程序的任何用户。差不多就是这样。 要做到这一点,您需要在工作人员之间共享持久对象。所有用户数据库都需要工作人员随时访问,并且需要处理好并发性。 我们以这种方式设计了可伸缩的空运。 它在经济上也很方便,因为您可以从非常小的N开始(取决于第一台服务器的RAM),并根据需要增加它,直到达到硬件限制。 一旦达到硬件限制,只需向集群中添加另一台主机并重新配置平衡器(以及对数据库的访问)。 简单、经济、优雅。 |
![]() |
2
16
雷蒙·莱昂在他的(优秀的)博客上分享了他在海边度假的一些经历。您可以阅读关于配置和调优Seaside的示例代码的非常具体的想法。 享受:- http://onsmalltalk.com/scaling-seaside-more-advanced-load-balancing-and-publishing http://onsmalltalk.com/scaling-seaside-redux-enter-the-penguin http://onsmalltalk.com/stateless-sitemap-in-seaside |
![]() |
3
9
http://dabbledb.com/ 规模似乎相当大。此外,一个人可以使用 GemStone GLASS 经营海滨 |
![]() |
4
8
关于这个 interview Avi Bryant,海边的创建者和联合创始人Dabbledb 解释它们如何使其具有规模。 据我所知:
我认为这个解决方案是基于他们的应用程序的具体情况为他们工作的,每个客户不需要在他们之间共享信息。所以不需要集中式数据库。 不管怎样,最好是看面试,而不是看我那一半做的总结。 |
![]() |
5
6
是的,海边的比例下降得出奇。单个开发人员可以很好地为小团队创建和维护复杂的应用程序。 [几年后再回到这里] 这实际上比放大更重要。计算机速度仍在增长,99%的应用程序现在可以在一台机器上运行。开发速度,尤其是维护速度现在完全控制了TCO。 |
![]() |
6
5
我会将您的问题稍微改为:Seaside是否阻止/阻止您创建可扩展的应用程序?我通常会说没有。Seaside没有默认的方法来存储您的数据(就像它上面的PHP没有一样,尽管Seaside给了您一些额外的选项),而我的印象是与您的数据交互往往是扩展时最大的障碍。 如果您想像使用Rails一样将数据存储在一个整体的SQL数据库中,那么您可以这样做。也可以使用对象数据库。或者,您可以为每个用户使用单独的对象数据库,或者为每个项目使用单独的数据库,或者为每个用户和项目使用单独的数据库。或者可以将所有内容存储在一系列平面文件中,也可以将数据作为对象存储在虚拟机的内存中。 而且由于连续性,您不需要在每次网页调用时从数据存储中重新提取数据。当您使用桌面应用程序时,您可以在用户开始与它交互时从数据存储中提取数据,设置适当的变量,然后在Web调用之间使用这些变量,直到用户完成数据的处理,此时您可以更新数据存储。当你不共享状态时,你必须在每个网络电话上访问数据存储。 当然,这并不意味着缩放是免费的,它只是意味着你有一个更大的领域来搜索缩放解决方案。 综上所述,对于许多应用程序来说,Rails的扩展要容易得多,因为存在大型的Rails托管解决方案(以及相关的PHP),它可以为您提供大量的资源,而无需租用和设置自定义框。 这些只是我从阅读和与人交谈中得到的印象。 |
![]() |
7
2
我只是提醒大家,在法罗的成功案例中有一个链接:一个海边的Web应用程序,在阿根廷有多达1000个并发用户,可以购买大型医疗保险。 ISSIS跟踪:
|
![]() |
8
-9
从维基百科的文章来看,这是一头猪。在此之前,它还没有达到我听说过的程度。:) |
![]() |
ludo · 我们如何使用法罗的每一种方法? 7 年前 |
![]() |
patzi · 理解smalltalk中奇怪的逻辑运算符 7 年前 |
![]() |
patzi · 如何在Smalltalk中操作位? 7 年前 |
![]() |
patzi · 了解GNU Smalltalk闭包 7 年前 |
![]() |
Hutch · Pragmas的工作方式似乎和我在海边预期的不同 8 年前 |
![]() |
Diana · Pharo Smalltalk中的For循环For数组 8 年前 |
|
nickwalt · 初级程序员-是从ES5还是ES6开始[已关闭] 9 年前 |