実際の開発では、定期的にバッチを実行し、1 日に 1 回調整操作を実行する必要があるシナリオに遭遇することがよくあります。通常、Spring Timing Framework、ScheduledExecutorService などの時間指定タスクが使用されます。ただし、これらは単一のマシンにのみ適しています。複数のノードがある場合、スケジュールされたタスクは繰り返し実行されます。現時点では、問題を解決するには分散スケジュールされたタスクを使用する必要があります。分散スケジュールタスクは、上記の問題を解決するだけでなく、処理効率を向上させるシャーディング、分散スケジュールと調整、弾力的な拡張と縮小、フェイルオーバーなどの利点も提供します。
1. 一般的な分散スケジュール タスクとは何ですか? オープンソースの分散時間指定タスクは数多くあります。よく使われるものをいくつか紹介します。
その中で、elastic-job(E-job)とxxl-job(X-job)がより広く使用されています。ここでは、この 2 つの技術的な選択については詳しく説明しません。以下に、参考までに両者の総合的な比較を示します。実際のビジネステクノロジーのシナリオに基づいて選択できます。 2. エラスティックジョブシャーディング戦略とは何ですか? 実際のシナリオに基づいて適切なジョブシャーディング戦略を選択し、シャーディング処理を実行すると、タスクの実行効率が向上します。以下は elastic-job が提供するシャーディング戦略です。
1. 平均割り当てジョブシャーディング戦略 com.dangdang.ddframe.job.lite.api.strategy.impl.AverageAllocationJobShardingStrategy 戦略の説明: 平均分散アルゴリズムに基づくシャーディング戦略も、デフォルトのシャーディング戦略です。サーバーの数がジョブの数で割り切れる場合、ジョブの数は均等に分散されます。 フラグメントを均等に分割できない場合、均等に分割できない余分なフラグメントは、シーケンス番号(先頭の IP アドレス)が小さいサーバーに順番に追加されます。 デメリット: 平均的なシャーディング戦略。シャードの数がジョブ サーバーの数より少ない場合、ジョブは常に IP アドレスが早いサーバーに割り当てられ、IP アドレスが遅いサーバーはアイドル状態になります。 2. OdevitySortByNameJobShardingStrategy シャーディング戦略 com.dangdang.ddframe.job.lite.api.strategy.impl.OdevitySortByNameJobShardingStrategy 戦略の説明: この戦略の中心的な考え方は、IP 昇順/降順アルゴリズムを使用して、ジョブ名のハッシュ値の奇数または偶数に基づいてシャーディングを実装することです。ジョブ名のハッシュ値が奇数の場合、IP は昇順になります。ジョブ名のハッシュ値が偶数の場合、IP は降順になります。この方法は、異なるジョブ シャードの負荷を異なるサーバーに分散させるために使用されます。 ジョブ名のハッシュ値が偶数の場合、IP 降順アルゴリズムを使用してシャーディングが実装され、平均分散アルゴリズムの使用時に後の IP アドレスを持つアイドル サーバーの問題を回避します。 内部では平均化アルゴリズムが使用されます。 3. RotateServerByNameJobShardingStrategy シャーディング戦略 com.dangdang.ddframe.job.lite.api.strategy.impl.RotateServerByNameJobShardingStrategy 戦略の説明: シャーディング戦略では、ジョブ名のハッシュ値に応じてサーバー リストがローテーションされ、平均シャーディングも内部的に使用されます。 、 4. カスタムシャーディング戦略 JobShardingStrategy インターフェースを実装し、シャーディング メソッドを実装することで、ニーズに応じて独自のシャーディング戦略をカスタマイズできます。以下は、Spring でカスタム割り当て戦略を切り替えるための設定方法です。 結論 elastic-job によって提供される 3 つのシャーディング戦略は、通常、平均シャーディング アルゴリズムを使用しますが、インスタンスの並べ替え方法は異なります。独自のニーズに応じてカスタマイズできるカスタム シャーディング戦略をサポートします。実際のプロジェクト アプリケーションでは、平均シャーディング戦略がよく使用されます。 |
<<: コンテナとKubernetesがあらゆるものを実行できる可能性を秘めている理由
>>: クラウドネイティブ ストレージ システムはどのような条件を満たす必要がありますか?
昨今、人々の生活水準は向上し、衣食住の問題は基本的に解決され、人々の追求は健康的な食生活へと変わりま...
みなさんこんにちは。梁磊です。SEOデータ風向計は皆さんもよくご存知でしょう。SEOデータ風向計を分...
数十のハイエンド IPLC 回線と、従来の US cn2 gia などの VPS を主に提供する h...
ご存知のとおり、クラウド コンピューティングが登場する前は、データ センターの構築と運用は容易ではあ...
Java仮想マシンの概念Java 仮想マシン (JVM) は、実際のコンピュータと同様に、シミュレー...
Zenlayerは、アジアの最も重要な金融センターである香港に独自のデータセンターを構え、香港サーバ...
2021年浦江イノベーションフォーラム科学技術イノベーション青年サミットが6月2日に上海で開催された...
OpenNebula は、最新バージョン 5 シリーズの 7 番目のアップデートであるバージョン 5...
[[347741]]始める前に、Kafka の概念をいくつか思い出させてください。 a.ブローカー:...
原題: JD.comとTencentの結婚は想像ほど甘くない: JD.comはモバイルeコマースで台...
メディアの報道によると、アマゾンのクラウドプラットフォームは2019年に一連のDDoS攻撃を受けたが...
18 年の歴史を持つホスティング会社 prometeus.net は、基本的にサーバーとして使用でき...
1994年、中国は初めてインターネットに接続し、同年に世界初のインターネット広告が公開されました。 ...
最近、Baidu のアルゴリズムが更新されました。残念ながら、私の小さなウェブサイトの 1 つが B...
著者|プラットフォーム事業研究開発部・応用事業製品研究開発部 バベルチームの朱志国、王志群、趙漢、戴...