首页 新闻 搜索 专区 学院

Enyim Memcached Client 框架下如何能得到“当前能成功连上运行有Memcached服务的服务器”的列表信息?

0
悬赏园豆:20 [已解决问题] 解决于 2016-04-02 14:51

我目前采用 Enyim Caching 开源项目做Memcached 的客户端框架。想问下,通过编程方式,我如何能得到“当前能成功连上运行有Memcached服务的服务器”的列表信息?


举个例子,比如我有三台服务器A、B、C上运行有Memcached服务,并且我在配置文件的Services节点里也指定了这三台服务器的地址,程序开始运行良好,这三台机器上都分别存上了数据。然后突然其中某台机器不能响应了(B挂了),我现在想通过编程方式获取目前连接良好的服务器列表(A和C),请问代码应该如何写?

Dic4000的主页 Dic4000 | 初学一级 | 园豆:102
提问于:2016-03-31 21:37
< >
分享
最佳答案
0

其中1台服务器挂了,EnyimMemcached会把这台服务器踢出去,无需自己处理。在EnyimMemcached的日志中会记录哪台服务器挂了。

收获园豆:20
dudu | 高人七级 |园豆:37154 | 2016-03-31 22:22

谢谢dudu。

可我不是想知道哪台服务器挂了,而是想知道有哪些服务器的连接是正常的。想知道可用的服务器的列表。因为我是想做一个统计的页面(仪表盘),页面上显示哪些Memcached服务器是正常运行着。

Dic4000 | 园豆:102 (初学一级) | 2016-03-31 22:45

@Dic4000: 那就自己写socket程序连接memcached服务器的11211端口,或者用第三方的telnet类库。

dudu | 园豆:37154 (高人七级) | 2016-03-31 22:55

@dudu: 谢谢,这是个方法。

我刚才看了下源代码,ServerStats类里有个results私有属性,把它改成Public,重新编译项目。做了下测试,里面存的可用的服务器列表。

Dic4000 | 园豆:102 (初学一级) | 2016-03-31 23:07

@Dic4000: 嗯,你找到的是最好的方法

dudu | 园豆:37154 (高人七级) | 2016-03-31 23:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册