ショックを受け、Spring Bootは大量のメモリを消費します!
一般に、Spring Bootは比較的簡単に構築できます。特に、人々向けのマイクロサービスと呼ばれるSpring Cloudファミリーバケットは、開発の傾向でコンテナ化テクノロジーが成熟しています。多くのメモリを消費するSpring Bootに直面して、中小企業はそうではないと言っていますアップ。最近では、多くの新しく生まれたJAVAマイクロサービスフレームワークは、主にSpring Bootが重すぎるため、主に「軽量」に焦点を当てています。
JAVAマイクロサービスフレームワーク
No1-春の雲
はじめに
Springには強力な裏付けがあり、更新、安定性、成熟度の問題を考慮する必要はまったくありません。JAVA部門の技術スタッフはおそらくSpringの名前を聞いたことがあり、プログラマーの不足はありません...そして、開始の難しさは非常に低く、アーキテクトを救うことができます。
ただし、サーバーで支払う必要があります。
少なくとも1つの「サービス検出」サーバー。
統合ゲートウェイGatewayがある場合があります。
「分散構成管理」のための構成センターが必要になる場合があります。
「サービス追跡」を実行して、私のリクエストがどこからどこに来たかを知ることができます。
「クラスターの監視」が必要な場合があります。
プロジェクトがオンラインになった後、多くのサーバーが必要であることがわかりました。クラスターにサーバーを追加するたびに、私たちは悩んでいます。
30秒間の圧力試験
ストレステスト前のメモリ使用量
図に示すように、メモリは304Mを占有します。
ストレステスト中のメモリ使用量
図に示すように、メモリは1520M(1.5G)を占有し、CPUは321%に上昇します。
概観
まとめ
最小1Gのメモリを備えたSpring Bootの単純なアプリケーションと、比較的少数のビジネスポイントでコンパイルされたマイクロサービスは、約50MのJARを持ち、Spring Cloudは比較的多くのコンポーネントを導入し、より多くのリソースを消費します。
起動時間は約10秒です。アプリケーションは10.153秒で起動します(JVMは10.915で実行されます)
JAVAベースのリアクティブプログラミングツールキットVert.x
はじめに
Eclipseに裏打ちされたEclipse Vert.xは、JVM上でレスポンシブアプリケーションを構築するためのツールキットです。配置はSpring Bootと競合せず、Vert.xをSpring Bootで使用することもできます。多くのVert.xモジュールは、多数のマイクロサービスコンポーネントを提供します。多くの人の目には、マイクロサービスアーキテクチャの選択です。
Huawei MicroServiceフレームワークApache ServiceCombは、Vert.xを基盤とするフレームワークとして実装されており、「ベンチマークテストサイトTechEmpower」では、Vert.xのパフォーマンスも非常に目立ちます。
30秒間の圧力試験
ストレステスト前のメモリ使用量
図に示すように、メモリは65Mを占有します。
ストレステスト中のメモリ使用量
図に示すように、メモリは139M、CPUは2.1%を占めており、ストレステストはないようです。
概観
まとめ
Vert.x単一サービスがパッケージ化された後、それは約7MのJARであり、TomcatやJettyなどのコンテナーに依存せず、JVMで直接実行されます。
Vert.xは非常に少ないリソースを消費します。1コアの2Gサーバーはすでに多くのVert.xサービスをデプロイできると感じています。コーディングの問題を除いて、それは本当に小さなプロジェクトや小さなモジュールに準拠しています。Vert.xに基づくオープンソースゲートウェイがgit market-VX-API-Gatewayヘルプドキュメントに掲載されました
https://duhua.gitee.io/vx-api-gateway-doc
小さなプロジェクトがすぐにオンラインになるのに非常に適した多言語をサポートします。
起動時間は1秒未満:Vert.xを0.274秒で起動(JVMは0.274で実行)
JAVA Departmentその他のマイクロサービスフレームワーク
スパークのJava
-
ジャーは比較的小さく、約10M
-
小さなメモリ、約30〜60MB;
-
パフォーマンスは、Spring Bootと同様に問題ありません。
マイクロノート
-
Grailsチームの新しいお気に入り。
-
Java、Groovy、Kotlinで記述できるマイクロサービスベースのアプリケーション。
-
Spring Bootと比較すると、より包括的です。
-
パフォーマンスが向上し、コーディング方法はSpring Bootに似ています。
-
起動時間とメモリ消費は他のフレームワークよりも効率的です。
-
多言語
-
依存性注入
-
組み込みの複数のクラウドローカル機能。
-
非常に新しく、リリースされた1.0.0
ジャバリン
-
始めるのは非常に簡単です。
-
柔軟で、同期と非同期の両方のプログラミングアイデアと互換性があります。
-
JARは4〜5Mと小さく、
-
多言語
-
KOAの影があります。
-
ソースコードは約2000行しかありません。ソースコードは、理解して修正できるほど単純です。
-
現在の傾向に沿って;
-
多言語
-
組み込みサーバーJetty;
クアークス
-
クイックスタート
-
JARは小さく、約10Mです。
-
非常に少ないドキュメント