10

3 台のマシンがあり、redis クラスター用に 6 つのノードを作成します。数か月前に正常に作成しましたが、現在は削除されています。修正するために最善を尽くしていますが、機能しないため、すべてのデータを消去してゼロから再作成します、次のコマンドを使用してクラスターを作成すると、ここでブロックされ、ノードがクラスターに参加するのを待って、いくつかの調査を行い、データを消去し、何度もログに記録し、何度も繰り返しますが、それでも機能しません。

redis-trib.rb create --replicas 1 10.2.1.208:6379 10.2.1.208:6380 10.2.1.209:6379 10.2.1.209:6380 10.2.1.15:6379 10.2.1.15:6380

結果を表示

redis-trib.rb create --replicas 1 10.2.1.208:6379 10.2.1.208:6380 10.2.1.209:6379 10.2.1.209:6380 10.2.1.15:6379 10.2.1.15:6380
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
10.2.1.208:6379
10.2.1.209:6379
10.2.1.15:6379
Adding replica 10.2.1.209:6380 to 10.2.1.208:6379
Adding replica 10.2.1.208:6380 to 10.2.1.209:6379
Adding replica 10.2.1.15:6380 to 10.2.1.15:6379
M: 73b3b99bb17de63aa99eaf592376f0a06feb3d66 10.2.1.208:6379
   slots:0-5460 (5461 slots) master
S: 05b33ed6691797faaf7ccec1541396472b9d2866 10.2.1.208:6380
   replicates f14702ebb1462b313dd7eb4809ec50e30e4eef36
M: f14702ebb1462b313dd7eb4809ec50e30e4eef36 10.2.1.209:6379
   slots:5461-10922 (5462 slots) master
S: 3a9f433a8503281b0ddfc6ec69016908735053b8 10.2.1.209:6380
   replicates 73b3b99bb17de63aa99eaf592376f0a06feb3d66
M: 2fd97e8842828dba6b425b6a30e764fb06915737 10.2.1.15:6379
   slots:10923-16383 (5461 slots) master
S: c46db592d49bc1e9d8b5efb27b9799929c5186a4 10.2.1.15:6380
   replicates 2fd97e8842828dba6b425b6a30e764fb06915737
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...........................................................................^C/usr/local/bin/redis-trib.rb:652:in `sleep': Interrupt
        from /usr/local/bin/redis-trib.rb:652:in `wait_cluster_join'
        from /usr/local/bin/redis-trib.rb:1305:in `create_cluster_cmd'
        from /usr/local/bin/redis-trib.rb:1695:in `<main>'
4

5 に答える 5

14

公式 Redis Web サイトのクラスター チュートリアルから:

すべての Redis クラスター ノードでは、2 つの TCP 接続を開く必要があります。クライアントにサービスを提供するために使用される通常の Redis TCP ポート (例: 6379) に加えて、データ ポートに 10000 を追加して得られるポート (この例では 16379)。

この 2 番目のハイポートは、バイナリ プロトコルを使用するノード間通信チャネルであるクラスタ バスに使用されます。クラスタ バスは、障害の検出、構成の更新、フェイルオーバーの承認などのためにノードによって使用されます。クライアントは決してクラスター バス ポートとの通信を試みる必要はありませんが、常に通常の Redis コマンド ポートを使用して通信を試みてください。ただし、ファイアウォールで両方のポートを開いてください。そうしないと、Redis クラスター ノードは通信できません。

コマンド ポートとクラスター バス ポートのオフセットは固定されており、常に 10000 です。

AWS を使用しましたが、この問題の原因となったポート 16379 と 16380 を開きませんでした。

于 2016-09-20T04:10:50.147 に答える