4

NHibernate の第 2 レベルのキャッシュとして memcached を使用しています。システムを Amazon Web Services に移行し、Memcache と完全に互換性のある Elasticache を使用する予定です。Memcached は一連のホスト IP アドレス(注: ホスト名ではありません。無効な IP 文字列を検出すると、ライブラリはエラーをスローします) を使用して、memcached サーバーに接続します。以下は、構成文字列の例です。

  <memcache>
    <memcached host="192.168.1.1" port="11211" expiration="300" />
  </memcache>

一方、Elasticache はキャッシュ クラスターに静的なホスト名を提供します。これらは変更される傾向があるため、内部 IP アドレスを使用することはお勧めしません。

Elasticache で NHibernate memcached プロバイダーを使用できた人はいますか? IP アドレスではなくホスト名を使用するように NHibernate で memcached を構成する別の方法はありますか?

ありがとうございました

JP

4

4 に答える 4

4

興味のある方へ: NHibernate.Caches.MemCache を使用してホスト名を指定できませんでした。ただし、NHibernate の代替 memcache 実装である NHibernate.Caches.EnyimMemcached があることが判明しました。これにより、サーバーを IP アドレスまたはホスト名で定義できるようになり、問題が解決しました。古いMemcache統合を使用して達成できるかどうかを知りたいのですが、EnyimMemcachedでうまく機能しています

于 2013-03-15T03:28:43.583 に答える
0

host構成ファイルで属性を使用する代わりに、属性を使用hostnameして、ElastiCache によって提供される DNS 名に設定することはできませんか?

すなわち:

<memcached hostname="simcoprod02.m2st2p.fsw4.use1qa.cache.amazonaws.com" port="11211" expiration="300" />
于 2013-03-14T06:05:08.290 に答える
-1

そのaws問題のホスト名(amazon、amazon-XXXXによって提供されるもの)は、どのドメインにもマップされていないため、適用できません。

内部IP間のルーティングも可能ではないようです。どこにでもあるトレースを試すことができます。唯一の方法は、あなたが知っているように、外向きの弾性IPを使用することです。

アマゾンにマップされたcnamesへのルーティングも可能ではないようです

逆引きDNSマッピングリクエスト(Amazonのよくある質問)を送信するか、セカンダリDNSリクエストを設定してみてください(免責事項、両方を試していません。エラスティックIPを使用してマッピングし、より緊急なものに進む必要がありました)

于 2013-03-20T15:13:35.453 に答える