Akıllı sayaçlar, araç telemetrisi, endüstriyel sensörler veya mobil cihazlardan gerçek zamanlı telemetri toplarken AWS IoT Core veya HiveMQ Cloud gibi sunucusuz platformları kullanmak; cihaz sayısı 10 binleri aştığında ve her saniye veri aktığında 'bağlantı dakikası' ve 'mesaj adedi' tarifeleriyle ayda yüzlerce ve binlerce dolarlık devasa faturalara yol açar. Erlang/OTP BEAM sanal makinesi üzerinde 1 milyondan fazla eşzamanlı bağlantıyı kilitlenmesiz yönetebilen EMQX veya saf C ile yazılmış ultra hafif Mosquitto'yu kendi VDS sunucunuzda barındırarak; sınırsız mesajlaşma, sıfır mesaj vergisi ve %100 yerel veri egemenliğiyle %95'in üzerinde net tasarruf sağlayın.
ulimit -n 26024.version: '3.8'
services:
# EMQX 5.x: Erlang/OTP tabanlı, 1.000.000+ eşzamanlı MQTT bağlantısı ve kural motoru
emqx:
image: emqx/emqx:5.8.0
restart: unless-stopped
ports:
- "1883:1883" # MQTT Standart TCP Portu
- "8883:8883" # MQTTS (TLS/SSL Şifreli Port)
- "8083:8083" # MQTT over WebSocket
- "8084:8084" # MQTT over WSS (Güvenli WebSocket)
- "18083:18083" # EMQX Modern Web Kontrol Paneli (Admin UI)
environment:
- EMQX_DASHBOARD__DEFAULT_USERNAME=admin
- EMQX_DASHBOARD__DEFAULT_PASSWORD=GucluAdminSifresi2026
- EMQX_NODE__DATA_DIR=/opt/emqx/data
volumes:
- emqx_data:/opt/emqx/data
ulimits:
nofile:
soft: 1048576
hard: 1048576
volumes:
emqx_data:AWS IoT Core, cihazların sunucuya açık tuttuğu her 1 milyon dakikalık bağlantı için $0.08 ve her 1 milyon mesaj için $1.00 ücret tahsil eder. Örneğin 20.000 cihazın 7/24 bağlı olduğu ve her 10 saniyede bir 256 baytlık telemetri gönderdiği bir IoT filosunda ayda 51 milyon mesaj üretilir. AWS faturası her ay $150 - $350 seviyesine ulaşırken, cihaz sayısı 100.000'e çıktığında fatura ayda $1.500 - $3.000 bandını aşar.
Oysa VDS sunucuları üzerindeki ağ bant genişliği ve CPU gücü sabittir. EMQX veya Mosquitto ile ayda 50 milyon veya 500 milyon mesaj göndermeniz sunucu maliyetinizi ($14 - $45/ay) kesinlikle değiştirmez.
EMQX, Ericsson'un telekomünikasyon altyapıları için geliştirdiği Erlang OTP üzerinde çalışır. Her MQTT bağlantısı çekirdek seviyesinde hafif bir 'aktör süreci' (actor process) olarak yönetilir ve tek bir VDS'te 1.000.000 bağlantıyı kaldırabilir.
EMQX içerisindeki dahili SQL kural motoru, gelen MQTT mesajlarını harici kod yazmadan doğrudan PostgreSQL, ClickHouse, Kafka veya InfluxDB'ye aktarabilir.
Edge gateway'ler veya 50.000 cihaza kadar olan küçük ölçekli sistemlerde Mosquitto, tek thread ve saf C mimarisiyle yalnızca 15-45 MB RAM tüketerek inanılmaz bir hafiflik sunar.
Linux varsayılan olarak her kullanıcı sürecine (process) en fazla 1024 açık dosya tanımlayıcısı (file descriptor / socket) izni verir. Yüksek eşzamanlı bir MQTT sunucusunda bağlantı reddi (connection refused) almamak için /etc/security/limits.conf dosyasında nofile 1048576 tanımlanmalı ve fs.file-max çekirdek limiti artırılmalıdır.