Data Distribution Service (DDS) vs Apache Kafka
V čem jsou tyto technologie podobné, v čem se liší a jak je nejlépe ve svém IoT nejlépe použít. To se dozvíte v tomto videu
DDS: plně decentralizovaná komunikační platforma (technologie) pro sdílení dat v reálném čase mezi různými zařízeními a aplikacemi s možnosti ovlivňovat parametry přenosu pomocí QoS
Kafka: distribuovaná streamovací platforma pro zpracování událostí v reálném čase. Umožňuje příjem událostí, jejich distribuované uložení a následné zpracování.
Podobnosti.
- Standard a defacto standard.
- Usnadňují vytváření distribuovaných systémů (každá svým způsobem).
- Event driven-architecture. Asynchronní zasílání zpráv založených na Pubslish-subscribe.
- Škálovatelné, jsme schopni reagovat na rostoucí počet poskytovatelů a příjemců dat
- Vhodné pro integraci dat a aplikací díky volné vazbě mezi jednotlivými komponentami.
- Obsahuje podporu pro dopředné i zpětné kompatibilní změny ve schématu. Infrastruktura hlídá kompatibilitu dat. Správa netypovaných dat se prostě u většího systému nedá zvládat.
- Jsou schopni přenášet obrovské množství zpráv – High throughput
- Poskytují vysokou dostupnost dat, a zajišťují tak pouze případnou konzistenci dat.
- Určeny převážně pro větší distribuované systémy.
- Silné zabezpečení
Rozdíly.
DDS:
- Decentralized – peer to peer
- Push publisher and subscriber
- Data format: IDL, Strongly typed. Data-Centric –
- Microsecundy
- Technologie poskytuje stavové informace o aplikacích a datech (např. vím o připojených a odhlášených aplikacích a vím o stavu dat v systému (přečteny, nepřečteny, nová data)).
- DDS je postavena pro nespolehlivé linky a je tolerantní k chybám sítě.
Kafka:
- Centralized – broker klaster
- Push publisher/Pool Consumer
- Data format: you can chose, ale protože data potřebují být zpracovávána, v tu chvíli je dobré vědět co za data zpracovávám, logický krok tak byl použít schémata, výchozí je Avro (JSON/binarni) is used with Schema Registry (protobuf a json schema).
- Milisekundy.
- Pouze TCP
- Kafka potřebuje stabilní síť a infrastrukturu.
V čem je každá technologie dobrá, čím se vyznačuje?
- DDS:
- Výhodou je, že není nutné mít prostředníka (brokera) – vyhledávání účastníků, funguje i na UDP a vlastnosti přenosu lze konfigurovat (QoS).
- Kafka:
- Je schopna uchovávat velké objemy dat pro zpracování aplikacemi.
- Předpřipravené integrace pro zasílání dat do Kafka Clusteru (ActiveMQ, RabbitMQ, JMS, MQTT, a různé typy databází)
Kde je jejich místo/účel?
- DDS: pro realtime komunikaci mezi zařízeními (fyzickými) (i když je možné ji použít i pro komunikaci mezi datacentry/Cloudy)
- Kafka: pro realtime zpracování dat v datacentrech (i když je možné ji použít i blíže zařízením).
DDS a Kafka jsou různé produkty, které jsou vytvořeny pro různé účely. Kafka není postavena pro komunikaci s fyzickými zařízení a DDS zase není postavena pro zpracování historických dat.
To znamená, že technologie DDS a Kafka si nekonkurují, ale doplňují.
Jejich spojením a využitím toho nejlepšího získáte škálovatelnou, spolehlivou a bezpečnou IoT infrastrukturu.
Zajímá-li vás technologie Data-Distribution Service™ (DDS®) nebo technologie Apache Kafka® tak se podívejte na stránku www.pavelpohanka.cz/dds-kafka, kde si můžete tyto informace stáhnout ve formě myšlenkové mapy.