2011-04-05 111 views
1

好吧我正在学校项目上工作。这个想法是HA/LB设置。安装程序是运行Apache和PHP的3个Web服务器。运行4个Datanode,2个MySQL节点和2个管理节点的MySQL集群。Memcached和PHP会话

有什么办法可以让php-session在服务器间平衡而不需要从MySQL簇中运行它们吗?

理论上我会有一个Memcache服务器,并在每个web服务器上运行Memcache。这是可行的吗?

谢谢你的时间。 (在我对物理机器进行概念验证之前,测试环境是虚拟机)

+0

你使用什么负载平衡器? – 2011-04-05 14:48:06

+3

男孩,你有一所大学! – 2011-04-05 15:16:15

回答

0

是的,我认为这样会起作用。

想想这样:您的3个Web服务器是在处理器上运行的线程,而您的Memcache实例是它们在它们之间共享的内存。只要他们都可以访问它,您应该可以在多个Web服务器之间共享会话。

声明:我没有试过这个,我只是在评论它背后的理论。

+0

好的真正的问题是php5-memcached是否具有故障转移到另一台服务器的可用性,还是我应该编写一个运行本地和切换到anotehr服务器的C++? – user693143 2011-04-05 14:56:11

+0

这是一个处理memcached复制的补丁http://repcached.lab.klab.org/,但如果memcached服务器故障,理想的应用程序/安装程序应该可以工作。 – 2011-04-05 15:02:52

+0

好的想法是使用memcache服务器作为主要的。如果它停止运行,Web服务器就会占用这些空间。如果所有的memcache会话都关闭,我想这个网站会完全关闭。 – user693143 2011-04-05 15:04:50

0

为什么你不想在会话中使用mysql?如果你认为它会更快,那么我建议你尝试一下。

4个支持3个网络服务器节点的数据库服务器节点?你为什么认为你需要在数据库层进行如此多的处理?

+0

当正确完成时,你需要比web服务器前端更多的mysql功能。 – Evert 2011-04-05 15:29:58