18

私は金融セクターで働いており、大型重負荷システムの開発にVaadin7を選択しようとしています。

しかし、Vaadinはすべての状態をセッション中に保持するため、大規模システムのVaadinメモリフットプリントについて少し心配しています。これは、新しいユーザーごとに、すべてのアプリケーションの状態がメモリに保存されることを意味しますね。
モノリシックシステムを構築する余裕はありません。代わりに、システムはスケーラブルで機敏でなければなりません。私たちは巨大なクライアントベースを持っているので、カスタマイズが簡単で、成長する準備ができている必要があります。

Vaadinでこれらの問題を最小化または排除する方法について、経験と考えられる回避策を誰かに教えてもらえますか?

4

2 に答える 2

14

製品の開発中に、デフォルトの Vaadin アーキテクチャを使用するとメモリ フットプリントが大きくなるという問題に直面しました。

Vaadin アーキテクチャは、イベントによって駆動されるコンポーネントに基づいています。コンポーネントを使用すると、密結合アプリケーションを簡単に作成できます。その理由は、コンポーネントが階層構造になっているためです。ピラミッドのようなものです。より大きなアプリケーションが構築されます。より大きなピラミッドは、各ユーザーのセッションに保存されます。

メモリの割り当てを大幅に削減するために、古い学校の状態管理を使用してバックグラウンドで包括的なイベント モデルを使用するアプリケーション用のページ ベースのアプローチを作成しました。XML 形式の Statechart 表記法に基づいています。

その結果、セッションは、Statechart 構成によって記述された、ユーザー ワークフロー中にアクセスしたページのみを保持します。ユーザーがワークフローを終了すると、すべてのページが解放され、ガベージ コレクターによって収集されます。

違いを確認するために、いくつかのテストを行って、アプリケーションを操作するユーザーに割り当てられたメモリを比較しました。

開発されたアプリケーション:

  • 密結合アプローチでは、ユーザーごとに 5 ~ 15 MB のヒープを消費します
  • 疎結合アプローチの場合 - 最大 2 MB

サーバーあたり最大 1000 ~ 1500 の同時ユーザーに 4 GB の RAM を使用して大規模なシステムをスケーリングできるため、結果に非常に満足しています。

ほとんど忘れていました。Lexaden Web Flowライブラリを使用しました。Apacheライセンス付きです。

于 2013-02-16T17:23:20.873 に答える
9

こちらをご覧ください: https://vaadin.com/blog/-/blogs/vaadin-scalability-study-quicktickets

さらに、本番環境で Vaadin を実行している人々による次の情報を見つけました。

バラージュ・ホドシー:

10,000 人以上のユーザーを持つバック オフィス システムがあります。1 日の利用者数は約 3000 人ですが、その半数がログアウトせずに 8 時間システムを利用しています。Liferay 6.0.5 Tomcat バンドルと Vaadin をポートレットとして使用します。2 つのサーバーには 48 GB の RAM があり、Tomcat には 24 GB のヒープを与えます。DB は 18 GB を取得し、システムは残りを取得しました。セッション サイズ、同時ユーザー、およびアクティビティに対するヒープを測定します。メモリが増えると、完全な GC が発生することはほとんどありませんが、時間がかかります。Tomcat ワーカーの数を増やし、ヒープを減らす予定です。サーバーを測定するときは、メモリを少し追加してみてください。プロセッサのコストを下げて RAM を追加購入するよりもコストが重要な場合。ほとんどの場合、少し調整するだけで価値があります。

ピエール=エマニュエル・グロ:

頻繁に使用される 1000 人の毎日のユーザーの場合、純粋な vaadin アプリケーション: サーバー 3 GB 2 コア Jetty (ulimit が 50000 まで) Postgresql 9 (50 人の同時ユーザー) (接続プールが使用されます)。ソフトウェア部分として、ehcache を使用して DTO オブジェクトをキャッシュし、純粋な JDBC も使用しました。

于 2013-02-12T06:23:46.810 に答える