0

プラットフォーム: spymemcached-2.7.3.jar、64 ビット Windows 7 OS

2 つの membase サーバー (非クラスター環境) があり、memcache からデータを設定および取得するために spymemcached Java クライアントを使用しています。2 つの membase サーバー間でレプリケーションを使用していません。

次のコードを使用して memcache にデータを設定しています。MemcachedClient のように見えますが、利用可能な場合は、最初に server1 にデータを配置/取得しようとします。server1 がダウンしている場合、MemcachedClient は server2 から put/get します。spymemcached はハッシュアルゴリズムを使用して、データを設定/取得する必要があるサーバーを決定しますか? それがどのように機能するかを説明する利用可能なドキュメントはありますか?

コード

public class Main {

    public static void main(String[] args) throws IOException, URISyntaxException {

        MemcachedClient client;

        URI server1 = new URI("http://192.168.100.111:8091/pools");
        URI server2 = new URI("http://127.0.0.1:8091/pools");
        ArrayList<URI> serverList = new ArrayList<URI>();
        serverList.add(server1);
        serverList.add(server2);
        client = new MemcachedClient(serverList, "default", "");

        client.set("spoon", 50, "Hello World!");
        client.shutdown(10, TimeUnit.SECONDS);

        System.exit(0);
    }
}
4

1 に答える 1

1

コンストラクター MemcachedClient(List, String, String) は、リスト内の最初の URI に接続して、クラスター全体に関する情報を取得します。これは、クラスター内に 10 台のサーバーがある場合、1 つの IP アドレスを指定してそれらすべてに接続できることを意味します。URI のリストが許可されている理由は、クラスター情報を取得しているサーバーがダウンした場合に、クラスター内の別のサーバーからクラスター情報を取得できるようにするためです。

この場合、Spymemcached によって使用されるハッシュ アルゴリズムは、クラスター構成の開始時に Membase によって決定されます。構成フェーズで Spymemcached に送信される json を確認すると、ハッシュ アルゴリズムが CRC であることがわかります。CRC の詳細については、DefaultHashAlgorithm クラスを参照してください。

また、説明したように Membase を使用する理由にも興味があります。

于 2012-01-18T18:26:48.733 に答える