根据git提交消息,ServiceStack最近添加了故障转移支持。我最初认为这意味着我可以将一个Redis实例拉下来,而我的池客户端管理器将优雅地处理故障转移,并尝试与其中一个备用Redis实例连接。不幸的是,我的代码出错了,并且说它无法连接到最初的Redis实例。ServiceStack PooledRedisClientManager故障转移如何工作?
我目前正在Windows上运行Redis 2.6.12的实例,主端口为6379,从端为6380,如果主站发生故障,设置标记以自动将从站升级为主站。我目前实例我的客户经理是这样的:
,其中第一阵列读写主机(主),与第二阵列是只读的主机(奴隶)。
当我终止在6379端口的主人,哨兵促使奴隶成为主人。现在,当我尝试运行我的C#代码时,不是故障转移到端口6380,而是简单地中断并返回错误“无法连接到redis实例在localhost:6379”。
有没有办法解决这个问题,或者故障切换是不是以我想要的方式工作?
您是否找到了方法@Vliu – jaxxbo
不,从我所做的大多数研究中,大多数人不依赖代码来处理故障转移。他们在redis数据库上使用了一个(linux)代理层,比如HAProxy @jaxxbo – Vliu