DolphinScheduler によるマスターフォールトトレラント処理フローのソースコード分析

Apache DolphinSchedulerをフォローするには、上の青い文字をクリックしてください 

Apache DolphinScheduler (孵化)、「DS」と呼ばれ、中国語名は「ドルフィン スケジューリング」です (イルカは賢く、人間的で、左脳と右脳が互いにシフトを切り替えることができるため、寝る必要はありません)一生)。DolphinScheduler は、その名前のように、「すぐに使える」柔軟で使いやすいビッグ データ タスク スケジューリング システムを目指しています。

公式サイトアドレス:https://dolphinscheduler.apache.org/

今日私が皆さんに紹介するのは、DolphinScheduler ソース コード分析のマスター フォールト トレラント処理フローです。

マスター フォールト トレラント プロセスは次のとおりです

1. ZooKeeper はマスター ノードがダウンしていることを検出すると、フォールト トレランスのために他のマスターに通知します。

2. 通知を受信したマスターは分散ロックを通じてフォールト トレラント操作を「取得」し、ロックを取得したマスターはフォールト トレラント処理の実行を開始します。

3. フォールト トレラント プロセスは次のとおりです。

    3.1 オフライン マスター アドレスと実行中のワークフロー状態配列を通じて、フォールト トレラントである必要がある ProcessInstance のリストを取得します。

    3.2 リストを参照して各ワークフローを処理します。

        3.2.1 ワークフローのホスト (つまり、マスターがスケジュールを担当する) を空に設定し、データベースに更新します。

        3.2.2 RECOVER_TOLERANCE_FAULT_PROCESS タイプのコマンドを作成し、コマンド テーブルに挿入する

マスター スケジュール ワークフローの基本プロセス:

MasterSchedulerService スレッドでは、分散ロックの取得を試みます。ロックを取得した後、データベースに移動して、実行するコマンドを取得します。フォールト トレラント コマンドがテーブルに正常に挿入されると、次の方法で取得されます。以下の操作で任意のマスターを実行して処理します。

上記は、DolphinScheduler のマスター フォールト トレラント処理についての私の分析です。

知らせ

スケーラビリティとパフォーマンスの向上のため、DolphinScheduler のリファクタリングに関するディスカッションは来週金曜日の夜 19:00 に開始されます。興味のあるパートナーは参加を歓迎します。

知ってますか?

DolphinScheduler コミュニティに参加するには、ドキュメント、翻訳、Q&A、テスト、コード、説教などを含むさまざまな方法があり、コミュニティではドキュメントへの貢献が最優先されます。さらに、さまざまな実用的な記事も大歓迎です。DolphinScheduler オープン ソースコミュニティは皆様のご参加を心よりお待ちしております。

最初の PR (ドキュメント、コード) を投稿する また、それが簡単であることを望んでいますが、新人が思いついてすぐに数十のファイルが変更された PR を投稿した場合、レビューに参加しているパートナーにどれほどの精神的ダメージが生じるかを想像してみてください。 ????

ドキュメントの github アドレス: https://github.com/apache/incubator-dolphinscheduler-website

もちろん、コーディングが好きなら、コミュニティは「コードを見せて」も歓迎します。

原文をクリックするとすぐにアクセスできます 

DolphinSchedulerのgithub倉庫で一緒に遊んで、先にスターコレクションに来るのも良いですね〜

おすすめ

転載: blog.csdn.net/DolphinScheduler/article/details/109882474