1

こんにちは。誰かがGeode Redis Adapterを使用するためのクエリ/構成を手伝ってくれることを願っています。高可用性セットアップで機能するように、Geode クラスター内の多数の Redis サーバーを構成する方法/かどうかを確認するのに苦労しています。

私は Geode を初めて使用しますが、従来の Geode アプリケーションでは、クライアントがロケーター プロセスと対話してクラスターからデータにアクセスし、負荷を分散することを理解しています。このアダプターの目的が Redis のドロップイン代替品として機能すること (つまり、クライアントでの変更は不要) であることを考えると、機能が多少異なると思います。

これが私がこれまでに試したことです:

このリンクに従ってソースからビルドgfshし、2 つの CentOS 7 VM で cliを正常に取得しました。

  • 192.168.0.10: ホスト1
  • 192.168.0.15: ホスト 2

host1 で、次のコマンドを実行します。

gfsh>start locator --name=locator1 --bind-address=192.168.0.10 --port=10334
gfsh>start server --name=redis --redis-bind-address=192.168.0.10 --redis-port=11211 --J=-Dgemfireredis.regiontype=PARTITION_REDUNDANT

host2 で、次のコマンドを実行します。

gfsh>start server --name=redis2 --redis-bind-address=192.168.0.15 --redis-port=11211 --J=-Dgemfireredis.regiontype=PARTITION_REDUNDANT --locators=192.168.0.10[10334]

host1 で、現在の構成を調べます。

gfsh>list members
  Name   | Id
-------- | -------------------------------------------------
locator1 | 192.168.0.10(locator1:16629:locator)<ec><v0>:1024
redis2   | 192.168.0.15(redis2:6022)<ec><v2>:1024
redis    | 192.168.0.10(redis:16720)<ec><v1>:1025

gfsh>list regions
List of regions
-----------------
__HlL
__ReDiS_MeTa_DaTa
__StRiNgS

リージョンごとに、サーバー redis と redis2 の両方がホスティング メンバーとして表示されます。

gfsh>describe region --name=__StRiNgS
..........................................................
Name            : __StRiNgS
Data Policy     : normal
Hosting Members : redis2
                  redis

Non-Default Attributes Shared By Hosting Members

 Type  | Name  | Value
------ | ----- | -----
Region | size  | 0
       | scope | local

この時点で、redis-cliテストのために に目を向けました。前の出力を考えると、1 つのサーバーでキーを設定すると、他のサーバーからそれを読み取ることができるはずであると予想されました。

192.168.0.10:11211> set foo 'bar'
192.168.0.10:11211> get foo
"bar"

192.168.0.15:11211> get foo
(nil)

gfsh>describe region --name=__StRiNgS
..........................................................
Name            : __StRiNgS
Data Policy     : normal
Hosting Members : redis2
                  redis

Non-Default Attributes Shared By Hosting Members

 Type  | Name  | Value
------ | ----- | -----
Region | scope | local

Non-Default Attributes Specific To The Hosting Members

Member |  Type  | Name | Value
------ | ------ | ---- | -----
redis2 | Region | size | 0
redis  | Region | size | 1

ご覧のとおり、host1 に追加されたキーの host2 に対するクエリは (nil) を返しました。ここで何か助けていただければ幸いです。ここで私が目指していることを達成することは可能ですか、それとも Redis アダプターでは単一のサーバーのみをスケールアウトできますか?

4

3 に答える 3

1

これは答えではないかもしれませんが、おそらくコメントするには長すぎます。

あなたがここで話している特定の Geode Redis アダプターに精通していません。しかし、Gemfire/Geode での私の経験から、確認したいことがあります。

  1. ロケーター パラメータを指定せずに最初のホストを起動しました。これがクラスター形成に問題を引き起こすかどうかはわかりません。Gemfire でクラスターを形成するには、mcast ポートを指定する方法とロケーターを指定する方法の 2 つがあります。

  2. 検査しているリージョンの範囲が間違っているようです。「ローカル」は更新を複製しません。正しく設定すると、 DISTRIBUTED_NO_ACK / DISTRIBUTED_ACK / GLOBAL と表示されるはずです。

お役に立てれば

于 2016-09-21T08:03:52.687 に答える