Anda di halaman 1dari 4

MESSAGING SERVICE MENGGUNAKAN RABBIT MQ

Tugas 2 Mata Kuliah EL5006 Desain Aplikasi Interaktif

Suma Danu Ristianto


STEI , Institut Teknologi Bandung
Bandung, Indonesia
23222010@std.stei.ac.id

Abstract— Saat ini perkembangan zaman menuntut manusia II. TINJAUAN PUSTAKA
untuk dapat melakukan komunikasi secara terus menerus secara
jarak jauh oleh karena itu banyak provider yang mengembangan
aplikasi chatting yang dapat digunakan untuk membantu A. Fitur Tasker Rabbit Message Queue
manusia untuk terus berkomunikasi dari jarak jauh. Salah satu
framework yang dapat digunakan untuk melakukan Fitur Tasker Rabbit Message Queue adalah sebuah fitur yang
pengembanan aplikasi chatting adalah RabbitMQ. Laporan ini digunakan untuk mengatur urutan proses pengiriman pesan
menjelaskan tentang suatu eksperimen mengenai pengiriman pada Rabbit MQ pesan akan dikirimkan berdasarkan dari urutan
pesan menggunakan server yang dibuat menggunakan RabbitMQ
channel dimana jika terdapat lebih satu worker dengan nama
sebagai broker message karena memiliki fitur yang sangan
membantu yaitu AMQP dan menggunakan bahasa pemrograman
channel yang sama maka tasker akan mengirim pesan sesuai
python. dengan urutan queue worker yang berjalan. Seperti ilustrasi
yang terlihat pada Gambar 1 dibawah berikut [1]:
Keywords—Rabbit MQ, AMQP, Broker Message, Framework

I. PENDAHULUAN
RabbitMQ adalah perangkat lunak open-source yang
digunakan sebagai broker pesan atau middleware untuk
mengirim dan menerima pesan antar aplikasi. RabbitMQ
didasarkan pada protokol AMQP (Advanced Message Queuing
Protocol) dan menyediakan antarmuka pengembangan untuk
beberapa bahasa pemrograman seperti Java, Python, Ruby, dan
lainnya. RabbitMQ juga mendukung beberapa mode pengiriman
pesan seperti point-to-point, publish-subscribe, dan lainnya. Gambar 1. Tasker Queueing

Aplikasi obrolan saat ini sangat populer di kalangan


pengguna karena memudahkan mereka dalam berkomunikasi B. Fitur Broadcaster Rabbit Message Queue
dengan orang lain dari jarak jauh. Dalam pengembangan Fitur Broadcaster Rabbit Message Queue adalah sebuah fitur
aplikasi obrolan, Message broker digunakan sebagai perangkat yang dapat membuat pesan dapat dikirimkan kepada banyak
lunak untuk mengirimkan, mengatur, dan meneruskan pesan.
receiver dengan nama yang sekaligus dimana pada fitur
RabbitMQ dapat digunakan untuk mengimplementasikan sebelumnya pesan yang dikirimkan harus memenuhi urutan
broadcast melalui mode pengiriman pesan publish-subscribe. dari queue nya dapa fitur broadcaster ini pesan yang dikiriman
Dalam mode ini, sebuah pesan dikirim ke satu atau beberapa kepada channel yang sama akan masuk secara bersamaan ke
publisher, dan kemudian disebarkan ke beberapa subscriber channel tersebut [2]. Seperti ilustrasi yang terlihat pada Gambar
yang tertarik untuk menerima pesan tersebut. Setiap subscriber 2 dibawah ini :
memiliki antrian sendiri, sehingga pesan akan disampaikan ke
setiap subscriber secara independen. RabbitMQ menyediakan
fitur publish-subscribe dan dapat diintegrasikan dengan banyak
bahasa pemrograman.

Gambar 2. Broadcaster

Identify applicable funding agency here. If none, delete this text box.
C. Fitur Filltering Rabbit Message Queue

Fitur Filltering Rabbit Message Queue adalah sebuah fitur


yang dapat membuat pesan yang dikirimkan oleh brodcasting
tidak semuanya terkirim secara langsung hal ini di karenakan
exchange routing key yang di set pada setiap channel berbeda
sehingga pesan akan dikirimkan hanya kepada channel yang
memiliki routing key yang sama. Fitur ini dapa digunakan untuk
menghebat ruang disk sehingga dapat tetap menampilkan semua
pesan log pada konsol [3]. Seperti ilustrasi yang digambarkan Gambar 5. Program Aplikasi Broadcaster Dalam Bahasa Python
pada Gambar 3 dibawah ini :

Gambar 3. Routing Filltering


Gambar 6. Program Aplikasi Routing Dalam Bahasa Python
III. IMPLEMENTASI APLIKASI CHATTING
Pada tahapan ini merupakan proses pembuatan aplikasi B. Rabbit MQ Server
chatting sederhana dengan memanfaatkan framework Rabbit Headings, Pada proses uji coba pembuatan aplikasi ini masih
MQ yang di buat dalam sebuah program berbahasa python. menggunakan server Rabbit MQ yang sudah tersedia dan
dicantumkan dalam modul 1 yaitu sub-domain rmq2 Pusat
A. Membuat Program Aplikasi Tasker, Broadcaster, dan
Penelitian Teknologi Informasi dan Komunikasi ITB dengan
Routing
alamat server http://rmq2.pptik.id:15672/ [4].
Pada tahapan ini adalah proses pembangunan sebuah
program untuk membangun aplikasi chatting menggunakan
framework Rabbit MQ dimana aplikasi yang dibangun
memiliki 3 aplikasi yaitu tasker, broadcaster, dan routing yang
dapat dilihat pada gambar dibawah ini :

Gambar 5. Server Rabbit MQ

C. Proses Pengujian Aplikasi Chatting


Pada tahapan ini merupakan proses uji coba aplikasi akan bagi
menjadi tiga bagian yaitu pengujuan aplikasi tasker,
broadcasting dan routing.
Gambar 4. Program Aplikasi Tasker Dalam Bahasa Python
1) Proses pengujian Tasker dan Worker :

Perocaban dilakukan dengan satu orang yang akan menjadi


role tasker dan satu orang yang akan menjadi role worker
dimana pada percobaan ini akan terdapat dua worker
dengan nama channel yang sama hal ini dilakukan untuk 2) Proses pengujian Broadcaster dan Receiver :
membuktikan apakah pesan yang dikirimkan akan sesuai
dengan urutan queue atau tidak. Lalu selanjutnya saya akan mencoba untuk
mengirimkan pesan dengan nama channel yang sama
apakah pesan tersebut dapat di receiver dengan waktu
yang secara bersamaan :

Gambar 6. Uji Coba Simulasi Role Tasker Gambar 8. Uji Coba Role Broadcaster

Lalu pada Gambar 6 di atas rekan saya lukman berperan


sebagai worker dimana mencoba untuk mengirimkan
pesan angka kepada channel worker dengan nama “danu”
dengan pesan yang dikirimkan berupa angka.

Gambar 9. Uji Coba Role Receiver

Berdasarkan hasil uji coba yang terlihat pada Gambar


8 role broadcaster mengirimkan pesan kepada role
Gambar 7. Uji Coba Simulasi Role Worker receiver dan pada gambar 9 menampilkan bahwa
kedua role receiver dapat meneripa pesan yang
Pada Gambar 7 diatas merupakan tampilan dari uji ciba dikirimkan oleh broadcaster secara bersamaan
role worker dimana pada gambar sebelumnya tasker sekaligus.
beberapa kali sudah mebgirimkan pesan pada Gambar 7 di
atas pesan yang dikirimkan oleh tasker di terima
berdasarkan urutan dari queue channel worker yang ada,
dimana worker sebelah kiri merupakan worker pertaman
dan worker sebelah kanan adalah worker kedua. Pada
gambar di atas worker pertama menerima pesan dengan isi
angka “30” sehingga waktu untuk pemerosesanya lebih
lama dari pesan yang hanya berisikan angka “5” dan “6”
sehingga worker pertama dalam beberapa waktu tidak bisa
menerima pesan terlebih dahulu sehingga antrian pesan
akan di alihkan ke worker kedua. Fitur pengalihan pesan
ini ditambahkan dengan mendeklaraskan bahwa worker
hanya mengerjakan satu pesan sampai selsai baru worker
tersebut dapat menerima pesan, jika worker penuh makan
pesan akan dialihkan ke worker yang sedang kosong hal ini
berfungsi agar tidak adanya penumpukan pesan pada
queue.
3) Proses pengujian Filltering dan Receiver Gambar 11. Tampilan penerima pesan filtering

Pada uji coba kali ini akan dilakukan percobaan KESIMPULAN


pengiriman pesan dengan pengujian fitur filltering Berdasarkan hasil uji coba yang sudah di lakukan
dengan sekema satu orang yang berperan sebagi role sebelumnya mendapatkan tiga kesimpulan yaitu :
emitter/broadcasting dan satu lagi akan berperan
1. Fitur pengiriman pesan tasker akan mengirimkan pesan
sebagai receiver dimana terdapat dua receiver dengan
sesuai dengan urutan worker yang ada akan tetapi jika
nama filter yang berbeda . Pada Gambar 10 di bawah worker pada urutan pertama masih dalam proses
yang berpersan sebagai role emitter/broadcasting akan penerimaan pesan maka pesan akan di alihkan pada
mencoba mengirimkan pesan ke chanel dengan nama worker yang lainya dengan kondisi bahwa worker
“danu_direct” dan dengan nama filter “solo” : tersebut dalam keadaan kosong hal ini dapat dilihan
pada Gambar 7 dimana worker pertama masih dalam
proses penerimaan pesan maka pesan yang dikirimkan
oleh tasker akan di alihkan pada worker kedua terlebih
dahulu selama worker pertama masih memproses pesan.
2. Lalu pada fitur broadcaster role yang berperan sebagai
broadcaster dapat mengirimkan pesan sekaligus
kebeberapa receiver dengan nama channel yang sama
dan kemudian receiver tersebut akan menampilkan
pesan yang dikirimkan oleh broadcaster dengan
bersamaan. Konsep ini mengusung publish/subsricbe
seperti yang dapat dilihat pada Gambar 9.
3. Lalu pada pengujian fitur filltering/routing
mendapatkan hasil bahwa walaupun
emitter/broadcasting mengirimkan pesan ke pada nama
Gambar 10. Uji Coba Fitur Filltering channel yang sama akan tetapi jika channel tersebut
tidak memiliki nama filter yang sama maka ketika
Lalu pada Gambar 10 sebelumnya pesan sudah emitter/broadcasting mengirimkan pesan kedua channel
berhasil dikirimkan kepada receiver dengan filter solo tersebut tidak akan menerima pesan yang sama karena
sehingga pada gambar dibawah ini receiver yang terkendala oleh filter yang berbeda seperti yang dapat
memiliki nama filter solo akan menerima pesan yang kita lihat pada Gambar 11 hanya channel yang memiliki
dikirimkan sedangkan receiver yang tidak memiliki nama filter solo saya yang akan menerima pesan dari
nama filter solo tidak akan menerima pesan tersebut emitter/broadcasting.
meski memiliki nama channel yang sama yaitu REFERENCES
“danu_direct” seperti yang dapat dilihan pada gambar
di bawah ini.
[1] “Work Queues.” https://www.rabbitmq.com/tutorials/tutorial-two-
python.html
[2] “Publish/Subscribe.” https://www.rabbitmq.com/tutorials/tutorial-three-
python.html
[3] “Routing.” https://www.rabbitmq.com/tutorials/tutorial-four-
python.html
[4] “Modul 1 - Rabbit Message Queue.”

Anda mungkin juga menyukai