Gearman Job Server

Gearman adalah tools untuk melakukan job/proses di web secara paralel dan dapat juga digunakan untuk membagi beban server dalam menangani request dari client, sehingga proses bisa lebih cepat ketika request dari client sangat banyak.

Didalam Gearman kita akan mendengar 3 istilah yaitu Job Server, Worker dan Client.

  1. Job Server adalah service gearman yang akan membagi pekerjaan (request) dari Client ke Worker yang dituju.
  2. Worker adalah skrip yang menjalankan pekerjaan (request) dari Client.
  3. Client adalah skrip yang digunakan untuk memberikan pekerjaan ke Job Server.

Pada tulisan ini saya akan coba memberikan langkah-langkah instalasi gearman di linux (ubuntu) menggunakan Worker  PHP , Client (Shell dan PHP), serta contoh sederhana penggunaan Gearman.

Instalasi

Gearman Job Server

sudo apt-get install gearman-job-server

untuk cek apakah instalasi sukses atau tidak  jalankan perintah  gearmand -V  untuk cek  versi gearman. Kemudian jalankan service gearman dengan perintah

sudo service gearman-job-server start

Gearman Worker & Client (PHP)

Kita akan meng-instal Gearman PHP lewat PECL (karena di OS saya lib php5-gearman tidak dapat diketahui meggunakan apt), oleh karena itu jalankan script dibawah satu persatu.

sudo apt-get install php-pear
sudo pecl install gearman
sudo gedit /etc/php5/apache2/conf.d/gearman.ini (tambahkan extension=gearman.so untuk me-load library gearman PHP)

apabila ada error configure: error: Please install libgearman ERROR:`/tmp/pear/temp/gearman/configure’ failed.

apt-get install build-essential libboost-thread-dev libboost-program-options-dev libevent-dev libcloog-ppl0 libmysqld-dev uuid-dev -y 
wget https://launchpad.net/gearmand/1.0/0.41/+download/gearmand-0.41.tar.gz 
tar xzf gearmand-0.41.tar.gz cd gearmand-0.41 
./configure 
make 
make 
install 
ldconfig

Gearman Client (Shell)

Agar kita bisa membuat request lewat CLI/Shell.

sudo apt-get install gearman-tools

 

Demo

  1. Jalankan Job Server
    sudo service gearman-job-server start
  2. Buat Worker di PHP
    Buat file baru dengan nama worker.php dan masukkan script dibawah untuk membuat Worker yang berfungsi me-reverse string masukkan.

    <?php
    function my_reverse_function($job)
    {
     return strrev($job->workload());
    }
    
    $worker= new GearmanWorker();
    $worker->addServer('127.0.0.1');
    $worker->addFunction("reverse", "my_reverse_function");
    while ($worker->work());
    ?>
  3. Aktifkan Worker
    Buka CLI/Shell, ketik perintah

    php worker.php

    Skrip diatas digunakan agar Worker siap bekerja dan stand by menunggu job dari Job Server.

  4. Buat Client (untuk memanggil Worker)
    Apabila kita ingin menggunakan CLI/Shell tanpa perlu repot membuat script PHP, ketik perintah dibawah

    gearman -f reverse "tayadih eded"

    Apabila kita ingin menggunakan PHP sebagai Client, buat file baru dengan nama client.php, masukkan script

    <?php
    $client= new GearmanClient();
    $client->addServer('127.0.0.1');
    print $client->do("reverse", "Hello World!"); 
    ?>

    Kemudian akses file client.php menggunakan browser atau CLI

Sumber :  http://gearman.org/

 

Leave a Reply

Your email address will not be published. Required fields are marked *