高速、軽量、クラウドネイティブのマイクロサービス フレームワーク。
スタックオーバーフロー | Googleグループ |ギッターチャット |サブレディット | Youtubeチャンネル |ドキュメント |貢献ガイド |
ライトとは、軽量で超高速であることを意味し、クラウドネイティブのデプロイメントのために最新の Java SE を使用してプログラミングする方法を明らかにします。
私は 2000 年初頭から Java EE プラットフォームに取り組んでおり、パフォーマンスと生産性の問題に悩まされていました。 2014 年、私は IT 業界がモノリシックからマイクロサービスへ、そしてオンプレミスのデータセンターからパブリック クラウドへ移行していることに気づきました。
アプリケーションの制作コストを削減するには、Java でのメモリ使用量が小さく、高スループット、低遅延の軽量プラットフォームを見つける必要があります。 Java EE と Spring/Spring Boot は重すぎて検討できません。他の軽量 Java プラットフォームはすべて、ビジネス ロジックと技術横断的な問題との分離に関してさまざまな問題を抱えています。さらに、それらはクラウドネイティブでも、コンテナ/クラウド用に設計されたものでもありません。
適切なものが見つからなかったので、原則に従って Undertow HTTP コア上にオープンソース プラットフォーム light-4j を構築し始めました。私のアプローチは非常に過激であり、大企業の製品に対するものであるため、オンラインおよびオフラインで常に一部の組織から攻撃を受けてきました。しかし、私は私のアプローチが将来の方向性であると強く確信しており、開発を継続するために全力を尽くしています。現在、多くの企業が本番環境で light-4j を使用しており、非常に肯定的なフィードバックが得られています。それは、フレームワークに専念し、プラットフォームを拡張してエコシステムを構築することにさらに励みになります。
このプラットフォームの恩恵を受けるユーザーの場合は、私がオープンソース プロジェクトに全力を注ぐことができるように、あなたが私のスポンサーになっていただけます。
これは、最も人気のあるマイクロサービス プラットフォームである Spring Boot に組み込まれた Tomcat よりも 44 倍高速で、メモリの使用量はわずか 1/5 です。 Spring Boot および他のマイクロサービス フレームワークと比較したベンチマーク結果を次に示します。ここでは、サードパーティと他の Web フレームワークとの比較を示します。
OpenAPI 仕様を設計し、そこからサービスを生成します。この仕様は、セキュリティ検証を推進し、実行時に検証を要求するためのフレームワークの一部でもあります。
ユニット/エンドツーエンドのテスト スタブは、高品質の製品に対するテスト駆動のアプローチを可能にするために生成されます。
スタンドアロン アプリケーションと同様に IDE 内でデバッグできるため、開発者の生産性が向上します。
Dockerfile および DevOps サポート ファイルは、Docker 化と運用環境への継続的統合をサポートするために生成されます。
オープンソースのフレームワークはすべて Java で構築されており、内部では Nodejs フレームワークに取り組んでいます。将来的には、Golang フレームワークも提供する可能性があり、それらはすべて同じエコシステムと市場を共有することになります。
セキュリティ用の OAuth2 サーバーと、運用監視と管理用のポータル。ポータルは、クライアントとサービスを結び付けるマーケットプレイスでもあります。
プロジェクトを開始するには 2 つの方法があります。
light-codegen を使用して、動作するプロジェクトを生成できます。現在、light-rest-4j、light-graphql-4j、light-hybrid-server-4j、および light-hybrid-service-4j をサポートしています。ライトイベントコードジェネレーターが登場します。
light-codegen プロジェクトの README.md では、ジェネレーターを使用する 4 つの方法が例とともに説明されています。
プロジェクトを開始するもう 1 つの方法は、light-example-4j からコピーすることです。
これらの例の説明を見つけることができます
また、いくつかのチュートリアルもあります
IDE から実行/デバッグするには、メイン クラス「com.networknt.server.Server」を使用して Java アプリケーションを構成する必要があります。作業ディレクトリはプロジェクト フォルダーです。コンテナはなく、スタンドアロンの Java アプリケーションだけを操作しています。
メインクラスが com.networknt.server.Server で、作業ディレクトリがプロジェクトのルート フォルダーである Java アプリケーションを作成します。 POJO アプリケーションと同じようにサーバーをデバッグできます。
mvn 実行:実行
java -jar target/demo-0.1.0.jar
Ctrl+C を使用してサーバーを強制終了できますが、運用環境では次のコマンドを使用します。
kill -s TERM <pid>
サーバーにはシャットダウン フックがあり、上記のコマンドを使用してクリーンアップできます。たとえば、処理中のリクエストを完了し、データベース接続を閉じます。サービス レジストリと検出が使用されている場合、サーバーはシャットダウン イベントをサービス レジストリに送信し、すべてのクライアントがローカル キャッシュを更新してからシャットダウンするまで 30 秒間リクエストの処理を続けます。 。
Light-4j およびすべての light-*-4j フレームワークは、Apache 2.0 ライセンスの下で利用できます。詳細については、LICENSE ファイルを参照してください。