スターゲイザー・オーバー・タイム | 時間の経過に伴う貢献者 |
---|---|
GitHub: opengoofy/hippo4j
ギティ: opengoofy/hippo4j
完全なドキュメントと詳細については、ドキュメントを参照してください。
スレッド プールは、プーリングの考え方に基づいてスレッドを管理するツールです。スレッド プールを使用すると、スレッドの作成と破棄のコストが削減され、スレッドの多すぎによるシステム リソースの枯渇を回避できます。同時実行性が高く、大量のタスクを処理するシナリオでは、スレッド プールの使用が不可欠です。
実際にプロジェクトでスレッド プールを使用すると、次のような問題点に遭遇する可能性があると思います。
スレッド プールが任意に定義されているため、スレッド リソースが多すぎるため、サーバーに高負荷がかかります。
スレッド プールのパラメータを評価するのは困難です。ビジネスの同時実行性が高まると、ビジネスは失敗のリスクに直面します。
スレッド プール タスクの実行時間は平均実行サイクルを超えており、開発者には認識されません。
スレッド プール タスクが蓄積されると拒否ポリシーがトリガーされ、既存のビジネスの通常の運用に影響を与えます。
業務上でタイムアウトやサーキットブレーカーなどの問題が発生した場合、監視がないため、問題の原因がスレッドプールにあるのかどうかを判断することができません。
ネイティブ スレッド プールは、ランタイム変数の転送をサポートしていません。たとえば、MDC コンテキストはスレッド プールに遭遇すると GG になります。
正常なシャットダウンを実行できず、プロジェクトのシャットダウン時に多数の実行中のスレッド プール タスクが破棄されました。
スレッド プールの実行中にタスクの実行が停止します。デッドロックが発生したか、時間のかかる操作が実行された可能性がありますが、開始する方法がありません。
次の機能のサポートを提供します。
グローバル コントロール - アプリケーション スレッド プール インスタンスを管理します。
動的変更 - アプリケーションの実行中にスレッド プール パラメータを動的に変更します。これには、コア、スレッドの最大数、ブロック キューの容量、拒否ポリシーなどが含まれますが、これらに限定されません。
通知アラーム - 組み込みの 4 つのアラーム通知戦略、スレッド プール アクティビティ、容量水位、拒否戦略、およびタスクの実行時間が長すぎます。
データ収集 - ログ、組み込みコレクション、Prometheus、InfluxDB、ElasticSearch などを含むがこれらに限定されない、スレッド プール データを収集するための複数の方法をサポートします。
実行監視 - スレッド プールのランタイム データをリアルタイムで表示し、カスタマイズされた時間内でスレッド プールのランタイム データをグラフに表示します。
機能拡張 - プロジェクトが閉じられているときのスレッド プールのタスク配信コンテキストをサポートし、指定された時間内にスレッド プールがタスクを完了するのを待機します。
複数のモード - 2 つの組み込み使用モード: 構成センターに依存するモードとミドルウェアに依存しないモード。
コンテナ管理 - Tomcat、Jetty、Undertow コンテナ スレッド プールのランタイムの表示とスレッド番号の変更。
フレームワークの適応 - Dubbo、Hystrix、RabbitMQ、RocketMQ およびその他のコンシューマ スレッド プールのランタイム データの表示とスレッド番号の変更。
変更レビュー - 一般ユーザーによるさまざまなユーザー ロールを提供します。変更を有効にする前に、管理者ユーザーのレビューが必要です。
動的プラグイン - 複数のスレッド プール プラグインが組み込まれており、ユーザー定義のプラグインとランタイム拡張機能をサポートします。
マルチバージョンへの適応 - 実際のテスト後、クライアント SpringBoot 1.5.x => 2.7.5 バージョンがサポートされました (上位バージョンはテストされていません)。
ローカルでのデモンストレーションを目的とした場合は、「クイック スタート」を参照してください。
デモ環境: http://console.hippo4j.cn/index.html
より多くの関連企業が登録アドレスに登録することは、製品のプロモーションのみを目的としています。
オープンソースは簡単ではありません。右上隅にあるスターをクリックして、オープンソースを奨励してください。
Hippo4j の更新記事や共有情報をリアルタイムでフォローしたい場合は、私の公式アカウントをフォローしてください。
使用中に質問がある場合、またはプロジェクトについての提案がある場合は、公式アカウントをフォローして次のように返信してください: グループに参加して、 1000+
同じ考えを持つ友達とコミュニケーションやディスカッションを行ってください。
あなたの会社が Hippo4j シナリオを使用していない場合は、主に次の理由から、プロジェクトの基礎となる原則を読むことをお勧めします。
コードの品質とその後の拡張動作を改善するために、複数の設計パターンを使用して、高い凝集性と低い結合性を実現します。
フレームワークの最下層は Spring フレームワークに依存して実行され、ソース コード内で多数の Spring 関連関数を使用します。
JUC 同時実行パッケージのさまざまなツールを使用して、マルチスレッド操作の安全性を確保し、実際のシナリオを通じて同時プログラミングを理解します。
主流のオープン ソース フレームワークである Nacos と Eureka から学び、軽量の構成センターと登録センターの機能を実装します。
RPC フレームワーク実装をカスタマイズし、Netty をカプセル化して、クライアント/サーバー ネットワーク通信の最適化を完了します。
CheckStyle や Spotless などのプラグインを通じてコード記述を標準化し、高品質のコード動作とコード スタイルを保証します。
[Sa-Token]: 認証をシンプルかつエレガントにする軽量の Java 権限認証フレームワークです。
[HertzBeat]: 使いやすくフレンドリーなクラウド監視システム、エージェント不要、強力なカスタム監視機能。
[JavaGuide]: ほとんどの Java プログラマーが習得する必要がある中心的な知識をカバーするガイド。
[ toBeBetterJavaer ]: わかりやすく、ユーモアのある Java 学習ガイド。
[Jpom]: シンプルかつ軽量で低侵入型のオンライン構築、自動展開、日常の運用と保守、およびプロジェクト監視ソフトウェア。
[12306]: 完全な模倣性の高い 12306 ユーザー + チケット取得 + 注文 + 支払いサービスで、学生が就職プロジェクトに集中できるようにします。
[CongoMall]: モール ビジネスとインフラストラクチャを含む DDD ドメイン駆動モデルに基づいて開発されたエンタープライズ レベルのモール。
プロジェクトに貢献したすべての開発者に感謝します。投稿に興味がある場合は、優れた創刊号を参照してください。
Hippo4j コミュニティは Jetbrains から複数のライセンスを受け取り、プロジェクトに積極的な開発者を割り当てています。Jetbrains のオープンソース コミュニティのサポートに非常に感謝しています。