Sam dan MQ (Part 4) - Habis

Setelah browsing sana sini, Sam menemukan artikel tentang message queue (MQ). Dengan menggunakan MQ, Sam bisa membuat beberapa antrian pesan yang nantinya akan dikerjakan oleh program php-nya. Dalam artikel tersebut, program MQ yang digunakan adalah RabbitMQ.

Dalam tutorial di website resmi RabbitMQ, ada 4 skenario MQ yang dapat digunakan (dari 5 tutorial 1 di antaranya hanya tutorial "Hello World"). Skenario MQ tersebut adalah work queues, publish/subscribe, routing, topic, dan RPC.

Untuk kasus login, Sam menerapkan skenario RPC untuk true dan false serta menggunakan skenario publish/subscribe. Ketika program melakukan login, modul login mempublish pesan bahwa si anu telah login. Untuk pencatatan log login, ada program khusus yang melakukan subscribe terhadap pesan login. Dengan metode ini, jika ingin membuat alur program ketika login, Sam cukup membuat program baru dan melakukan subscribe terhadap pesan login, tidak perlu mengubah kodingan yang sudah ada.

Untuk kasus grabber dan resizer gambar, Sam menggunakan skenario work queue. Ketika user melakukan share link, program mengirimkan pesan link tersebut dengan alamat pekerja 'grabber'. Sam membuat program A untuk mengambil html dari suatu website. Jika A menerima pesan dengan alamat 'grabber', A akan mulai bekerja mengambil html. Setelah html tersebut didownload, A mengirimkan pesan link2 gambar yang perlu didownload, pesan tersebut dialamatkan ke pekerja 'image grab'. Nantinya jika menerima pesan yang dialamatkan ke 'image grab', program B akan bekerja untuk mengunduh dan mengubah ukuran dari gambar. Dengan metode ini, Sam bisa menjalankan program A dan B sebanyak apapun sesuai kebutuhan. Jika ada penumpukan pesan gambar yang harus diunduh dan diubah ukurannya, Sam cukup menjalankan program B lain di terminal. Masing-masing program B dijamin hanya menerima satu pesan untuk dikerjakan secara mandiri sehingga 10 link gambar bisa dikerjakan secara pararel oleh beberapa program B.

Demikianlah, Sam bisa tersenyum lega dengan penemuannya itu. Jika dibutuhkan, Sam dapat membuat program baru dengan mudah tanpa perlu mengubah-ubah program lama.

Tidak ada komentar:

Posting Komentar

Jika Anda memiliki tanggapan dan pertanyaan silakan isi form komentar berikut, kami akan menjawabnya segera. :)