Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan PHP dan swoole untuk membina kluster pengkomputeran teragih yang sangat tersedia?

Bagaimana untuk menggunakan PHP dan swoole untuk membina kluster pengkomputeran teragih yang sangat tersedia?

PHPz
PHPzasal
2023-07-22 17:25:131504semak imbas

Bagaimana untuk menggunakan PHP dan swoole untuk membina kelompok pengkomputeran teragih yang sangat tersedia?

Dengan perkembangan pesat Internet, keperluan pengkomputeran data berskala besar menjadi semakin biasa. Untuk meningkatkan kecekapan dan kebolehpercayaan pengkomputeran, banyak syarikat telah mula menggunakan kluster pengkomputeran teragih untuk menyelesaikan tugas pengkomputeran yang kompleks. Artikel ini akan memperkenalkan cara menggunakan PHP dan swoole untuk membina kelompok pengkomputeran teragih yang sangat tersedia, dan menyediakan contoh kod untuk rujukan pembaca.

1. Apa itu swool?

swoole ialah rangka kerja komunikasi rangkaian berprestasi tinggi berdasarkan PHP Ia boleh merealisasikan ciri tak segerak, berbilang proses, berbilang benang dan lain-lain serta menyediakan protokol rangkaian yang kaya dan sokongan komponen. swoole boleh digunakan untuk membangunkan pelayan rangkaian berprestasi tinggi dan berkonkurensi tinggi dan kluster pengkomputeran teragih.

2. Langkah untuk membina kluster pengkomputeran teragih

  1. Mengedarkan persekitaran kluster

Mula-mula, pasang sambungan swoole ke dalam persekitaran PHP. Ia boleh dipasang melalui PECL atau disusun dan dipasang secara manual. Selepas pemasangan selesai, dayakan sambungan swoole dalam fail php.ini.

  1. Tulis kod tugas pengiraan

Andaikan kita perlu mengira purata set nombor rawak. Pertama, tentukan kelas Pekerja, yang mewarisi kelas Pekerja swoole dan melaksanakan kaedah onMessage dan onStart.

class MyWorker extends Worker
{
    public function onMessage(SwooleServer $server, int $workerId, $message)
    {
        $result = array_sum($message) / count($message);
        $server->send($workerId, $result);
    }

    public function onStart(SwooleServer $server)
    {
        echo "Worker started.
";
    }
}
  1. Buat gugusan pengkomputeran teragih

Dalam fail utama, cipta objek Pelayan swoole dan nyatakan ruang nama kelas Pekerja dan nombor port tugas pengkomputeran.

$server = new SwooleServer('127.0.0.1', 9501);
$server->set([
    'worker_num' => 4,
    'task_worker_num' => 4,
]);
$server->on('WorkerStart', function (SwooleServer $server, int $workerId) {
    $worker = new MyWorker();
    $server->addProcess($worker);
});
  1. Pengagihan tugas dan pemprosesan hasil

Agihkan tugas pengkomputeran kepada proses Pekerja dengan memanggil kaedah $swoole->task().

$server->on('Receive', function (SwooleServer $server, int $fd, int $reactor_id, string $data) {
    $task_id = $server->task(json_decode($data, true));
    echo "Task assigned, task_id: $task_id
";
});

$server->on('Finish', function (SwooleServer $server, int $task_id, string $data) {
    echo "Task finished, result: $data
";
    // 处理计算结果
});
  1. Mulakan kluster pengkomputeran yang diedarkan
$server->start();

3 Contoh proses berjalan

Andaikan kita mempunyai tatasusunan yang mengandungi 100 nombor rawak Kami akan mengagihkan tugas pengiraan kepada 4 proses Pekerja dan melaksanakan jumlah dan purata. Kami boleh menggunakan klien Telnet untuk menyambung ke nombor port tugas pengkomputeran dan menghantar data tugas. Di bawah adalah contoh larian.

$ telnet 127.0.0.1 9501
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
[1,2,3,4,5,6,7,8,9,10]
Task assigned, task_id: 1
Task assigned, task_id: 2
Task assigned, task_id: 3
Task assigned, task_id: 4
Task finished, result: 5.5
Task finished, result: 5.5
Task finished, result: 5.5
Task finished, result: 5.5

Dalam contoh, kami menghantar data tugasan [1,2,3,4,5,6,7,8,9,10] ke nombor port tugas pengkomputeran, dan kelompok pengkomputeran teragih mengembalikan pengiraan keputusan 5.5 kepada pelanggan Telnet.

4. Ringkasan

Dengan menggunakan PHP dan swoole untuk membina kelompok pengkomputeran teragih yang sangat tersedia, kecekapan dan kebolehpercayaan tugas pengkomputeran boleh dipertingkatkan dengan berkesan. Artikel ini memperkenalkan langkah asas menggunakan swoole dan menyediakan kod sampel untuk mengira purata nombor rawak untuk rujukan pembaca. Pembaca boleh mengembangkan dan mengoptimumkan mengikut keperluan mereka sendiri. Saya harap artikel ini dapat membantu pembaca lebih memahami pembinaan dan aplikasi kluster pengkomputeran teragih.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan PHP dan swoole untuk membina kluster pengkomputeran teragih yang sangat tersedia?. 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