エンタープライズ アプリケーションのシナリオでは、定期的なデータ処理ジョブ、ファイル処理ジョブ、レポート生成ジョブなどのスケジュールされたジョブが通常実行されます。これらのジョブは、ジョブ構成と実行効率に高い要件があります。Alibaba Cloud SchedulerX とオープンソースの XXL-JOB は、強力なスケジューリング機能を提供します。このトピックでは、SchedulerX と XXL-JOB に関する基本情報を説明します。ビジネス要件に基づいて適切なタスクスケジューリングバージョンを選択するのに役立ちます。
タスクスケジューリングの SchedulerX または XXL-JOB の選択方法
SchedulerX は、Alibaba Cloud の分散ジョブスケジューリング プラットフォームです。SchedulerX は、独自のプログラミング フレームワークと通信プロトコルを使用し、さまざまなタイプのジョブをサポートしています。SchedulerX は、SDK を置き換えることで、主要なオープンソースのジョブスケジューリング クライアントと互換性があります。XXL-JOB は SchedulerX 上に構築されており、オープンソースの通信プロトコルと互換性があるため、変更を加えることなく XXL-JOB クライアントが提供するソリューションを管理できます。SchedulerX と XXL-JOB は、次の点で異なります。
アクセス方法: SchedulerX は、クライアント SDK を変更することで、オープンソースの XXL-JOB と互換性があります。タスクスケジューリングの XXL-JOB の場合は、コードを変更する必要はなく、アプリケーションの再デプロイ時に -D パラメーターを使用してアクセス構成を置き換えるだけです。
課金方法: SchedulerX はサーバーレスバージョンであり、ジョブ数とジョブのスケジュール回数に基づいて課金されます。XXL-JOB はインスタンスバージョンであり、要求されたリソースの量に基づいて課金されます。
インターネットアクセス: アプリケーションがインターネット経由でデプロイされている場合は、SchedulerX を選択する必要があります。XXL-JOB はインターネットアクセスをサポートしていません。
Java または Go 以外のアプリケーション: Java または Go で開発されていないアプリケーションの場合は、SchedulerX を選択する必要があります。XXL-JOB は、Java または Go 用の SDK に基づくアクセスのみをサポートしています。SchedulerX は、スクリプトジョブ、HTTP ジョブ、Kubernetes ジョブもサポートしています。
メリット
高可用性: タスクスケジューリングは、高可用性アーキテクチャと複数レプリカ メカニズムを使用します。タスクスケジューリングは、災害復旧訓練と Alibaba グループの独身の日などの実際のビジネスシナリオの両方で堅牢性が証明されており、ノード障害シナリオでジョブの自動スイッチオーバーと回復を実行できます。
高パフォーマンス: タスクスケジューリングを使用すると、数秒でジョブをスケジュールし、軽量の分散コンピューティング モデルを提供して、ほぼリアルタイムでバッチ処理を実行できます。
セキュリティ保護: タスクスケジューリングは、多層セキュリティ保護とマルチテナント分離メカニズムを提供します。タスクスケジューリングは、Alibaba Cloud の多層セキュリティ保護メカニズムに基づく権限制御をサポートしており、悪意のある攻撃から保護します。
O&M 不要で低コスト: マシンと手動の O&M コストは発生しません。タスクスケジューリングへのアクセスは簡単で便利です。
すぐに使える: タスクスケジューリングは、オープンソースの XXL-JOB 2.x のすべてのバージョンと完全に互換性があります。タスクスケジューリングは、セルフマネージド XXL-JOB ジョブを数回クリックするだけでタスクスケジューリングに移行するための移行ツールを提供します。コードを変更することなく、スムーズに移行を実行できます。
オープンソース サービスに基づく機能強化: Alibaba Cloud SchedulerX はカーネルとして使用され、オープンソース サービスよりも強力な時間ベースのスケジューリング、速度制限、および O&M 操作を提供します。
機能
[MSE コンソール] でタスクスケジューリングを使用して、ジョブに対する操作を実行できます。たとえば、時間ベースのスケジューリング ジョブを管理したり、ジョブの履歴実行レコードと操作ログをクエリしたりできます。
SchedulerX
SchedulerX は、次の機能を提供します。
スケジューリング ジョブの管理: 時間ベースのジョブ、遅延ジョブ、定期ジョブなど、さまざまなタイプのジョブをサポートします。
ワークフロー オーケストレーション: ジョブの依存関係管理を簡素化するために、視覚的なワークフロー オーケストレーションをサポートします。
さまざまなタイプのスケジューリング ジョブのサポート: 時間ベースのスケジューリングとワークフロー スケジューリングのために、さまざまなプログラミング言語に基づく複数のジョブタイプをサポートします。
Java ジョブ
Java 用の SchedulerX SDK を使用して SchedulerX に接続されている Java アプリケーションの Java ジョブを作成して、Java アプリケーションの特定のメソッドを実行できます。詳細については、「Java ジョブ」をご参照ください。
スクリプトジョブ
スクリプトをオンラインで記述して実行できます。シェルスクリプトや Python スクリプトなどのスクリプトがサポートされています。詳細については、「スクリプトジョブ」をご参照ください。
Go ジョブ
Go 用の SchedulerX SDK を使用して SchedulerX に接続されている Go アプリケーションの Go ジョブを作成して実行できます。詳細については、「Golang ジョブ」をご参照ください。
XXL-JOB ジョブ
SchedulerX は XXL-JOB ジョブと互換性があります。SchedulerX を使用して、ジョブのコードを変更することなく XXL-JOB ジョブを管理できます。詳細については、「XXL-JOB ジョブ」をご参照ください。
DataWorks ジョブ
SchedulerX は Alibaba Cloud DataWorks と統合されています。DataWorks ジョブをワークフローに導入して、DataWorks ジョブと他のジョブを一緒にオーケストレートできます。詳細については、「DataWorks ジョブ」をご参照ください。
Spring ジョブ
SchedulerX は、Spring ジョブの @Scheduled アノテーションと互換性があります。SchedulerX を使用して、ジョブのコードを変更することなく Spring ジョブを管理できます。詳細については、「Spring ジョブ」をご参照ください。
HTTP ジョブ
サーバーレスモードの HTTP ジョブ: クライアントをクラスタに接続する必要はありません。パブリック ドメイン名を使用してジョブをスケジュールできます。詳細については、「HTTP ジョブ (サーバーレス)」をご参照ください。
エージェントモードの HTTP ジョブ: SchedulerX エージェントを VPC 接続クラスタに接続する必要があります。プライベート ドメイン名または IP アドレスを使用してジョブをスケジュールできます。
Kubernetes ジョブ
SchedulerX は Kubernetes スクリプトジョブをサポートし、ネイティブ Kubernetes ジョブおよび CRON ジョブと互換性があります。詳細については、「Kubernetes ジョブ」をご参照ください。
分散コンピューティング: シンプルで使いやすい分散プログラミング モデルを提供し、大量のデータのバッチ処理を実行できます。
ジョブの監視とアラート: 包括的なメトリックと幅広いアラート方法を提供し、O&M 担当者がオンラインの問題を迅速に特定して解決できるようにします。
XXL-JOB
XXL-JOB は、次の機能をサポートしています。
ジョブスケジューリング: ジョブの作成、管理、スケジュールができます。
速度制限: ジョブの同時実行制御とアプリケーションレベルの速度制限を実行できます。単一ジョブに対して並列で実行できるインスタンスの最大数を指定し、単一アプリケーションに対して並列で実行されるジョブの数を制御できます。
クラウドへの移行: セルフマネージド XXL-JOB プラットフォームから MSE の XXL-JOB にすべてのジョブをスムーズに移行するための移行ツールを提供します。
ジョブの監視とアラート: 包括的なメトリックとさまざまなアラート方法を提供します。これにより、O&M エンジニアはオンラインの問題を特定して解決できます。
タスクスケジューリングの使用を開始する
クライアントを SchedulerX に接続する方法の詳細については、「SchedulerX にエージェントを接続する」をご参照ください。
SchedulerX の使用を開始する方法の詳細については、「Cron ジョブを使用してホストでシェルスクリプトを実行する」をご参照ください。
アプリケーションを XXL-JOB に接続する方法の詳細については、「10 分で始める」をご参照ください。
アプリケーションを開発し、タスクスケジューリングの XXL-JOB に接続する方法の詳細については、「Java、Go、または Python アプリケーションを作成し、XXL-JOB に接続する」をご参照ください。
参考資料
タスクスケジューリングの XXL-JOB のエディション選択と課金について詳しくは、「タスクスケジューリング」をご参照ください。
タスクスケジューリングの XXL-JOB とオープンソースの XXL-JOB の比較について詳しくは、「MSE XXL-JOB とオープンソース XXL-JOB の比較」をご参照ください。
SchedulerX の課金について詳しくは、「SchedulerX サーバーレス インスタンスの課金説明」をご参照ください。
SchedulerX とオープンソース ソリューションの比較について詳しくは、「MSE SchedulerX とオープンソースのセルフマネージド ソリューションの比較」をご参照ください。