Mit der Entwicklung des Internets beginnen immer mehr Unternehmen, Microservice-Architekturen einzuführen, um verteilte Systeme aufzubauen und so die Zuverlässigkeit, Skalierbarkeit und Wartbarkeit von Anwendungen zu verbessern. Unter der Microservice-Architektur ist ein Aufgabenplanungssystem eine sehr wichtige Komponente. Es kann verwendet werden, um einige asynchrone Aufgaben regelmäßig auszuführen, andere Microservice-Schnittstellen aufzurufen usw.
Spring Cloud ist ein Open-Source-Microservice-Framework, das einige sehr leistungsstarke Tools und Frameworks bereitstellt, wie z. B. Spring Cloud Netflix, Spring Cloud Config, Spring Cloud Stream, Spring Cloud Security usw. Unter diesen ist Spring Cloud Netflix ein sehr beliebtes Microservice-Framework. Es bietet einige Kernkomponenten und Erweiterungen, wie z. B. Dienstregistrierung und -erkennung, Client-Lastausgleich, Konfigurationsmanagement, Leistungsschalter, API-Gateways usw.
In diesem Artikel stellen wir vor, wie Sie mit Spring Cloud ein Aufgabenplanungssystem entwickeln, das hauptsächlich die folgenden Inhalte umfasst:
1. Anforderungsanalyse des Aufgabenplanungssystems
Unter der Microservice-Architektur muss ein Aufgabenplanungssystem die folgenden Funktionen unterstützen:
2. Verwenden Sie Spring Scheduler, um die Aufgabenplanung zu implementieren.
Spring Scheduler ist ein Modul des Spring-Frameworks. Es bietet ein leichtes Aufgabenplanungs-Framework, mit dem Aufgabenplanungsfunktionen einfach implementiert werden können.
Spring Scheduler-Abhängigkeit in der POM-Aufgabenlogik hinzufügen.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.4.3</version> </dependency>
Fügen Sie dem Spring Boot-Projekt eine Aufgabenplanungskonfigurationsklasse hinzu, um die spezifische Aufgabenplanungsstrategie und die ausgeführten Aufgaben zu konfigurieren.
@Component public class JobTask implements Runnable { @Override public void run() { System.out.println("running job..."); } }
Nachdem Sie die Spring Boot-Anwendung gestartet haben, können Sie die Konsolenausgabe anzeigen und die Aufgabe wird gemäß dem angegebenen Zeitintervall und der angegebenen Periodizität ausgeführt. Wenn Sie die Aufgabenausführungsstrategie ändern möchten, müssen Sie nur die Konfigurationsklasse ändern.
Verwenden Sie in der Anwendung des Aufgabenplanungssystems Dienste wie Eureka oder Consul von Spring Cloud Registrieren Mit der Erkennungskomponente registrieren Sie das Aufgabenplanungssystem beim Service-Registrierungscenter.
@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(); } }
Verwenden Sie API-Gateways wie Spring Cloud Gateway oder Zuul, um das Aufgabenplanungssystem anderen Microservices zugänglich zu machen.
spring: application: name: task-scheduler eureka: instance: hostname: localhost client: service-url: defaultZone: http://localhost:8761/eureka/
In anderen Microservices verwenden Sie Tools wie Feign oder RestTemplate, um die vom Aufgabenplanungssystem bereitgestellte RESTful-API aufzurufen, um asynchrone Aufgaben auszuführen oder die Ausführung von Aufgaben auszulösen.
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/**
Das obige ist der detaillierte Inhalt vonSo entwickeln Sie mit Spring Cloud ein Aufgabenplanungssystem unter einer Microservice-Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!