RabbitMQ Dijelaskan dalam 5 Menit atau Kurang

Hari ini kita akan melihat cara mempercepat waktu pemuatan halaman Anda dengan mengeksekusi pemrosesan terberat secara asinkron, semuanya dikelola dengan sangat sederhana, berkat RabbitMQ.

Stabilitas dan kecepatan sebuah aplikasi atau website tentunya menjadi salah satu faktor terpenting bagi pengguna. Siapa yang tidak pernah meninggalkan situs bahkan sebelum melihat halaman pertama karena terlalu lama?

Apa itu RabbitMQ

RabbitMQ adalah broker perpesanan sumber terbuka, terdistribusi, dan terukur yang berfungsi sebagai perantara komunikasi yang efisien antara produsen dan konsumen.

RabbitMQ mengimplementasikan protokol perpesanan lapisan aplikasi AMQP, yang berfokus pada komunikasi pesan asinkron dengan jaminan pengiriman melalui konfirmasi penerimaan pesan dari broker ke produsen dan dari konsumen ke produsen.

Bagaimana cara kerja RabbitHQ

Dengan cara yang disederhanakan, RabbitMQ mendefinisikan antrean yang akan menyimpan pesan yang dikirim oleh produsen hingga aplikasi yang menggunakan menerima pesan dan memprosesnya. Ini memungkinkan kita untuk merancang dan mengimplementasikan sistem terdistribusi, di mana sistem dibagi menjadi modul independen yang berkomunikasi satu sama lain melalui pesan.

Seperti semua komunikasi, kita membutuhkan produser, pesan, dan penerima. Di tengah kue adalah RabbitMQ, yang akan menjadi tempat pesan menunggu penerima.

Mari kita lebih memahami cara kerjanya dengan mengetahui jenis pertukaran yang mewakili pertukaran pesan.

Jenis Pertukaran

Melalui pertukaran, setiap kali kami mengirim pesan melalui RabbitMQ, kami tidak mengirimkannya langsung ke antrean; agar sistem lain dapat membacanya, kami mengirimkannya ke bursa, yang bertanggung jawab untuk meneruskan pesan ke antrean yang berbeda.

Kredit Gambar: CloudAQMP

Jenis pertukaran adalah Langsung, Fanout, Topik, dan Pembaca.

Pertukaran Langsung

Misalkan seorang produsen perlu mengeluarkan pesan konfirmasi pembelian kepada tiga konsumen. Artinya, sistem perlu berkomunikasi dengan tiga sistem lain yang berbeda untuk melakukan pembelian.

Saat RabbitMQ mengirimkan pesan secara terpisah ke setiap antrian, ada momentum untuk membuat sistem lain ini menerima pesan secara langsung.

  Mengapa Notepad Masih Luar Biasa untuk Membuat Catatan

Biasanya pertukaran meneruskan pesan ke antrean, tetapi kami sering tidak ingin pesan kami dikirim ke semua antrean. Oleh karena itu, ada beberapa syarat yang bisa kita terapkan untuk melakukan pertukaran pekerjaan.

Jadi, Anda dapat mengirim pesan hanya ke satu konsumen; bukannya dikirim ke semua orang.

Binding Key: Untuk menghubungkan antrean ke bursa, Anda perlu membuat ikatan, hubungan antara antrean dan bursa, seperti konektor.

Kunci Perutean: Dalam pengikatan ini, kita juga dapat membuat elemen yang disebut kunci perutean, yang dengan kata lain, adalah kunci untuk meneruskan pesan kita ke antrian tertentu.

Jika Anda memiliki kunci perutean X, kunci perutean Y, dan kunci perutean Z, pesan dengan kunci perutean Y, misalnya, akan melewati antrian Y dan dikirim langsung ke konsumen yang Anda tetapkan untuk menerima pesan tersebut.

Dengan cara ini, kita dapat memiliki beberapa antrian yang terhubung ke sebuah bursa, tetapi pada saat yang sama, mereka juga dapat memiliki hubungan yang berbeda dengan bursa menggunakan kunci perutean.

Pertukaran Fanout

Saat pesan dikirim ke bursa, pesan dikirim ke semua antrian yang terhubung dengannya. Jadi jika Anda memiliki 10 antrean yang terhubung ke pertukaran fanout, semua antrean akan menerima pesan yang dikirimkan.

Pertukaran Topik

Ini adalah salah satu pertukaran paling fleksibel, memungkinkan kami mengirim pesan sesuai dengan subjeknya. Dan berdasarkan cara Anda menamai kunci perutean, dimungkinkan untuk membuat pola aturan dan hubungan antar sistem.

Misalnya: kunci perutean (x.*); kunci perutean (*.z); kunci perutean (*.y.*).

Apa itu AQMP di RabbitMQ

AMQP (Advanced Message Queuing Protocol) adalah protokol perpesanan terbuka yang digunakan untuk menentukan pengangkutan pesan antara beberapa aplikasi. Ini mirip dengan protokol HTTP dan TCP karena merupakan protokol tingkat kabel, kecuali memungkinkan untuk transportasi asinkron.

RabbitMQ memilih untuk mengimplementasikan AMQP karena beberapa alasan. Yang pertama adalah protokol ini digambarkan sebagai standar untuk middleware, tidak seperti JMS, yang mendefinisikan API.

Sebuah konsorsium internasional, termasuk perusahaan besar seperti Red Hat, Cisco Systems, dan Microsoft, menulis Spesifikasi AMQP ini. Yang kedua adalah interoperabilitas protokol ini, yang memungkinkan aplikasi apa pun yang mengimplementasikan AMQP untuk berkomunikasi dengan broker AMQP.

AMQP bukan satu-satunya protokol yang digunakan oleh RabbitMQ. Gambar di bawah mewakili semua protokol, bahasa, dan API yang diimplementasikan dan/atau didukung oleh RabbitMQ.

  Cara Membuka Aplikasi GUI Dari Jarak Jauh Dengan Putty

Fitur Terbaik dari RabbitMQ

Selain memungkinkan integrasi berbagai aplikasi melalui pesan secara asinkron dan dari lokasi yang berbeda, RabbitMQ menawarkan fitur lain yang membuatnya sangat populer di dunia pialang perpesanan:

Penyimpanan Andal

RabbitMQ menggabungkan beberapa fitur yang memungkinkannya menjamin pengiriman pesan. Di antaranya, menyediakan penyimpanan saat tidak ada konsumen yang dapat menerima pesan. Ini memungkinkan konsumen untuk menerima pengiriman pesan untuk memastikan bahwa pesan tersebut telah berhasil diproses.

Jika pemrosesan gagal, RabbitMQ memungkinkan pesan diantrekan ulang untuk dikonsumsi oleh konsumen yang berbeda atau diproses lagi oleh konsumen yang sama yang awalnya gagal saat pulih.

RabbitMQ juga menjamin urutan pengiriman pesan; yaitu, mereka dikonsumsi dalam urutan yang sama saat mereka tiba di antrean RabbitMQ.

Pembuatan cluster

Meskipun RabbitMQ memberikan kinerja yang luar biasa dengan memproses ribuan pesan per detik, terkadang ia harus dapat memproses pesan dalam jumlah yang lebih besar tanpa memengaruhi kinerja aplikasi.

Untuk ini, RabbitMQ memungkinkan pembuatan klaster untuk menskalakan solusi secara horizontal, yang transparan bagi produsen dan konsumen.

Antrian Sangat Tersedia

Di RabbitMQ, antrian dapat direplikasi di beberapa node dalam sebuah cluster, memastikan bahwa jika terjadi kegagalan node atau waktu henti, broker dapat terus menerima pesan dari produsen dan mengirimkannya ke konsumen yang sesuai.

Perutean yang fleksibel

Di RabbitMQ, aturan perutean yang fleksibel dapat ditentukan, bahkan mengikuti pola tertentu, untuk merutekan pesan antara pertukaran dan antrian, melalui binding.

Dukungan banyak protokol

Selain mendukung protokol AMQP, RabbitMQ mendukung STOMP, MQTT, dan HTTP melalui plugin. Ini juga menggabungkan mekanisme otentikasi dan kontrol akses untuk setiap komponen broker.

Kasus Penggunaan RabbitMQ di Kehidupan Nyata

Kasus penggunaan RabbitMQ yang paling penting adalah memungkinkan jaminan asinkronitas antar aplikasi, mengurangi sambungan antar aplikasi, mendistribusikan peringatan, dan mengontrol antrean pekerjaan di latar belakang.

Namun, kasus penggunaan praktis RabbitMQ ada di eCommerce, di mana t digunakan untuk memanipulasi, memproses, dan meneruskan pesanan penjualan Anda ke sistem di sektor lain, seperti distribusi dan penerbitan faktur.

Saat memproses pesanan, Anda dapat meneruskan pesan penjualan ke pusat distribusi dan area faktur. Dalam skema ini, semuanya bekerja secara horizontal, mengikuti pola asinkron untuk mengirim pesan, tetapi seringkali dimungkinkan untuk mengirim tindakan ke beberapa antrian.

  12 Platform Hosting Terbaik untuk Pasar Jerman

Mengikuti contoh sebelumnya, fungsi ini bisa sangat berguna saat pelanggan melakukan pembelian dan produk perlu disiapkan untuk distribusi, transportasi, dan faktur.

Dan karena masing-masing sektor ini adalah sistem yang berbeda, tujuan RabbitMQ adalah meneruskan semua pesan ini ke sistem yang sesuai.

Alternatif MQ kelinci:

RabbitMQ jauh lebih sederhana daripada yang terlihat, dan ada beberapa alternatif yang meliputi:

#1. BesiMQ

IronMQ adalah perangkat lunak antrian pesan super cepat. Ini sangat tersedia, tahan lama dalam desain, dan lebih disukai untuk pengiriman satu kali. IronMQ adalah solusi cloud-native yang paling kuat untuk arsitektur aplikasi modern.

Ini mendukung antrian push, antrian tarik, dan polling panjang, yang membuat permintaan polling terbuka lebih lama. Selain itu, dapat menggunakan beberapa pusat data dengan ketersediaan tinggi, yang memfasilitasi skalabilitas.

Anda dapat menerapkan di cloud, di perangkat keras bersama atau khusus, atau di tempat. Ini juga memiliki berbagai perpustakaan klien dengan dokumentasi yang mudah dibaca.

#2. Apache Kafka

Kafka adalah platform dengan kehadiran yang kuat dalam streaming acara terdistribusi. Pada intinya, Kafka dirancang sebagai log komit yang direplikasi, didistribusikan, dan persisten.

Kegunaan terbesarnya adalah untuk layanan mikro yang digerakkan oleh peristiwa atau aplikasi pemrosesan aliran skala besar, yang secara otomatis mereplikasi peristiwa secara asinkron dalam kluster untuk toleransi kesalahan dan ketersediaan tinggi.

#3. Apache ActiveMQ

ActiveMQ adalah Message Broker multiprotocol berbasis Java. Dengannya, kita dapat mengintegrasikan aplikasi menggunakan protokol antrian pesan AMQP pada lapisan aplikasi.

Itu mengimplementasikan beberapa protokol untuk integrasi, antara lain JMS (native Java) dan Stomp (yang dapat digunakan oleh aplikasi PHP).

Selain itu, Amazon memiliki versi “terkelola” yang disebut Amazon MQ, yang membuatnya lebih mudah untuk menggunakan layanan ini.

Kata Akhir

Pialang perpesanan secara tradisional menjadi bagian penting dalam arsitektur organisasi. Namun, dengan meningkatnya pengguna yang memasuki sistem perusahaan melalui saluran yang berbeda, diperlukan produk yang memungkinkan mereka diskalakan secara horizontal dengan biaya rendah. Mengizinkan pemrosesan sejumlah besar pesan per detik.

Di sinilah generasi baru broker, seperti RabbitMQ, menjadi lebih relevan dalam aplikasi modern, yang berupaya menawarkan tingkat ketersediaan, keandalan, interoperabilitas, dan kinerja tingkat tinggi kepada klien kami.

Anda juga dapat menjelajahi beberapa platform hosting RabbitMQ yang andal untuk aplikasi Anda.