Kapan Sebaiknya Menggunakan MQTT daripada HTTP untuk API?

Ashley Innocent

Ashley Innocent

13 March 2026

Kapan Sebaiknya Menggunakan MQTT daripada HTTP untuk API?

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Intinya

Gunakan MQTT untuk perangkat IoT dengan baterai terbatas, jaringan tidak stabil, atau pola pesan pub-sub. Gunakan HTTP untuk API web/seluler standar. MQTT menggunakan header 2-byte dibandingkan HTTP yang 100+ byte, menjadikannya ideal untuk perangkat terbatas. Modern PetstoreAPI mengimplementasikan MQTT untuk kalung pelacak hewan peliharaan dan pengumpan pintar.

Pendahuluan

Kalung pelacak hewan peliharaan Anda perlu mengirimkan pembaruan lokasi setiap 5 menit. Kalung ini menggunakan baterai koin yang seharusnya bertahan 6 bulan. Menggunakan HTTP, baterai habis dalam 2 minggu. Menggunakan MQTT, baterai bertahan penuh 6 bulan.

HTTP adalah standar untuk API, tetapi dirancang untuk peramban web, bukan perangkat IoT. MQTT (Message Queuing Telemetry Transport) dibangun untuk perangkat terbatas dengan bandwidth terbatas dan jaringan tidak stabil.

Modern PetstoreAPI menggunakan HTTP untuk aplikasi web dan seluler, tetapi MQTT untuk perangkat IoT: kalung pelacak hewan peliharaan, pengumpan pintar, dan monitor kesehatan.

💡
Jika Anda sedang membangun atau menguji API IoT, Apidog mendukung pengujian MQTT bersama dengan HTTP. Anda dapat menguji pola pub-sub, memvalidasi format pesan, dan mensimulasikan kegagalan jaringan.
tombol

Dalam panduan ini, Anda akan mempelajari kapan MQTT mengungguli HTTP, melihat contoh nyata dari Modern PetstoreAPI, dan menemukan cara memilih protokol yang tepat untuk kasus penggunaan Anda.

Apa Itu MQTT?

MQTT adalah protokol pesan pub-sub ringan yang dirancang untuk IoT.

Cara Kerja MQTT

Perangkat menerbitkan pesan ke topik. Perangkat lain berlangganan topik:

Publisher (Pet Collar):
  Topic: pets/019b4132/location
  Payload: {"lat":37.7749,"lng":-122.4194,"battery":85}

Subscriber (Mobile App):
  Subscribe to: pets/019b4132/location
  Receives: {"lat":37.7749,"lng":-122.4194,"battery":85}

Broker MQTT berada di tengah, mengarahkan pesan dari penerbit ke pelanggan.

Fitur-Fitur Utama MQTT

1. Header kecil - MQTT: 2 byte, HTTP: 100-500 byte

2. Koneksi persisten - MQTT menjaga koneksi tetap terbuka

3. Quality of Service (QoS) - QoS 0/1/2 untuk jaminan pengiriman

4. Last Will - Pesan dikirim jika perangkat terputus secara tak terduga

5. Pesan yang disimpan - Broker menyimpan pesan terakhir untuk pelanggan baru

Perbandingan MQTT vs HTTP

Fitur MQTT HTTP
Ukuran Header 2 byte 100-500 byte
Pola Pub-Sub (Penerbit-Pelanggan) Request-Response (Permintaan-Respons)
Koneksi Persisten Per-permintaan
Bandwidth Sangat rendah Lebih tinggi
Dampak Baterai Minimal Signifikan
Dukungan Browser Via WebSocket Bawaan

Contoh Bandwidth

1000 pembaruan lokasi per hari:

MQTT menggunakan bandwidth 8x lebih sedikit.

Kapan MQTT Unggul

1. Perangkat IoT dengan Baterai Terbatas

Kalung pelacak hewan peliharaan:

Mengapa: Koneksi persisten, header kecil, waktu radio lebih sedikit.

2. Jaringan Tidak Andal

Perangkat IoT seluler dengan jangkauan tidak merata:

3. Komunikasi Banyak-ke-Banyak

Skenario pengumpan hewan peliharaan pintar:

Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → subscribes to pets/+/feeding (all pets)
App 2 → subscribes to pets/019b4132/feeding (one pet)

4. Data Sensor Real-Time

Monitor kesehatan hewan peliharaan mengirimkan pembaruan setiap detik:

Kapan HTTP Unggul

1. Aplikasi Web/Seluler Standar

HTTP bersifat universal:

2. Pola Permintaan-Respons

Mendapatkan detail hewan peliharaan:

GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}

HTTP lebih sederhana untuk permintaan-respons.

3. Persyaratan Caching

Caching HTTP berfungsi langsung:

MQTT tidak memiliki caching.

4. API RESTful

Kode status, metode, dan semantik HTTP:

Bagaimana Modern PetstoreAPI Menggunakan MQTT

Modern PetstoreAPI mengimplementasikan MQTT untuk perangkat IoT.

Kalung Pelacak Hewan Peliharaan

Kalung menerbitkan lokasi:

Topic: pets/019b4132/location
QoS: 1 (at least once)
Payload: {
  "lat": 37.7749,
  "lng": -122.4194,
  "battery": 85,
  "timestamp": "2026-03-13T10:30:00Z"
}

Aplikasi seluler berlangganan:

const mqtt = require('mqtt');
const client = mqtt.connect('mqtts://mqtt.petstoreapi.com');

client.subscribe('pets/019b4132/location');

client.on('message', (topic, message) => {
  const location = JSON.parse(message);
  updateMap(location.lat, location.lng);
});

Pengumpan Pintar

Pengumpan berlangganan jadwal:

Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
  "times": ["08:00", "18:00"],
  "amount": 100
}

Pengumpan menerbitkan acara pemberian makan:

Topic: pets/019b4132/feeding-events
Payload: {
  "timestamp": "2026-03-13T08:00:15Z",
  "amount": 100,
  "dispensed": true
}

Monitor Kesehatan

Monitor menerbitkan tanda vital:

Topic: pets/019b4132/health
QoS: 0 (fire and forget, high frequency)
Payload: {
  "heartRate": 120,
  "temperature": 38.5,
  "activity": "resting"
}

Menguji MQTT dengan Apidog

Apidog mendukung pengujian MQTT bersama dengan HTTP dan protokol lainnya.

Uji MQTT Pub-Sub

  1. Terhubung ke broker MQTT
  2. Berlangganan topik
  3. Terbitkan pesan uji
  4. Validasi format pesan
  5. Uji tingkat QoS

Simulasikan Kegagalan Jaringan

Bandingkan dengan HTTP

Uji fungsionalitas yang sama dengan kedua protokol:

Kesimpulan

MQTT dan HTTP melayani tujuan yang berbeda. Gunakan MQTT untuk perangkat IoT dengan sumber daya terbatas. Gunakan HTTP untuk API web/seluler standar.

Modern PetstoreAPI menunjukkan cara menggunakan keduanya: HTTP untuk API yang berhadapan dengan pengguna, MQTT untuk perangkat IoT. Protokol yang tepat bergantung pada batasan Anda, bukan mana yang "lebih baik."

Uji kedua protokol dengan Apidog untuk menemukan yang paling cocok untuk kasus penggunaan Anda.

tombol

FAQ

Bisakah MQTT bekerja melalui HTTP?

MQTT dapat berjalan melalui WebSocket, yang bekerja melalui HTTP. Ini membantu melewati firewall tetapi kehilangan beberapa manfaat efisiensi MQTT.

Apa itu tingkat QoS MQTT?

Apakah MQTT aman?

Ya, MQTT mendukung enkripsi TLS (MQTTS) dan autentikasi nama pengguna/kata sandi. Modern PetstoreAPI menggunakan MQTTS untuk semua perangkat IoT.

Bisakah browser menggunakan MQTT?

Browser dapat menggunakan MQTT melalui WebSocket. Pustaka seperti MQTT.js mendukung lingkungan browser.

Bagaimana perbandingan MQTT dengan WebSocket?

MQTT adalah protokol yang dapat berjalan di atas WebSocket. WebSocket adalah lapisan transport. MQTT menambahkan fitur pub-sub, QoS, dan fitur khusus IoT di atas WebSocket.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.

Kapan Sebaiknya Menggunakan MQTT daripada HTTP untuk API?