Dengan perkembangan pesat Internet, pemprosesan data berskala besar telah menjadi keperluan yang semakin biasa. Terutamanya dalam senario pemprosesan kolaboratif, seni bina teragih telah menjadi pilihan yang sangat diperlukan, kerana seni bina satu titik tradisional boleh menyebabkan kelajuan pemprosesan menjadi terlalu perlahan atau ranap apabila jumlah data terlalu besar.
Dengan pembangunan seni bina teragih, semakin banyak alat sumber terbuka telah muncul. Sebagai pangkalan data dalam memori yang popular, Redis bukan sahaja boleh digunakan dalam senario sebenar seperti caching, pengurusan sesi dan push mesej masa nyata, tetapi juga boleh digunakan untuk membina platform pemprosesan kolaboratif teragih. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Redis untuk melaksanakan platform pemprosesan kolaboratif teragih dan memperkenalkan reka bentuk terperincinya.
Semasa pelaksanaan platform pemprosesan kolaboratif yang diedarkan, kami perlu membahagikan data berskala besar kepada beberapa tugas kecil untuk diproses. Tugasan ini boleh datang dalam bentuk yang berbeza, seperti pemprosesan data masa nyata, analisis data biasa, anotasi manual dan banyak lagi. Pada masa yang sama, kita perlu memperuntukkan setiap tugas kepada berbilang nod untuk pelaksanaan bagi meningkatkan kecekapan pemprosesan. Ini memerlukan platform untuk mengurus dan menjadualkan tugas. Kami boleh melaksanakan platform sedemikian melalui Redis.
Untuk melaksanakan platform pemprosesan kolaboratif teragih ini, kami perlu menggunakan struktur data berikut yang disediakan oleh Redis:
(1) Baris Gilir : Redis menyediakan dua baris gilir, satu baris gilir FIFO (masuk dahulu, keluar dahulu) dan satu lagi baris gilir keutamaan. Kita boleh menggunakan baris gilir untuk melaksanakan caching dan penjadualan tugas antara tugas dan nod.
(2) Jadual cincang: Redis menyediakan struktur data jadual cincang yang melaluinya kami boleh menyimpan maklumat tugas, maklumat nod, dsb.
(3) Kunci teragih: Untuk mengelakkan berbilang nod daripada memproses tugas yang sama pada masa yang sama, kita perlu menggunakan kunci teragih Redis.
(4) Mod Terbit/langgan: Untuk mencapai komunikasi antara nod, kita boleh menggunakan fungsi terbit/langgan Redis.
(1) Pengurusan tugas: Dalam platform pemprosesan kolaboratif teragih, tugas ialah unit asas. Kami perlu merekodkan status pelaksanaan, keputusan pelaksanaan, nod pelaksanaan dan maklumat lain bagi setiap tugas. Pertama, kita boleh menulis setiap tugasan ke dalam jadual cincang Kunci jadual cincang ini ialah ID tugas dan nilainya ialah maklumat tugas. Apabila tugasan dilaksanakan, kita perlu mengeluarkan tugasan daripada baris gilir yang belum diproses dan memasukkannya ke dalam baris gilir yang akan dilaksanakan Apabila tugasan mula dilaksanakan, kita perlu mengeluarkan tugasan daripada barisan yang akan dilaksanakan. melaksanakan baris gilir dan memasukkannya ke dalam baris gilir pelaksana.
(2) Pengurusan nod: Kita perlu merekodkan setiap nod yang melaksanakan tugas dalam Redis, termasuk nama nod, status nod, prestasi nod dan maklumat lain. Maklumat ini boleh disimpan melalui jadual cincang, dengan setiap nod sepadan dengan pasangan nilai kunci.
(3) Penjadualan tugas: Tugas boleh dijadualkan melalui penjadual tugas khusus. Penjadual tugas akan mengalih keluar tugas daripada baris gilir untuk dilaksanakan dan memperuntukkan tugas kepada nod yang tersedia. Untuk tugas yang sama, ia hanya perlu diproses oleh satu nod, yang boleh dijamin dengan menggunakan kunci teragih Redis. Apabila pemprosesan tugas selesai, nod akan menerbitkan mesej kepada Redis, menunjukkan bahawa tugasan telah selesai Penjadual tugas akan melanggan mesej ini, memadamkan tugasan daripada baris gilir pelaksanaan, dan kemudian menulis hasil pelaksanaan tugas kepada Redis. . Jika pengecualian berlaku pada tugasan, tugasan itu perlu dipadamkan daripada baris gilir pelaksanaan dan dimasukkan semula ke dalam baris gilir pelaksanaan yang belum selesai.
(4) Pengoptimuman prestasi: Untuk meningkatkan prestasi platform pemprosesan kolaboratif yang diedarkan, kita perlu mempertimbangkan dua pengoptimuman berikut:
a membuka berbilang benang untuk pelaksanaan Penjadualan tugas, dengan itu meningkatkan kecekapan penjadualan tugas.
b. Baris gilir keutamaan: Kami boleh menetapkan keutamaan kepada tugasan dan menggunakan baris gilir keutamaan Redis untuk memproses tugasan keutamaan.
Melalui baris gilir Redis, jadual cincang, kunci, terbitkan/langgan dan ciri lain, kami boleh melaksanakan platform pemprosesan kolaboratif teragih yang cekap. Apabila mereka bentuk dan melaksanakan, kita perlu mereka bentuk berdasarkan senario dan keperluan tertentu, sambil mempertimbangkan pengoptimuman prestasi dan keselamatan.
Atas ialah kandungan terperinci Reka bentuk terperinci pelaksanaan Redis bagi platform pemprosesan kolaboratif teragih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!