springboot-plus は SpringBoot 2 に基づく管理バックエンド システムであり、ユーザー管理、組織管理、ロール管理、ファンクション ポイント管理、メニュー管理、権限割り当て、データ権限割り当て、コード生成などの機能が含まれます。
このシステムは Spring Boot2 テクノロジーに基づいており、フロントエンドには Layui2 が使用されます。データベースは例として MySQL を使用しており、理論的にはクロスデータベース プラットフォームです。
Plus は、モノリシック システムやシステム分割に適した Java 高速開発プラットフォームです。マイクロサービス プラットフォームにも変換できます (私も以前に作成しましたが、Plus は単に機能を積み重ねるのではなく、システムのコアに焦点を当てる必要があると感じました)。だから諦めた)
モノリシック システム、小規模システム、マイクロサービスの違いは次のとおりです。
モノリシックシステムは一般的なシステム設計手法であり、ここ10年間で最も重要な設計手法でもあります。単一システムのすべての機能は 1 つのプロジェクト内にあり、war パッケージにパッケージ化されてデプロイされます。これには次の明らかな利点があります。
1. 単体システムの開発方法が簡単 プログラミングを最初から学習すると、開発者は現在のプロジェクトの開発に集中するだけで完成します。
2. 変更が簡単 関数を変更する必要がある場合、プロジェクトのスコープ内でコードを変更するだけで済むため、非常に便利です。
3. テストは簡単です。単一システムをテストするときに他のシステムを考慮する必要はなく、本書の第 2 巻で説明されているさまざまな REST および MQ 呼び出しを回避できます。
4. デプロイも非常に簡単です。他のシステムとの関係を考慮する必要はなく、war パッケージをパッケージ化して Web サーバーにデプロイするだけです。
5. パフォーマンスの拡張が容易で、Nginx を介してアプリケーションを複数のサーバーにデプロイできます。
事業の開発や再構築に伴い、モノリシックなシステムが増えています。巨大なモノリシックなシステムを開発すると、以下のようなデメリットが生じます。
1. 一つのシステムが巨大化し、一つのシステムを理解することがますます困難になる 小さな変更が多岐にわたるため、開発チームは慎重になり、開発スピードがどんどん遅くなる。さらに、大規模な単一システムの起動には 3 分以上かかる場合があります。
2. 複数の機能が同じ単一システム上で開発されるため、テストがますます遅くなります。たとえば、テストをスケジュールして逐次テストする必要があります。
3. 単一システムのテクノロジーをアップグレードしたい場合、コストが非常に高くなります。小規模なシステムであれば、最初に小規模なシステムを選択することができます。単一の大規模システムをアップグレードすることは技術的にほとんど不可能です。
4. 単一システムのすべての機能は同じ JVM 上で実行され、各機能は相互に影響を及ぼします。たとえば、アップロードされた Word 文書のページ数をカウントする機能は、システム全体が一時的に大量の CPU を消費します。統計関数の呼び出しにより利用できなくなり、アニメーションが一時停止する現象が発生します。
したがって、システムを設計する際、システムを複数の個別の小さなシステムやマイクロサービスに分割することを検討するアーキテクトがますます増えています。従来のエンタープライズ アプリケーションの場合は、小さなシステムに分割する方が適切であり、インターネット システムの場合は、マイクロサービスを使用するのがより適切であるためです。
1. 従来の IT システムは基本的に依然としてデータベースを使用しますが、マイクロサービスは 1 つのサービスと 1 つのデータベースを推奨します。
2. 従来の IT システムでは、他のモジュール サービスを呼び出す必要はほとんどありません。従来の IT システムは、ワークフローを通じて他のサブシステムを接続します。電子商取引マイクロサービスは、軽量プロトコルである RPC およびその他の方法を通じて対話します。従来の IT システムは、強力なプロトコルを使用して、SOA および JMS を通じて他のシステム (サブシステム以外) と対話することもできます。
3. マイクロサービスには、マイクロサービス ガバナンス、エラスティック ライブラリなどのシステム インフラストラクチャに対する非常に高い要件があります。この種のことを行うための人的資源と物的リソースを備えているのは電子商取引システムだけであり、従来の IT システムは、たとえ潤沢な資金を持っていたとしても、 、サービスのようなマイクロサービスの機能は当面ありません。
したがって、ほとんどの従来の IT アプリケーションでは、単一の小規模システムを分割することに技術的なリスクはなく、すぐに実装できるアーキテクチャです。以下は、分割後の単一システムの物理アーキテクチャです。
ユーザーにとって、さまざまなメニュー機能にアクセスすると、さまざまなサブシステムが検索され、サービスが提供されます。