海边被称为“异端网络框架”。使之成为异端的观点之一是它具有许多共享状态。但是,以我目前的理解,这妨碍了轻松扩展。
另一方面,Ruby on Rails共享尽可能少的状态。即使与现代Smalltalk vm相比,它的速度慢,也可以很好地扩展。 flickr使用php并已扩展到极大型的基础设施...
那么,有人在扩展海边方面有经验吗?
最佳答案
简短答案:
您可以像扩展 hell 一样扩展Seaside应用程序
长答案:
在IT Realm ,扩展是一回事,但它具有两个方面:
几乎每个人都考虑过垂直方向的缩放。直到英特尔和 friend 遇到了一些物理障碍,并开始添加内核以补偿当前无法添加MHz的情况。
从那时起,我们所有人都开始意识到将水平缩放作为前进的方向。
我为什么要告诉你呢?
因为Seaside是在VM中运行的smalltalk镜像,并且与单核处理器的服务器中的系统大致相同。
以此为基础,您可以通过构建服务器集群来扩展Web应用程序。这是自然的事情,是容错的事情,是拓 flutter 智能的事情,是灵活的事情,我想您已经明白了...
因此,如果要进行缩放,则与英特尔和 friend 一样,就采用水平方式。而且,采用垂直方式甚至更便宜(这将使您获得价格昂贵的IBM和Sun服务器)。
RoR应用程序通常是水平缩放的。 Google有无数便宜的服务器来完成任务。无论人们多么想让自己动听,给您扔掉一堆令人难忘的推特鲸 fish ,它的效果都很好。
如果他们与您谈论此事,您只是礼貌地听他们说什么,但请记住以下几点:
顺便说一句,亚马逊也做了类似的事情(而且这是一对夫妇的地理位置,因此他们增加了最接近您所在位置的集群来满足您的请求的机会)。
另一方面,Avi扩展dabbledb(Twitter收购的基于海边的Web应用程序公司)的方式是每个客户帐户使用一个虚拟机(启动和关闭按需关闭的虚拟机)。
图像中有很多状态不会使缩放变得既不可能也不复杂。
只是不同。
最好的方法是使用粘性 session 的负载平衡器,这样您就可以使一张图像处理用户 session 的所有请求。您进行操作,以便负载平衡器后面的任何工作人员图像都可以参与给定应用程序的任何用户。就是这样。
为此,您需要在工作人员之间共享持久对象。工作人员随时可以访问所有用户数据库,并且需要很好地处理并发性。
我们以这种方式设计了可扩展的气流。
这在经济上也很方便,因为您可以从N个很小的文件开始(取决于第一个服务器的RAM),然后根据需要增加它,直到达到硬件极限为止。
达到硬件限制后,只需将另一台主机添加到群集中,然后重新配置平衡器(以及对数据库的访问)。
简单,经济,优雅。
关于scalability - 海边有规模吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1451989/