我在3台独立的Windows机器上使用Redis版本3.0.501(最新的MSOpenTech git repo)设置了6节点集群。
所有6个redis.conf文件都是:
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
_textView.scrollEnabled = NO;
[coordinator animateAlongsideTransition:nil completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
_textView.scrollEnabled = YES;
}];
}
每台机器运行2个节点。这是我的缩写nodes.conf(为了便于阅读,缩写了id):
port 638x
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
在这里你可以看到两个节点,6385是6384的奴隶,在192.168.1.22上。如果那台机器死了,这不是一个单一的故障点吗?如何防止其中一台机器在同一台机器上连接到主机的从机节点?
答案 0 :(得分:2)
手动设置群集以配置每个主服务器使用的从属服务器。按照redis网站上的tutorial了解如何手动创建群集。
我只从一开始就用master创建集群。在你的情况下,看起来像这样:
./redis-trib.rb create 192.168.1.23:6380 192.168.1.29:6382 192.168.1.22:6384
然后,您始终可以手动将从站添加到特定主站,以确保每个从站都在与其主站不同的计算机上。 Adding a new node as a replica
./redis-trib.rb add-node --slave --master-id <master_id> 192.168.1.22:6385 192.168.1.23:6380
据我所知,有一种情况是奴隶可能会被迁移到一个新的主人并且最终都在同一台机器上。如果在redis.conf文件中将cluster-migration-barrier
设置为1,则可能会出现具有从站S1和S1的主M1的情况。 S2在不同的机器上。您还可以在不同的计算机上安装带有从S3的主M2。如果S3死机且M2和被选择迁移到M2的从机在同一台机器上,那么就无法自动避免单点故障。