Rumah >Java >javaTutorial >Sistem penjadualan tugas yang diedarkan berdasarkan Spring Cloud

Sistem penjadualan tugas yang diedarkan berdasarkan Spring Cloud

WBOY
WBOYasal
2023-06-23 09:09:131438semak imbas

Dengan kerumitan perniagaan, banyak perusahaan berhadapan dengan sejumlah besar tugas berjadual yang perlu dilaksanakan, dan pengurusan serta penjadualan tugas ini telah membawa tekanan yang besar kepada perusahaan. Sistem penjadualan tugas bersendirian tradisional tidak lagi dapat memenuhi keperluan perusahaan, dan sistem penjadualan tugas teragih telah menjadi pilihan yang perlu. Artikel ini akan memperkenalkan reka bentuk dan pelaksanaan sistem penjadualan tugas teragih berdasarkan Spring Cloud.

1. Reka bentuk seni bina sistem

Spring Cloud menyediakan satu siri alatan dan rangka kerja, seperti Eureka, Ribbon, Feign, Config, Hystrix, dll. Alat dan rangka kerja ini membolehkan kami melaksanakan diedarkan penjadualan tugas Sistem ini telah banyak membantu. Berikut ialah gambar rajah reka bentuk seni bina sistem:

Sistem penjadualan tugas yang diedarkan berdasarkan Spring Cloud

Sistem ini dibahagikan kepada empat bahagian: pusat pengurusan tugas, perkhidmatan tugas berjadual, pelaksana tugas dan pusat log.

  1. Pusat Pengurusan Tugas: Pusat pengurusan tugas bertanggungjawab mengurus tugas berjadual dalam keseluruhan sistem, menyediakan operasi seperti menambah, memadam, mengubah suai dan menghentikan tugas, dan menolak maklumat tugas ke tugas yang dijadualkan perkhidmatan.
  2. Perkhidmatan tugas berjadual: Perkhidmatan tugas berjadual ialah komponen teras keseluruhan sistem Ia menerima maklumat tugas yang ditolak oleh pusat pengurusan tugas dan mendaftarkan maklumat tugas ke dalam Eureka. Pada masa yang sama, ia kerap mengimbas maklumat tugas di pusat pendaftaran dan menghantar arahan pelaksanaan tugas kepada pelaksana tugas berdasarkan maklumat tugas.
  3. Pelaksana Tugas: Pelaksana tugas ialah komponen utama untuk melaksanakan tugasan dalam sistem Ia bertanggungjawab untuk memulakan tugasan yang dijadualkan, melaksanakan tugasan dan merekodkan log pelaksanaan tugas.
  4. Pusat log: Pusat log mengumpul log pelaksanaan tugas yang dijana oleh pelaksana tugas dan menyediakan pertanyaan log dan fungsi analisis log.

2. Pelaksanaan Sistem

  1. Pelaksanaan Pusat Pengurusan Tugas

Pusat pengurusan tugas dibangunkan menggunakan rangka kerja SpringBoot, dan juga menggunakan Thymeleaf. Di pusat pengurusan tugas, kami boleh menambah, memadam, mengubah suai, melumpuhkan dan mendayakan tugasan yang dijadualkan. Pada halaman, kami memaparkan maklumat asas tugas yang dijadualkan dan peraturan penjadualan tugas.

  1. Pelaksanaan perkhidmatan tugas berjadual

Dalam pelaksanaan perkhidmatan tugas berjadual, kami terutamanya menggunakan komponen SpringCloud seperti Eureka, Ribbon, Feign dan Config. Kami menggunakan Eureka sebagai pusat pendaftaran, perkhidmatan tugas berjadual mengakses pelaksana tugas melalui Ribbon, menggunakan Feign untuk membuat panggilan antara perkhidmatan dan menggunakan Config untuk melaksanakan fungsi pusat konfigurasi.

Secara khusus, kami meletakkan setiap tugasan yang perlu dijadualkan ke dalam Peta dan mendaftarkannya dalam Eureka. Sekali-sekala, perkhidmatan tugas yang dijadualkan mengakses pelaksana tugas melalui pengimbangan beban Ribbon dan menghantar arahan pelaksanaan tugas kepada pelaksana tugas. Jika pelaksanaan tugas gagal, log pelaksanaan tugas direkodkan dan dihantar ke pusat log.

  1. Pelaksanaan pelaksana tugas

Pelaksana tugas menggunakan Kuarza untuk melaksanakan penjadualan tugas berjadual dan menggunakan Feign untuk menerima arahan pelaksanaan tugas yang dihantar oleh perkhidmatan tugasan yang dijadualkan. Semasa proses pelaksanaan tugas, kami menyimpan status pelaksanaan tugas, log pelaksanaan dan maklumat lain dalam pangkalan data untuk pertanyaan dan analisis seterusnya.

  1. Pelaksanaan pusat log

Pusat log dilaksanakan menggunakan seni bina ELK, termasuk tiga komponen: Elasticsearch, Logstash dan Kibana. Antaranya, Elasticsearch digunakan untuk menyimpan log, Logstash digunakan untuk menghantar log daripada pelaksana tugas ke Elasticsearch, dan Kibana digunakan untuk memaparkan dan menanya maklumat log.

3. Pengoptimuman sistem

Semasa penggunaan sebenar, kami juga perlu mengoptimumkan sistem untuk memastikan kestabilan dan ketersediaan sistem. Beberapa langkah pengoptimuman biasa disenaraikan di bawah:

  1. Pengimbangan beban: Untuk perkhidmatan pelaksana tugas, kita perlu menggunakan pengimbangan beban untuk mengelakkan satu titik kegagalan dan memastikan ketersediaan sistem.
  2. Pemulihan tugas automatik: Apabila perkhidmatan pelaksana tugas berhenti secara tidak normal, kami perlu memulihkan tugas secara automatik kepada sistem melalui program untuk mengelakkan kehilangan tugas.
  3. Kunci teragih: Apabila tugasan dilaksanakan, tugas itu perlu diproses dengan kunci teragih untuk mengelakkan pelaksanaan tugas yang sama berulang kali.
  4. Pelaksanaan tak segerak: Untuk sesetengah tugasan yang mengambil masa yang lama, kami boleh menggunakan pelaksanaan tak segerak untuk meletakkan tugasan dalam baris gilir mesej untuk meningkatkan kecekapan pelaksanaan dan kebolehpercayaan tugas.

4. Ringkasan

Berbanding dengan sistem penjadualan tugas bersendirian tradisional, sistem penjadualan tugas yang diedarkan berdasarkan Spring Cloud mempunyai kesesuaian yang lebih tinggi dan berskala yang lebih baik , toleransi kesalahan yang lebih baik dan kelebihan lain Pada masa yang sama, ia juga merupakan pilihan yang berkesan bagi perusahaan untuk melaksanakan penjadualan tugas. Artikel ini memperkenalkan reka bentuk seni bina dan proses pelaksanaan sistem penjadualan tugas teragih berdasarkan Spring Cloud, dan juga membincangkan beberapa langkah pengoptimuman sistem. Saya percaya ia akan membantu semua orang.

Atas ialah kandungan terperinci Sistem penjadualan tugas yang diedarkan berdasarkan Spring Cloud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn