問題タブ [spring-data-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.
transactions - 取得クエリは、同じトランザクション内の Id 列でのみ機能します
3 つの属性 { id ,name ,age } を持つクラス Person を考えてみましょう。id は name||age として形成されます。get クエリは Id によってのみ機能します (レコードが作成されたのと同じトランザクションで)
別のトランザクション呼び出しから
repository.findByNameAndAge("abc", "23")
結果が返されますが、そのレコードが作成されている同じトランザクションでは、結果は返されません。
リポジトリはこちら
リージョンは REPLICATE_PERSISTENT で、PDX シリアライゼーションを使用しています。呼び出しは同じトランザクションでも機能するはずですが、これは既知の問題ですか?
gemfire - OQL の重要な gemfire での IN と OR の比較
クラスター内の異なるノード上の複数のテーブル (gemfire に関しては領域) にまたがるコンテンツを処理する場合、どのオペレーターがより高速な結果を提供します。
今のところ、私の検索 OQL クエリは次のようになります。
「shared_with」がリストであると考えてください。
参考文献:
gemfire - Gemfire クエリ インターフェース - gfsh/pulse の代替手段
Gemfire の領域をクエリするための Pulse / Gfsh に代わるシック クライアントはありますか? pulse は優れていますが、テスト/クエリ用の sqldeveloper/toad としては使用できません。
gemfire - Gemfire Group By 関数
Gemfire OQL でグループ化、集計関数を使用するオプションはありますか? 関連するドキュメントが見つかりませんでした。関連する Google の結果のみが古いバージョンの gemfire を指しています - これに関して何か変更があったかどうかわかりませんか?
繰り返しを避けて、Gemfire に面倒な作業を任せることを検討しています。
gemfire - Gemfire のレプリケートされたリージョンで並列非同期イベント キューを構成する
レプリケートされたリージョンで非同期イベント キューを使用するために、Gemfire/Geode を構成しようとしていますparallel=true
。ただし、起動時に次の例外が発生します。
これ (つまり、レプリケートされたリージョンでの並列キューを防止するため) は設計上の決定のようですが、なぜそうなのか理解できません。
見つけたすべてのドキュメント (主にhttp://gemfire.docs.pivotal.io/docs-gemfire/latest/reference/book_intro.htmlおよび関連ドキュメント) を読み、あらゆる種類の参照を検索しました。この例外はインターネット上にありますが、レプリケートされたリージョンをホストしている各メンバーにイベント リスナーを設定できない理由について明確な説明が見つかりませんでした。
私の結論は、レプリケートされたリージョンや並列キューに関するいくつかの基本的な概念が欠けているに違いないということですが、自分で適切なドキュメントを見つけることができないため、説明や適切なリソースへのポインタを求めています読んだ。
前もって感謝します。
編集:質問を文脈に入れましょう。
パフォーマンスを最大化するためにノード間で負荷分散される REST サービスを使用してアプリケーションにデータを送信する外部システムがあります。各ノードは同じリージョンをホストします (AB と C という名前の 3 つのリージョンとしましょう)。データは、これらすべての領域 (A から B から C) を通過し、途中で処理されます。つまり、リージョン A は受信したばかりのデータをホストし、リージョン B は部分的に処理されたデータをホストし、リージョン C は処理が完了したデータをホストします。
イベント リスナーを使用してデータを処理し、リージョンからリージョンに移動します。リージョン C のリスナーの場合は、別の外部システムにエクスポートします。
すべてのリスナーはトランザクション対応でなければなりません (繰り返しますが、そうしなければなりません)。
また、水平方向のスケーラビリティ (つまり、スループットを向上させるためにオンザフライでノードを追加すること) と、達成可能な最大量のデータ複製も必要です。
さらに、すべてのノードを同じ gemfire 構成で実行したいと考えています。
私はすでに分割された領域を使用しようとしましたが、簡潔にするためにここでは説明しない多くの理由により、それらは私のニーズに適合しません (ただ、私を信じてください、現在は不可能です)。
そのため、すべてのノードでレプリケートされたリージョンをホストすることが有効であると考えましたが、すべてのノードでイベントを個別に処理し、後でアクティブ/アクティブ シナリオでリージョンの同期を実行できるようにする必要があります。これにはイベント キューを並列にする必要があることは理解していますが、(設計上) 可能ではないようです。
したがって、(更新された)質問は次のとおりです。このシナリオは可能ですか?もしそうなら、どうすればそれを達成できますか?説明および/またはドキュメント、例、リソース、またはその他のものは大歓迎です。
繰り返しますが、事前に感謝します。
spring-boot - 操作を試みたときに @autowired インスタンス null を取得し、null ポインター例外をスローする
crud リポジトリを使用して gemfire にデータを保存しようとしています。リポジトリの保存メソッドを呼び出す操作クラスを 1 つ作成しましたが、自動配線されたインスタンスで null ポインター例外が発生します。以下は私のコードです: