如何在生产中解决Redis-Cluster问题

问题描述 投票:0回答:0

我已经设置了一个包含3个Masters和3个Slaves的Redis集群。 这里的大师是均匀分割的插槽,即

Master1 - 0-5460插槽

Master2 - 5461-10922位

Master3 - 10923-16383插槽

并且在上面实现了用于自动故障转移的Sentinel。 此外,我已经实现了代理(HAPROXY),以便我只能通过单个IP访问我的集群。

我的主人在端口7000,7001,7002上运行,而奴隶正在端口7003,7004,7005上运行。

进一步的Sentinel在端口23679上运行,Haproxy在端口6378上运行。

Sentinel在故障转移时工作正常。

这是我的配置文件:

#Master
protected-mode no
daemonize yes
port 7000
pidfile /var/run/redis_7000.pid
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
#Slave
protected-mode no
daemonize yes
port 7003
pidfile "/var/run/redis_7003.pid"
cluster-enabled yes
cluster-config-file "nodes-7003.conf"
cluster-node-timeout 5000
appendonly yes
# Generated by CONFIG REWRITE
dir "/home/ubuntu/redis-stable"
#HAPROXY
defaults REDIS
mode tcp
timeout connect 10s
timeout server 18s
timeout client 18s

frontend ft_redis
bind *:6378 name redis
default_backend redis-server

backend redis-server
balance roundrobin
mode tcp
option tcp-check
#balance source
tcp-check connect
tcp-check send PING\r\n
tcp-check expect string +PONG
tcp-check send info\ replication\r\n
tcp-check expect string role:master
tcp-check send QUIT\r\n
tcp-check expect string +OK
server server0 <IP1>:7000 check inter 1s
server server3 <IP2>:7003 check inter 1s
server server1 <IP3>:7001 check inter 1s
server server4 <IP4>:7004 check inter 1s
server server2 <IP5>:7002 check inter 1s
server server5 <IP6>:7005 check inter 1s

我面临的问题是:

当我尝试在我的网站上实现这种架构时,它有时会加载一些页面,有时则不会。 我无法找出此问题/错误背后的可能原因。

此外,如果我只使用一个Redis节点,它可以正常工作。

我甚至尝试通过终端redis-cli测试这个redis集群设置,它工作正常。 它能够将Redis命令重定向到其他主设备上所需的插槽中。

127.0.0.1:6378> get foo
"bar"
127.0.0.1:6378> get hello
-> Redirected to slot [866] located at <IP1>:7000
"123"
<IP1>:7000> get abcd
-> Redirected to slot [10294] located at <IP2>:7001
"1234"
<IP2>:7001> get foo
-> Redirected to slot [12182] located at <IP3>:7002
"bar"
<IP3>:7002> 

谁能帮我这个? 我错过了什么? 上述设置中的问题在哪里?

redis production-environment sharding sentinel redis-cluster
© www.soinside.com 2019 - 2024. All rights reserved.