因此,我需要将会话处理从基于文件(默认)更改为基于缓存,因此,当我向集群添加节点时,集群中的任何应用程序节点都可以访问会话数据。
我的经验一直是使用配置文件(在我的情况下为cache.yml)集中缓存节点。通过此文件,我确定了3个缓存服务器(vc-1,vc-2,vc3)。如果我错了,请纠正我,但是只要我在创建缓存对象时使用addServers调用,然后使用该缓存对象设置/获取缓存数据,就可以将数据存储在任何vc- *服务器上,但是应用程式而言,它是一台(共用的)快取伺服器。例子:
阅读了php memecacheD文档后,我可以通过php.ini文件轻松切换会话处理,但是随后我必须配置(伪造)php.ini文件以构建服务器字符串列表,只要我想添加/删除新的缓存服务器,以保持这种池化效果。
所以我的问题是,除了实现自己的Session Handler之外,还有其他选择,以便读/写使用上述缓存对象,以确保“池化”缓存效果,而无需编辑php.ini文件吗?
我实际上最终使用了twemproxy,它应该根据运行状况检查处理memcached节点的加/减。它很容易设置,基本上为vcache创建了DNS记录,并且代码指向vcache:22122。
如果使用AWS,则可以执行相同的操作,但可以代替twemproxy,而是设置一个elasticache集群,然后创建一个指向Elasticache端点的CNAME dns条目。这样,您不必进行任何代码更改,因为指向Elasticache端点的CNAME dns条目仍将解析为vcache。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句