問題タブ [gemfire]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - JPA + Spring+EclipseLinkのアプリケーションでgemfireを使用したい
私はオークションに関連するプロジェクトに取り組んでいます。Spring + JPA+EclipseLinkキャッシュとしてGemfireを使用する必要があります。それで、それが可能かどうか知りたいですか?そして、可能であれば、どの構成を追加する必要がありますか?つまり、追加するJARファイル、設定する環境変数、PERSISTENT.xmlに追加するプロパティなどです。実用的な例がある場合は、非常に役立ちます。
よろしくお願いします、Tushar Dodia
licensing - GemFireの代替品とライセンスの質問
ジェムファイアを見始めたところです。本当に感動しました。私はそのライセンスに少し混乱していますが、その一部がオープンソースであるという兆候があるようです。誰かが明確な考えを持っていますか?私は彼らの営業担当者と話すのが嫌いです。そうでない場合、オープンソースの代替手段はありますか?同じ機能を提供するが、全体としては提供しないいくつかのテクノロジーについて考えることができます。
java - Gemfireリージョンの同期
私はgemfireを使用していて、現在クライアントとサーバーを持っています。これで、サーバーはリージョン内にいくつかのサブリージョンを動的に作成し、そこにいくつかのオブジェクトを配置します。クライアントでオブジェクトを取得しようとしていますが、オブジェクトまたはサブリージョンが表示されません。リージョンを同期するにはどうすればよいですか?他にできることはありますか?
caching - gemfire キャッシュの動的領域へのアクセス
gemfire 分散キャッシュ システムで動的領域ファクトリを使用して、いくつかの領域を動的に作成します。リージョンはサーバー キャッシュに存在しますが (既存のリージョンを印刷すると表示されます)、subRegion メソッドを使用してリージョンを取得しようとすると、代わりに null ポインターが返されます。
動的領域は別の方法でアクセスされていますか、それとも何が問題なのですか?
serialization - GemFire:Javaでオブジェクトをシリアル化し、c#で逆シリアル化します。
Java側で言語の境界を越えるには、シリアル化されるクラスにDataSerializableインターフェースを実装する必要があります。そして、c#のデシリアライザーにそれがどのクラスであるかを知らせるために、classIDを登録する必要があります。例に従って、Javaでクラスを次のように記述します。
見た目は問題ありませんが、実行すると次の例外が発生します。
[警告2012/03/3015:06:00.239 JST tid = 0x1]プールでのインスタンス化の登録中にエラーが発生しました:com.gemstone.gemfire.cache.client.ServerOperationException::com.gemstone.gemfire.cacheでリモートregisterInstantiatorsを実行中。 client.internal.AbstractOp.processAck(AbstractOp.java:247)at com.gemstone.gemfire.cache.client.internal.RegisterInstantiatorsOp $ RegisterInstantiatorsOpImpl.processResponse(RegisterInstantiatorsOp.java:76)atcom.gemstone.gemfire.cache.client。 internal.AbstractOp.attemptReadResponse(AbstractOp.java:163)at com.gemstone.gemfire.cache.client.internal.AbstractOp.attempt(AbstractOp.java:363)atcom.gemstone.gemfire.cache.client.internal.ConnectionImpl。 execute(ConnectionImpl.java:229)at com.gemstone.gemfire.cache.client.internal.pooling.PooledConnection.execute(PooledConnection.java:321)com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:646)at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:108) .gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:624)at com.gemstone.gemfire.cache.client.internal.RegisterInstantiatorsOp.execute(RegisterInstantiatorsOp.java:39)at com.gemstone.gemfire .internal.cache.PoolManagerImpl.allPoolsRegisterInstantiator(PoolManagerImpl.java:216)at com.gemstone.gemfire.internal.InternalInstantiator.sendRegistrationMessageToServers(InternalInstantiator.java:188)at com.gemstone.gemfire.internal.InternalInstantiator :143)com.gemstone.gemfire.internal.InternalInstantiatorで。register(InternalInstantiator.java:71)at com.gemstone.gemfire.Instantiator.register(Instantiator.java:168)at Stuff。(Stuff.java)
原因:java.lang.ClassNotFoundException:Stuff $ 1
理由がわからなかったのですが、経験のある人が助けてくれる人はいますか?前もって感謝します!
caching - 埋め込み型および分散型のキャッシュ/データグリッドによるデータ認識型のロード バランシング
申し訳ありませんが、負荷分散の初心者です。
分散環境では、処理 (マップ/リデュース) をデータに送信して、結果がローカルで計算されてから集計される傾向がますます強くなっています。
私がやりたいことは、複製ではなく、分割/分散されたデータに適用されます。同じような原則に従って、ユーザー データがキャッシュされているサーバーでユーザー リクエストを送信できるようにしたいと考えています。
埋め込みキャッシュまたはデータグリッドを使用して応答時間を短くする場合、データセットが大きい場合、レプリケーションを避けて分散/パーティション化されたキャッシュを使用する傾向があります。
パーティショニング アルゴリズムは一般にハッシュ ベースであり、レプリカを使用してサーバーの障害を処理することができます。
最後に、ユーザー データは通常、3 台のサーバー (プライマリ コピー 1 台とレプリカ 2 台) などでホストされます。
ローカル キャッシュ ミスの場合、キャッシュは通常、他のキャッシュ ピアでエントリを検索できます。これは正常に機能しますが、ネットワーク アクセスが必要です。この無駄なネットワーク呼び出しを回避する負荷分散戦略が必要です。
私が知りたいこと: データが必要な場合、ローカル コピーを持つ Web サーバーの 1 つに常に転送するように、キャッシュのパーティショニング メカニズムを認識しているロード バランサーを使用することは可能ですか?
たとえば、リクエスト www.mywebsite.com/user=387 があります。ロード バランサーは 387 の userId をチェックし、このユーザーがサーバー 1、6、および 12 に格納されていることを認識します。ストラテジー。
一般的なソリューションがない場合、カスタム ルーティング戦略を定義できるオープンソースまたは商用のソフトウェアまたはハードウェア ロード バランサーはありますか?
リクエストのデータをどれだけ抽出すると、ロードバランサーの速度が低下しますか? たとえば、ラウンドロビン戦略と比較して、URLパラメーターを抽出し(user = 387の例のように)、いくつかのルールに従って適切なWebサーバーに移動するコストはいくらですか?
パーティショニング データを簡単に取得してロード バランサーで使用できるようにするために、キャッシュ ベンダーに抽象化ライブラリはありますか?
ありがとう!
java - GemfireCacheのキーとしてオブジェクトを書き込む
Gemfireリージョン内にオブジェクトをキーとして配置しようとしています。
以下のエラーで失敗します-
com.gemstone.gemfire.cache.client.ServerOperationException:com.gemstone.gemfire.pdx.PdxSerializationException:クラス「TestClass」のインスタンスを作成できませんでした
gemfireキャッシュ領域に保存するときにキーとして使用する必要があるオブジェクトに何を実装する必要があるかを提案してください。
PS gemfireの自動シリアル化プロパティをtrueに設定し、TestClassのequalsとハッシュコードをオーバーライドしています。デフォルトの空のコンストラクターがあります。
gemfire - ジェムファイア地域を置く
2 つの異なるスレッドがあり、そのうちの 1 つは情報を Gemfire リージョンに入れ、もう 1 つは同じ Gemfire リージョンから同じ情報を読み取って削除します。問題は次のとおりです。2 番目のスレッドがビジー状態の場合、最初のスレッドは引き続き Gemfire 領域に情報を入力します。
必要なもの - リージョン内のアイテムの制限に達した場合は、最初のスレッドをブロックします。このマニュアルを実装することは可能ですが、Gemfire には同じメカニズムが既に存在する可能性がありますか?
caching - 更新の場合でもafterCreateイベントが発生します-Gemfireでイベントはどのように機能しますか?
クライアントキャッシュ構成-
上記のクライアント側の構成では、このキャッシュ「テスト」でイベントをリッスンするCacheListenerを使用しました。
私が直面している問題は、更新イベントでも発生します。つまり、同じキーに異なる値をキャッシュに入れると、afterCreateイベントが発生します。
すなわち
と
どちらもリスナーでafterCreateEventを生成します。
編集済み
ここで何を達成したいのかをもう少し明確にしましょう。エントリを作成しているときに、そのエントリがすでにキャッシュサーバーにあるかどうかをクライアント側に通知してもらいたいです。
例えば
エントリ[Test、Value]がリージョンのキャッシュサーバーにすでに存在する場合、put [Test、Value1]クライアントはこれが更新であることを認識し、そのエントリがクライアントキャッシュにあるかどうかに関係なく実行する必要があります。 。
私はこのようなことを試みました-
上記の変更を行った後、更新イベントを検出しますが、同じクライアントがエントリを作成したばかりで、以前に作成されたエントリではなく、それを更新しようとした場合に限ります。
何かが足りない場合は、助けて知らせてください。
xml - gemfire ローカル リージョンの作成
以下のように cache.xml があります。
以下のような例外があります
schema_reference.4: スキーマ ドキュメント 'http://www.springframework.org/schema/gemfire/spring-gemfire-1.2.xsd' の読み取りに失敗しました。1) ドキュメントが見つからなかったためです。2) ドキュメントを読み取ることができませんでした。3) ドキュメントのルート要素は ではありません。
cvc-complex-type.2.4.c: 一致するワイルドカードは厳密ですが、要素「gfe:cache」の宣言が見つかりません。
以下のように xsd の別のバージョンに変更しようとしましたが、うまくいきませんでした。
http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
と
http://www.springframework.org/schema/gemfire/spring-gemfire-1.1.xsd
と
http://www.springframework.org/schema/gemfire/spring-gemfire-1.2.xsd
上記のすべての試行の後、バージョン 1.1 に変更すると、別の問題が発生することがわかりました
cvc-complex-type.2.4.c: 一致するワイルドカードは厳密ですが、要素「gfe:local-region」の宣言が見つかりません。
この問題を解決するにはどうすればよいですか?