ホームページ Java &#&チュートリアル Spring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法

Spring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法

Jun 22, 2023 pm 05:54 PM
spring cloud マイクロサービスアーキテクチャ タスクスケジューリングシステム

インターネットの発展に伴い、アプリケーションの信頼性、拡張性、保守性、その他の機能を向上させるために、マイクロサービス アーキテクチャを採用して分散システムを構築する企業が増えています。マイクロサービス アーキテクチャでは、タスク スケジューリング システムは非常に重要なコンポーネントであり、一部の非同期タスクを定期的に実行したり、他のマイクロサービス インターフェイスを呼び出したりするために使用できます。

Spring Cloud は、Spring Cloud Netflix、Spring Cloud Config、Spring Cloud Stream、Spring Cloud Security などの非常に強力なツールとフレームワークを提供するオープンソースのマイクロサービス フレームワークです。その中でも、Spring Cloud Netflix は非常に人気のあるマイクロサービス フレームワークであり、サービスの登録と検出、クライアントの負荷分散、構成管理、サーキット ブレーカー、API ゲートウェイなど、いくつかのコア コンポーネントと拡張機能を提供します。

この記事では、Spring Cloud を使用してタスク スケジューリング システムを開発する方法を紹介します。主に次の内容が含まれます。

  1. タスク スケジューリング システムの要件分析
  2. Spring Scheduler の使用法によるタスク スケジューリングの実装
  3. タスク スケジューリング システムを Spring Cloud マイクロサービス アーキテクチャに入れる

1. タスク スケジューリング システムの要件分析

マイクロサービス アーキテクチャでは、タスク スケジューリング システムは、次の機能をサポートする必要があります。

  1. は、指定された時点または瞬間にタスクの実行をトリガーできます。
  2. 固定時間間隔または定期的な時間間隔でのタスクの実行のトリガーをサポートします。
  3. タスク実行失敗後の再試行をサポートします。
  4. タスクの非同期実行をサポートし、メイン プログラムの実行には影響しません。
  5. タスクの動的な追加と削除をサポートします。

2. Spring Scheduler を使用してタスク スケジューリングを実装する

Spring Scheduler は Spring フレームワークのモジュールであり、タスク スケジューリングを簡単に実装できる軽量なタスク スケジューリング フレームワークを提供します。

  1. Spring Scheduler の依存関係を追加

Spring Boot プロジェクトの pom.xml ファイルに Spring Scheduler の依存関係を追加します:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter</artifactId>
     <version>2.4.3</version>
 </dependency>
ログイン後にコピー
  1. タスクの作成実行クラス

Runnable インターフェイスから継承したタスク実行クラスを作成して、特定のタスク ロジックを実装します。

@Component
public class JobTask implements Runnable {
 
     @Override
     public void run() {
         System.out.println("running job...");
     }
 }
ログイン後にコピー
  1. タスク スケジューリング構成の追加

タスク スケジューリング構成クラスを Spring Boot プロジェクトに追加して、特定のタスク スケジューリング戦略と実行されるタスクを構成します。

@Configuration
@EnableScheduling
public class ScheduleConfig {
 
     @Autowired
     private JobTask jobTask;
 
     //在每分钟的3秒和6秒执行一次
     @Scheduled(cron = "3-6 * * * * ?")
     public void scheduleJob1() {
         jobTask.run();
     }
 
     //在间隔5秒后执行第一次,之后每隔10秒执行一次
     @Scheduled(initialDelay = 5000, fixedRate = 10000)
     public void scheduleJob2() {
         jobTask.run();
     }
 }
ログイン後にコピー
  1. テスト タスク スケジュール機能

Spring Boot アプリケーションを開始すると、コンソール出力が表示され、指定された時間間隔と周期に従ってタスクが実行されます。 。タスクの実行戦略を変更する場合は、構成クラスを変更するだけで済みます。

3. タスク スケジューリング システムを Spring Cloud マイクロサービス アーキテクチャに配置します

  1. タスク スケジューリング システムをサービス登録センターに登録します

タスク スケジューリング内システム アプリケーションでは、Spring Cloud の Eureka や Consul などのサービス登録および検出コンポーネントを使用して、タスク スケジューリング システムをサービス登録センターに登録します。

spring:
     application:
          name: task-scheduler
 
 eureka:
     instance:
          hostname: localhost
     client:
          service-url:
               defaultZone: http://localhost:8761/eureka/
ログイン後にコピー
  1. ゲートウェイでルーティング ルールを設定する

Spring Cloud Gateway や Zuul などの API ゲートウェイを使用して、タスク スケジューリング システムを他のマイクロサービスに公開します。

spring:
     application:
          name: api-gateway
          
 server:
     port: 8080
 
 eureka:
     instance:
          hostname: localhost
     client:
          service-url:
               defaultZone: http://localhost:8761/eureka/
 
 gateway:
     routes:
          - id: task-scheduler
               uri: lb://task-scheduler
               predicates:
                    - Path=/schedule/**
ログイン後にコピー
  1. マイクロサービスでタスク スケジューリング システムを呼び出す

他のマイクロサービスでは、Feign や RestTemplate などのツールを使用して、タスク スケジューリング システムによって公開されている RESTful API を呼び出します。非同期タスクを実行したり、タスクの実行をトリガーしたりします。

@Service
 public class OrderService {
 
     @Autowired
     private TaskSchedulerClient taskSchedulerClient;
     
     public void createOrder(Order order) {
         //... 创建订单逻辑
         taskSchedulerClient.scheduleJob();
     }
 }
ログイン後にコピー

4.概要

この記事では、Spring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法を紹介します。これには、主に Spring Scheduler を使用したタスク スケジューリングの実装とタスク スケジューリング システムの配置が含まれます。 Spring Cloud のマイクロサービス アーキテクチャに移行します。マイクロサービス アーキテクチャを導入する開発者が、より簡単に信頼性と拡張性の高い分散システムを構築できるようになる一助になれば幸いです。

以上がSpring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Spring Cloud のソースコード分析: パート 1 Spring Cloud のソースコード分析: パート 1 Aug 15, 2023 pm 04:04 PM

個人的には、ソースコードを読むには使えることが前提だと思っています、慣れてしまえば他の人がどのように実装したか推測できるようになりますし、関連する公式ドキュメントがある場合は公式ドキュメントを読みましょう。

PHP マイクロサービス アーキテクチャの課題と機会: 未知の領域の探索 PHP マイクロサービス アーキテクチャの課題と機会: 未知の領域の探索 Feb 19, 2024 pm 07:12 PM

PHP マイクロサービス アーキテクチャは、複雑なアプリケーションを構築し、高いスケーラビリティと可用性を実現するための一般的な方法となっています。ただし、マイクロサービスの導入には、特有の課題と機会も伴います。この記事では、開発者が未知の領域を探索する際に情報に基づいた意思決定を行えるように、PHP マイクロサービス アーキテクチャのこれらの側面を詳しく説明します。分散システムの複雑さへの挑戦: マイクロサービス アーキテクチャはアプリケーションを疎結合サービスに分解するため、分散システム固有の複雑さが増大します。たとえば、サービス間の通信、障害処理、ネットワーク遅延はすべて考慮すべき要素になります。サービス ガバナンス: 多数のマイクロサービスを管理するには、これらのサービスを検出、登録、ルーティング、管理するメカニズムが必要です。これにはサービス ガバナンス フレームワークの構築と維持が含まれますが、これにはリソースが大量に消費される可能性があります。トラブルシューティング: マイクロサービス内

Java を使用して Spring Cloud に基づくマイクロサービス アーキテクチャを開発する方法 Alibaba Java を使用して Spring Cloud に基づくマイクロサービス アーキテクチャを開発する方法 Alibaba Sep 20, 2023 am 11:46 AM

Java を使用して Spring Cloud Alibaba に基づいたマイクロサービス アーキテクチャを開発する方法. マイクロサービス アーキテクチャは、現代のソフトウェア開発の主流アーキテクチャの 1 つになっています. 複雑なシステムを複数の小さな独立したサービスに分割し、各サービスは独立させることができます. デプロイ、スケールすることができますそして管理します。 SpringCloudAlibaba は SpringCloud に基づくオープンソース プロジェクトであり、マイクロサービス アーキテクチャを迅速に構築するためのツールとコンポーネントのセットを開発者に提供します。この記事ではその方法を紹介します

Java を使用して Spring Cloud Kubernetes に基づくコンテナ オーケストレーション アプリケーションを開発する方法 Java を使用して Spring Cloud Kubernetes に基づくコンテナ オーケストレーション アプリケーションを開発する方法 Sep 20, 2023 am 11:15 AM

Java を使用して Spring Cloud Kubernetes に基づいたコンテナ オーケストレーション アプリケーションを開発する方法 コンテナ テクノロジの開発と広範な適用に伴い、コンテナ オーケストレーション ツールは開発者にとって不可欠な部分になりました。 Kubernetes は最も人気のあるコンテナ オーケストレーション ツールの 1 つとして業界標準になっています。この状況において、Spring Cloud と Kubernetes を組み合わせることで、コンテナ オーケストレーションに基づいたアプリケーションを簡単に開発できます。この記事で詳しく紹介します

マイクロサービス アーキテクチャに最適な PHP フレームワーク: パフォーマンスと効率性 マイクロサービス アーキテクチャに最適な PHP フレームワーク: パフォーマンスと効率性 Jun 03, 2024 pm 08:27 PM

最優秀 PHP マイクロサービス フレームワーク: Symfony: 柔軟性、パフォーマンス、スケーラビリティを備え、マイクロサービスを構築するためのコンポーネント スイートを提供します。 Laravel: 効率とテスト容易性に重点を置き、クリーンな API インターフェイスを提供し、ステートレス サービスをサポートします。スリム: ミニマリストで高速、シンプルなルーティング システムとオプションのミッドボディ ビルダーを提供し、高性能 API の構築に適しています。

高性能マイクロサービス アーキテクチャの構築: スウール開発機能のベスト プラクティス 高性能マイクロサービス アーキテクチャの構築: スウール開発機能のベスト プラクティス Aug 05, 2023 pm 08:25 PM

高性能マイクロサービス アーキテクチャの構築: Swoole 開発機能のベスト プラクティス インターネットとモバイル インターネットの急速な発展に伴い、多くの企業で高性能マイクロサービス アーキテクチャが必要になりました。高性能 PHP 拡張機能として、Swoole は非同期、コルーチン、その他の機能を提供できるため、高性能のマイクロサービス アーキテクチャを構築するのに最適です。この記事では、Swoole を使用して高パフォーマンスのマイクロサービス アーキテクチャを開発する方法を紹介し、対応するコード例を示します。 Swoole 拡張機能のインストールと構成 まず、サーバーに Swool をインストールする必要があります。

マイクロサービス アーキテクチャでは、Java フレームワークはサービス間のトランザクションの問題をどのように解決しますか? マイクロサービス アーキテクチャでは、Java フレームワークはサービス間のトランザクションの問題をどのように解決しますか? Jun 04, 2024 am 10:46 AM

Java フレームワークは、マイクロサービス アーキテクチャにおけるクロスサービス トランザクションの問題を解決するための分散トランザクション管理機能を提供します。これには、以下が含まれます。 AtomikosTransactionsPlatform: さまざまなデータ ソースからのトランザクションを調整し、XA プロトコルをサポートします。 SpringCloudSleuth: サービス間トレース機能を提供し、分散トランザクション管理フレームワークと統合してトレーサビリティを実現できます。 SagaPattern: トランザクションをローカル トランザクションに分解し、コーディネーター サービスを通じて最終的な整合性を確保します。

Javaの機能開発の今後の動向をマイクロサービスアーキテクチャの視点から見る Javaの機能開発の今後の動向をマイクロサービスアーキテクチャの視点から見る Sep 18, 2023 am 10:52 AM

マイクロサービス アーキテクチャの観点から Java 機能開発の今後の動向を考える 要約: 近年、クラウド コンピューティングとビッグ データ テクノロジの急速な発展に伴い、マイクロサービス アーキテクチャがほとんどのエンタープライズ ソフトウェア開発の第一選択肢となっています。この記事では、マイクロサービス アーキテクチャの観点から Java 関数開発の将来のトレンドを探り、具体的なコード例を使用してその利点と課題を分析します。はじめに ソフトウェアの規模が継続的に拡大し、ビジネスが急速に変化するにつれて、モノリシック アプリケーションでは現代の開発ニーズに対応できないという問題が徐々に表面化しています。この課題に対処するために、マイクロサービス アーキテクチャの概念が提案されています。

See all articles