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
Lepaskan: 2023-07-22 17:26:02
asal
1505 orang telah melayarinya

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.
";
    }
}
Salin selepas log masuk
  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);
});
Salin selepas log masuk
  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
";
    // 处理计算结果
});
Salin selepas log masuk
  1. Mulakan kluster pengkomputeran yang diedarkan
$server->start();
Salin selepas log masuk

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
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan