![Memcached サーバー: 2 つのサーバー URL を同じサーバーにポイントするのは良い方法でしょうか?](https://rvso.com/image/567607/Memcached%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%3A%202%20%E3%81%A4%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%20URL%20%E3%82%92%E5%90%8C%E3%81%98%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E8%89%AF%E3%81%84%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
複数の異なるファイルとサーバーから memcache サーバーへの接続があるシステムがあります。
1 つのサーバーを維持しつつ、memcache サーバーの数を増やすオプションも残しておきたいです (トラフィックが多い期間用)。
私のアイデアは、memcache に 2 つのサーバーがあることを伝え、2 つの URL が (DNS によって) 1 つのサーバーを指すようにすることです。将来、必要になった場合は、多くの場所でコードを変更せずにサーバーを追加して DNS を変更できます。
これは良い方法でしょうか? 2 つのサーバー接続があり、両方とも同じサーバーを指しているという事実によってパフォーマンス コストが発生しますか?
コードを変更してデプロイする必要なく、memcache 容量を即座に拡張できるようにする他の方法はありますか?
答え1
これは、使用している memcached クライアントと、複数のサーバー間でキーをハッシュする方法によって異なります。1 つの memcached サーバーは、1 つの Web サーバーが処理できる接続数よりも多くの接続を処理するため (ほとんどの場合)、1 つのサーバーを指定するよりも 2 つのサーバーを指定してもパフォーマンスが向上するとは期待できません。実際、クライアントが 2 つの異なるサーバー (実際には同じ) 間でキーをハッシュしようとすると、メリットよりもデメリットの方が大きくなる可能性があります。
再度デプロイしたくない場合は、構成オプションとしてサーバーに取り込まれる環境変数にサーバーをリストします。たとえば、ENV['MEMCACHE_SERVERS'] と指定して、再度デプロイせずにサーバー側で構成するだけです。
memcache の優れた点は、冗長性やフェイルオーバーを意図しておらず、永続的な保存場所ではないことです。完全に機能しなくなり、サイトのキャッシュ ヒットが 0% になる可能性もありますが、少なくとも機能し続けます。