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.

PP
Author: PP

Podobné příspěvky

  • |

    Data-centric revoluce

    Před časem jsem mluvil od architektuře zaměřené na data (Data-centric architecture), kde jsou data základním prvkem a tato data jsou využívána aplikacemi. Funkčnosti aplikací jsou tak založeny na jednotném, co nejjednoduším a rozšiřitelném datovém modelu. Přínosem pak je že, data jsou k dispozici všem aplikacím a je snadná jejich integrace. Správná data jsou tak k dispozici…

  • Je naučení technologie DDS složité?

    Možná se vám někdy stalo, že jste použili technologii a ta nefungovala podle očekávání? To se může stát například v případě, kdy technologie není použita způsobem, pro který byla primárně navržena. Ale co když není v týmu nikdo, kdo technologii DDS zná?  Jak složité je naučení technologie? Použit technologii, kterou tým dobře nezná, a kterou…

  • |

    Funguje DDS bez multicastu?

    Technologie DDS je neodmyslitelně spojena s použitím multicastu.  DDS používá multicast pro vyhledávání a zajištění nízké latence a škálovatelnost sdílení dat. Protože data mohou být odeslána pouze jednou, i když je více příjemců, která tato data vyžadují.  S rostoucím využitím různých živých vysílání se multicast bude využívat stále více. Nicméně s tím multicastem to není…

  • Co usnadňuje DDS? Část 2: Vývoj

    Často se ve spojení s DDS používá pojem middleware. Což si můžeme představit jako vrstvu, mezi aplikacemi a operačním systémem, která zabezpečuje komunikaci mezi všemi částmi distribuovaného systému. Na straně aplikací poskytuje jednotné rozhraní, aby se při vývoji nemuseli starat na které platformě (operační systém, architektura procesoru) je aplikace nasazena. Middleware (tedy i DDS) z…

  • Co DDS usnadňuje? Část 1: Návrh

    Rozhodnutí o použití technologie v architektuře vašeho systému je potřeba dobře rozmyslet. Budete zvažovat, co vám technologie v systému umožní a na druhé straně, co vás bude její nasazení stát. Špatně zvolená technologie vám totiž z dlouhodobého hlediska může velmi prodražit cenu celého systému v průběhu jeho životního cyklu. Data Distribution Service™ (DDS) usnadňuje vytvoření…

  • DDS je datová sběrnice

    Když mluvíme o technologii Data Distribution Service™ (DDS) 🌀, tak o ni nejčastěji hovoříme jako o Datové sběrnici. Co však je datová sběrnice? Na to, a na další charakteristické vlastnosti technologie DDS se podíváme v tomto videu 🎞️👇 Je to podobný koncept jako databáze 🗄️. DDS i databáze jsou koncepty, které rozumějí datovému obsahu a…

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *