問題タブ [terracotta]
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.
java - TerracottaサーバーがHibernateでEHCacheのバックエンドとして使用される場合、何をしますか?
私のDALはで実装されており、分散機能(スケーラビリティとHA用)を備えた第2レベルのキャッシュとしてHibernate
使用したいと考えています。私の質問でのみ分散キャッシング
を提供するように見えるのは、サーバーインスタンスの役割は何ですか?データも保持していますか?パーティション化されたキャッシュパーツ間の分散を調整するだけですか?私の混乱は主に、サーバーがデータを保持しているというTSAに関するこの説明
に由来しますが、私のシナリオでは、キャッシュとサーバーが一種のマージされていると思います。私は正しいですか?
サーバーがデータを保持している場合、ボトルネックをデータベースからサーバーに移動するべきではないのはなぜですか? EHCache
EHCache
Terracotta
Terracotta
Terracotta
Terracotta
更新: Affeの回答は、重要な部分である私の質問の2番目の部分に答えましたが、誰かが最初の部分を探しに来た場合に備えて、TCサーバーはメモリ内のEHCacheが保持するすべてのデータを保持する必要があると言います。分散キャッシュ(複製されない)が必要な場合は、L2(TCサーバー)がすべてのオブジェクト自体も保持する必要があります。
よろしくお願いします、
イッタイ
java - Terracotta を使用する EHCache は、分散ヒープからの削除をどのように処理しますか?
最近、Terracotta で EHCache を使用して、アプリケーション データの分散データ キャッシュを実行し始めました。クライアント ノードにはヒープ用に約 2 GB があり、サーバー ノードには 8 GB があるとします。1日あたり約1.5GBの大量のデータを生成します。
通常、1 つのクライアントは特定の日のデータセット (約 1.5 GB) を使用しますが、サーバーは明らかにそれらすべてを保持する必要があります。
有効期限が機能する方法は、ヒープが大きくなったときの LRU ベースです。したがって、特定の L1 クライアント側のキャッシュが大きくなりすぎた場合 (たとえば、day1 から day2 に切り替えた場合)、L1 から day1 のすべてのデータを追い出すことが期待されます。6 番目のデータセットを取得するときに L2 が大きくなりすぎると、最も古いデータセットが完全に期限切れになります。Time-to-Live や Time-to-Idle の値がどうあるべきかについて、私は特に意見を持っていないので、未設定のままにしています。
それを数日見た後、これが期待どおりに機能しているとは思えません。たとえば、L2 の最大要素数を 4 にしてテストを実行しました。4 つの要素を入力しました。次に、5番目の要素を配置しました。Cache.put() は例外なく返されましたが、直後に同じキーを持つ Cache.get() が null を返しました!
私の質問は、どうすれば EHCache+Terracotta に自分のやりたいこと、または少なくともそれに近いことをさせることができるでしょうか?
java - Grailsアプリでドメインクラスを追加/変更した後、テラコッタを再起動します
Grailsアプリがあり、キャッシュにTerracottaを使用しています。既存のドメインクラスにいくつかのフィールドを追加したり、新しいドメインクラスを追加したりするたびに、アプリが「データのブロックの予期しない終了...」でクラッシュし、テラコッタを再起動して処理を再開する必要があることに気付きました。
私たちが持っているアーキテクチャは次のとおり
です。-ロードバランサーの背後にある2つのサーバーで、それぞれgrailsアプリインスタンスを実行します-
個別のDBサーバー-Webサーバー
の1つで実行されているTerracotta
私たちはそこに何かが欠けていますか?すべてのドメイン変更デプロイメントでこれらのダウンタイムが発生しないようにするためにできることはありますか?
更新:テラコッタの問題のようです:http://forums.terracotta.org/forums/posts/list/5065.page
バージョン3.5でこの問題が修正されるはずです。待って希望しましょう!
ありがとう、
イラクリス
java - Tanuki ラッパー ソフトウェアは、計測を行う bootclasspath jar で動作しますか?
私たちは AS3 と Java と SmartFox サーバーを使用しており、Linux で Tanuki ラッパーを数か月間正常に使用しています。ただし、現在、Terracotta をプロジェクトに追加しようとしています。Terracotta はクラスタリングを提供し、これらのリンクで説明されているように、Java インストルメンテーションを使用します。
http://www.smartfoxserver.com/forums/viewtopic.php?p=16741#16741
http://www.smartfoxserver.com/forums/viewtopic.php?t=7524
Tanuki がインストルメンテーションと -Xbootclasspath/p:my-terracotta-boot-file-here.jar で動作するかどうか教えてください。それ?
前もって感謝します!
java - Terracotta と Java EE Application Server Cluster を組み合わせることは理にかなっていますか?
Terracotta は、JVM アプリケーションのスケーリングに使用されます。ウィキペディアの簡単な説明は次のとおりです。
Terracotta は、Java 用のオープン ソース JVM レベルのクラスタリング ソフトウェアです。アプリケーション自体をクラスタリングするのではなく、アプリケーションの下にある JVM をクラスタリングすることにより、Java アプリケーションのクラスタリングのタスクを簡素化するランタイム インフラストラクチャ サービスとしてクラスタリングを提供します。
Java SE アプリケーションをスケーリングする場合に、Terracotta を使用する必要がある理由がわかりました。
私の質問: すでにアプリケーションのクラスタリングをサポートしている WebSphere AS などの Java EE アプリケーション サーバーも使用している場合、Terracotta を使用する意味はありますか? 両方を組み合わせて使用する必要がある場合とその理由は?
cluster-computing - Terracota Cluster はまだオープンソースですか?
はいの場合、どこで見つけることができますか?! このinfoq エントリによると、彼らはそれをオープンソース化しています。しかし、現在、彼らのウェブサイトにはそのような製品はありません。
cluster-computing - Terracotta なしで red5 クラスターをセットアップする方法は?
Terracotta なしで red5 (1.0.0RC) クラスターをセットアップするにはどうすればよいですか? ステップバイステップのドキュメントはありますか?
ありがとう。
java - 展開中の顧客の中断を最小限に抑える
カスタマー エクスペリエンスが中断されないように、新しいコードをどのように本番環境にデプロイしますか?
セッション状態が共有されていない、負荷分散された環境にある e コマース Web サイトを想定してみましょう。Tomcat はアプリケーション サーバーです。
私が思いつくことができる唯一のアイデアは、(1) JavaRebel を使用することですが、これについては経験がなく、何が問題になるかわかりません (たとえば、クラスからメンバーを削除した場合など、セッション オブジェクトの不一致が考えられます) (2 )ユーザーがショッピング体験のどこにいるかをリアルタイムで監視し、新しいアイテムがカートに追加されないようにします。すべての既存の買い物客が注文を完了するか、有効期限が切れるまで待ちます。次にサーバーの電源を切り、新しいコードをデプロイします。
何か案は?それとも、テラコッタのようなものを使用して Web サーバー間でセッション データを共有することが重要な状況ですか? 繰り返しになりますが、セッションのオブジェクト メンバーが削除または追加された Web サーバーに新しいコードをデプロイするにはどうすればよいでしょうか。
ehcache - Terracotta と Infinispan を使用した EHCache
私たちは、キャッシング フレームワークを決定する必要がある新しいプロジェクトの設計段階に取り組んでいます。キャッシング要件について、Terracotta または Infinispan で EHCache を使用するかどうかを決定する必要がありますか? EHCache と Infinispan の長所と短所を教えてもらえますか?
前もって感謝します。
java - Terracotta と同様に、ユニバーサル/動的シリアライゼーション/マーシャリングが必要
問題: 私が使用しているソフトウェア、Lift には「ユーザー セッション」があり、ユーザー リクエスト間で保持される任意の種類のオブジェクトを配置できます (GC タイムアウトあり)。使いやすく強力ですが、大きな欠点が 1 つあります。それは、オブジェクトがシリアル化できないため、オブジェクトを他のサーバー インスタンスに分散して高可用性を実現できないことです。
ランダムなオブジェクトを取得し、リフレクションによってその構造を分析し、すべてのオブジェクトのデータを抽出できるマーシャラー/アンマーシャラーを作成し、オブジェクトを配布するために使用できる形式で返すことができる API/ツールはありますか?他の JVM。マーシャラー/アンマーシャラー自体はシリアライズ可能である必要があります。たとえば一時的な使用のように、一部のデータを無視する必要があることを明示的に定義する方法が必要です。また、一部の参照オブジェクトが実際にはシステム オブジェクト (シングルトン) であり、特別な方法で処理する必要があることを認識できる必要があります。理想的には、反復プロセスである必要があるため、マーシャリングするオブジェクトの「大きさ」に制限を設けることができます。
これは Terracotta が行うことと多少似ていますが、独自のトランスポートとバックエンドを実装したいという点と、それらの「エンハンサー」を使用したくない点が異なります。クラスのパッケージを制限するのは非常に難しいためです念のため実行時にすべてのクラスを変更する必要があり、これには非常にコストがかかります。
編集: 厳密に言えば、独自のトランスポートとバックエンドを持つことは絶対に必要というわけではありませんが、Terracotta のサーバーは単一障害点であるため、最小限のレプリケーションを強制できる完全に分散されたシステムが必要です。レベルであり、ユーザー セッションのコピーを所有するサーバーにリクエストを転送できる場所です。