Installasi RabbitMQ Pada Centos 7
0 people liked this article
A. Pendahuluan
RabbitMQ merupakan message broker yang ditulis dengan menggunakan bahasa pemrograman Erlang. RabbitMQ ini bisa diibaratkan sebagai sebuah kantor pos sekaligus tukang pos. Dia akan menerima pesan yang dikirimkan oleh sender lalu melakukan forward/push pesan tersebut kepada receiver. Berikut ini adalah langkah-langkah instalasi dan pengetesan queuing pada RabbitMQ.
B. Konfigurasi dan Instalasi
Langkah – 1 Tambahkan Hostname dan IP Address
Tambahkan IP Address dan hostname di /etc/hosts
$ vi /etc/hosts
Langkah – 2 Install Erlang
Sebelum kita install Erlang, terlebih dahulu kita install epel-release menggunakan perintah di bawah.
$ yum -y install epel-release
$ yum -y updateSelanjutnya install Erlang.
$ yum -y install erlang socat
$ erl -version
Untuk masuk ke mode erlang gunakan perintah di bawah.
$ erlLangkah – 3 Install RabbitMQ
Unduh rabbitMQ rpm menggunakan perintah di bawah.
$ wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpmUntuk versi lain nya bisa diunduh menggunakan tautan ini: https://www.rabbitmq.com/download.html, Impor kunci GPG menggunakan perintah di bawah.
$ rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.ascInstal paket RPM menggunakan perintah di bawah.
$ rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpmJalan service rabbitmq.
$ systemctl start rabbitmq-serverAktifkan auto start service rabbitmq pada saat server dalam kondisi poweroff atau restart.
$ systemctl enable rabbitmq-serverCek service rabbitmq.
$ systemctl status rabbitmq-serverInstall RabbitMQ Management Dashboard (Opsional).
$ rabbitmq-plugins enable rabbitmq_managementUbah kepemilikan berkas RabbitMQ untuk user RabbitMQ.
$ chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/Tambahkan user admin untuk login ke dashboard.
$ rabbitmqctl add_user admin StrongPassword
$ rabbitmqctl set_user_tags admin administrator
$ rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Kemudian akses RabbitMQ Dashboard dan login menggunakan username dan password yang telah dibuat sebelumnya melalui browser Anda http://Your_Server_IP:15672/
Langkah – 4 Pengetesan
Pada pengetesan kali ini akan menggunakan bahasa pemograman PHP sebagai antriannya, berikut ini adalah langkah-langkahnya.
Instal composer dan PHP menggunakan local CentOS packages.
$ yum install composer phpInstal paket php mbstring dan bcmath sesuai dengan versi php yang Anda gunakan.
$ yum install php-mbstring php-bcmathInstal php-amqplib menggunakan composer.
$ composer require php-amqplib/php-amqplibBuat dua file pengetesan dan beri nama publisher.php yang digunakan untuk membuat task dan worker.php yang digunakan untuk melakukan forward / pushing kepada receiver.
$ vi /home/ubuntu/Queuing/publisher.php
<?php
require_once(__DIR__ . '/vendor/autoload.php');
define("RABBITMQ_HOST", "localhost");
define("RABBITMQ_PORT", 5672);
define("RABBITMQ_USERNAME", "guest");
define("RABBITMQ_PASSWORD", "guest");
define("RABBITMQ_QUEUE_NAME", "task_queue");
$connection = new \PhpAmqpLib\Connection\AMQPStreamConnection(
RABBITMQ_HOST,
RABBITMQ_PORT,
RABBITMQ_USERNAME,
RABBITMQ_PASSWORD
);
$channel = $connection->channel();
$channel->queue_declare(
$queue = RABBITMQ_QUEUE_NAME,
$passive = false,
$durable = true,
$exclusive = false,
$auto_delete = false,
$nowait = false,
$arguments = null,
$ticket = null
);
$job_id=0;
while (true)
{
$jobArray = array(
'id' => $job_id++,
'task' => 'sleep',
'sleep_period' => rand(0, 3)
);
$msg = new \PhpAmqpLib\Message\AMQPMessage(
json_encode($jobArray, JSON_UNESCAPED_SLASHES),
array('delivery_mode' => 2) # make message persistent
);
$channel->basic_publish($msg, '', RABBITMQ_QUEUE_NAME);
print 'Job created' . PHP_EOL;
sleep(1);
}
$ vi /home/ubuntu/Queuing/worker.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
define("RABBITMQ_HOST", "localhost");
define("RABBITMQ_PORT", 5672);
define("RABBITMQ_USERNAME", "guest");
define("RABBITMQ_PASSWORD", "guest");
define("RABBITMQ_QUEUE_NAME", "task_queue");
$connection = new \PhpAmqpLib\Connection\AMQPStreamConnection(
RABBITMQ_HOST,
RABBITMQ_PORT,
RABBITMQ_USERNAME,
RABBITMQ_PASSWORD
);
$channel = $connection->channel();
$channel->queue_declare(
$queue = RABBITMQ_QUEUE_NAME,
$passive = false,
$durable = true,
$exclusive = false,
$auto_delete = false,
$nowait = false,
$arguments = null,
$ticket = null
);
echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
$callback = function($msg){
echo " [x]
Received ", $msg->body, "\n";
$job = json_decode($msg->body, $assocForm=true);
sleep($job['sleep_period']);
echo " [x]
Done", "\n";
$msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
};
$channel->basic_qos(null, 1, null);
$channel->basic_consume(
$queue = RABBITMQ_QUEUE_NAME,
$consumer_tag = '',
$no_local = false,
$no_ack = false,
$exclusive = false,
$nowait = false,
$callback
);
try
{
while (count($channel->callbacks))
{
print "running
non blocking wait." . PHP_EOL;
$channel->wait($allowed_methods=null, $nonBlocking=true, $timeout=1);
}
}
catch (Exception $e)
{
print "There
are no more tasks in the queue." . PHP_EOL;
}
$channel->close();
$connection->close();
Sebelum menjalankan publisher.php, login terlebih dahulu ke dashboard RabbitMQ untuk melihat total Queued Messages seperti gambar di bawah.
Atau menggunakan perintah di bawah ini melalui terminal.
$ rabbitmqctl list_queues
Dari grafik di atas kita bisa melihat bahwa saat ini tidak terdapat antrian di RabbitMQ, selanjutnya kita akan coba buat Job dengan menjalankan publisher.php
Dan kita lihat kembali pada grafik terpantau saat ini ada 30 Job di antrian RabbitMQ.
Selanjutnya kita jalankan worker.php untuk mengurangi antrian di RabbitMQ.
Terlihat pada grafik antrian lambat laun akan berkurang oleh worker.php yang kita jalankan sebelumnya.
C. Kesimpulan
Artikel tersebut membahas proses instalasi dan pengujian RabbitMQ, sebuah message broker yang menangani komunikasi antara sender dan receiver. Proses ini diobservasi melalui dashboard RabbitMQ, memperlihatkan queuing dan eksekusi job dengan sukses.
Selamat! Anda sudah bisa install RabbitMQ. Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.
Popular Articles
-
Cara Install & Konfigurasi Monitoring Cacti Serta Mengetahui Fungsi Fitur Pada Cacti
10 people say this guide was helpful
-
Cara Mengaktifkan Telnet pada Windows 7, 8 dan 10
4 people say this guide was helpful
-
Install dan Konfigurasi Samba Server pada Ubuntu
3 people say this guide was helpful
-
Jenis-Jenis Software Virtualisasi untuk Membuat Virtual Machine
6 people say this guide was helpful