我正在尝试使用node-memcached驱动程序为nodejs应用设置健壮的 memcached 配置,但在一台服务器上似乎没有使用指定的故障转移服务器模具
我的本地实验如下:
壳
memcached -p 11212
节点
MC = require('memcached')
c = new MC('localhost:11211', //this process does not exist
{failOverServers: ['localhost:11212']})
c.get('foo', console.log) //this will eventually time out
c.get('foo', console.log) //repeat 5 or 6 times to exceed the retries number
//wait until all the connection errors appear in the console
//at this point, the failover server should be in use
c.get('foo', console.log) //this still times out :(
我们可能做错什么的任何想法?
答案 0 :(得分:1)
似乎故障转移功能在node-memcached中有些错误。
要启用故障转移,您必须设置remove
选项:
c = new MC('localhost:11211', //this process does not exist
{failOverServers: ['localhost:11212'],
remove : true})
不幸的是,由于以下错误,这不起作用:
[depricated] HashRing#replaceServer is removed.
[depricated] the API has no replacement
也就是说,当尝试使用故障转移列表中的替换替换死服务器时,node-memcached会从HashRing库输出一个弃用错误(后者由节点的同一作者维护) -memcached)。恕我直言,随意打开一个错误: - )
答案 1 :(得分:-1)
当您的nodejs服务器没有从memcached获取任何会话ID时,就会出现这种情况 请在正确设置的php.ini文件中正确检查memcached
session.save =' memcache' session.path =' tcp:// localhost:11212'