Storm - Sistem Pesan Terdistribusi
Apache Storm memproses data waktu nyata dan masukan biasanya berasal dari sistem antrian pesan. Sistem pesan terdistribusi eksternal akan memberikan masukan yang diperlukan untuk komputasi waktu nyata. Spout akan membaca data dari sistem pesan dan mengubahnya menjadi tupel dan memasukkannya ke dalam Apache Storm. Fakta yang menarik adalah bahwa Apache Storm menggunakan sistem pesan terdistribusi sendiri secara internal untuk komunikasi antara nimbus dan supervisornya.
Apa itu Sistem Pesan Terdistribusi?
Pesan terdistribusi didasarkan pada konsep antrian pesan yang andal. Pesan diantrekan secara asinkron antara aplikasi klien dan sistem perpesanan. Sistem perpesanan terdistribusi memberikan manfaat keandalan, skalabilitas, dan persistensi.
Sebagian besar pola pesan mengikuti publish-subscribe model (sederhana Pub-Sub) tempat pengirim pesan dipanggil publishers dan mereka yang ingin menerima pesan dipanggil subscribers.
Setelah pesan dipublikasikan oleh pengirim, pelanggan dapat menerima pesan yang dipilih dengan bantuan opsi pemfilteran. Biasanya kami memiliki dua jenis pemfilteran, satu adalahtopic-based filtering dan satu lagi content-based filtering.
Perhatikan bahwa model pub-sub hanya dapat berkomunikasi melalui pesan. Ini adalah arsitektur yang sangat longgar; bahkan pengirimnya pun tidak tahu siapa pelanggannya. Banyak pola pesan memungkinkan dengan broker pesan untuk bertukar mempublikasikan pesan untuk akses tepat waktu oleh banyak pelanggan. Contoh kehidupan nyata adalah Dish TV, yang menerbitkan saluran berbeda seperti olahraga, film, musik, dll., Dan siapa pun dapat berlangganan ke saluran mereka sendiri dan mendapatkannya setiap kali saluran langganan mereka tersedia.
Tabel berikut menjelaskan beberapa sistem pesan throughput tinggi yang populer -
Sistem pesan terdistribusi | Deskripsi |
---|---|
Apache Kafka | Kafka dikembangkan di perusahaan LinkedIn dan kemudian menjadi sub-proyek Apache. Apache Kafka didasarkan pada model berlangganan yang diaktifkan perantara, persisten, dan terdistribusi. Kafka cepat, terukur, dan sangat efisien. |
RabbitMQ | RabbitMQ adalah aplikasi perpesanan tangguh terdistribusi terbuka. Mudah digunakan dan dijalankan di semua platform. |
JMS (Layanan Pesan Java) | JMS adalah API sumber terbuka yang mendukung pembuatan, pembacaan, dan pengiriman pesan dari satu aplikasi ke aplikasi lainnya. Ini memberikan pengiriman pesan yang terjamin dan mengikuti model publish-subscribe. |
ActiveMQ | Sistem pesan ActiveMQ adalah API JMS open source. |
ZeroMQ | ZeroMQ adalah pemrosesan pesan peer-peer tanpa broker. Ini menyediakan pola pesan dorong-tarik, router-dealer. |
Kestrel | Kestrel adalah antrian pesan terdistribusi yang cepat, andal, dan sederhana. |
Protokol Hemat
Penghematan dibuat di Facebook untuk pengembangan layanan lintas bahasa dan panggilan prosedur jarak jauh (RPC). Kemudian, ini menjadi proyek Apache open source. Apache Thrift adalah fileInterface Definition Language dan memungkinkan untuk menentukan tipe data baru dan implementasi layanan di atas tipe data yang ditentukan dengan cara yang mudah.
Apache Thrift juga merupakan kerangka kerja komunikasi yang mendukung sistem tertanam, aplikasi seluler, aplikasi web, dan banyak bahasa pemrograman lainnya. Beberapa fitur utama yang terkait dengan Apache Thrift adalah modularitas, fleksibilitas, dan performa tinggi. Selain itu, dapat melakukan streaming, perpesanan, dan RPC dalam aplikasi terdistribusi.
Storm secara ekstensif menggunakan Thrift Protocol untuk komunikasi internal dan definisi data. Topologi badai sederhana sajaThrift Structs. Storm Nimbus yang menjalankan topologi di Apache Storm adalah aThrift service.