我经常听说将多个传统的单片Rails应用程序(即没有内部Web API,没有消息队列,没有Redis / memcached服务器)部署到多个服务器上会产生一堆很难调试的错误但是我尽管谷歌用了几个小时的谷歌搜索,但很难想出一些具体的例子
我能想到的一些明显问题是:
观察者 - 可能无法正常工作,因为观察仅在一台服务器上而不是所有服务器上传播(假设没有消息队列)
会话 - 可能需要将这些存储在数据库中,这需要它自己的主机
缓存 - 任何扫描程序都会在服务器之间传播失效问题。
还有其他人在乎吗?我真的很感激别人可能遇到过的任何文章,或者只是一般的智慧:)
答案 0 :(得分:0)
观察者只是代码回调。 它们在每个服务器上的每个进程上运行。
过去几年,会话已经默认为cookie商店。 所以多台服务器都没问题。 如果您的cookie中没有足够的空间,那么我建议您可能做错了。
缓存失效确实是个问题。 但它总是如此。 一种解决方案是将缓存分解为独立服务。 像Facebook这样的网站拥有巨大的memcache农场
我认为缩放和聚类始终是一个难题。 但这似乎是反对铁路的旧论据。 如果过去几年看到铁路在这方面发挥了作用。 随着ec2,nosql和服务器自动化在社区中成为一种常态。