我目前采用 Enyim Caching 开源项目做Memcached 的客户端框架。想问下,通过编程方式,我如何能得到“当前能成功连上运行有Memcached服务的服务器”的列表信息?
举个例子,比如我有三台服务器A、B、C上运行有Memcached服务,并且我在配置文件的Services节点里也指定了这三台服务器的地址,程序开始运行良好,这三台机器上都分别存上了数据。然后突然其中某台机器不能响应了(B挂了),我现在想通过编程方式获取目前连接良好的服务器列表(A和C),请问代码应该如何写?
其中1台服务器挂了,EnyimMemcached会把这台服务器踢出去,无需自己处理。在EnyimMemcached的日志中会记录哪台服务器挂了。
谢谢dudu。
可我不是想知道哪台服务器挂了,而是想知道有哪些服务器的连接是正常的。想知道可用的服务器的列表。因为我是想做一个统计的页面(仪表盘),页面上显示哪些Memcached服务器是正常运行着。
@Dic4000: 那就自己写socket程序连接memcached服务器的11211端口,或者用第三方的telnet类库。
@dudu: 谢谢,这是个方法。
我刚才看了下源代码,ServerStats类里有个results私有属性,把它改成Public,重新编译项目。做了下测试,里面存的是可用的服务器列表。
@Dic4000: 嗯,你找到的是最好的方法