Apache RocketMQ - Apache RocketMQ
Vývojáři | Softwarová nadace Apache |
---|---|
První vydání | 2012 |
Stabilní uvolnění | 4.5.2 / 1. srpna 2019 |
Úložiště | Úložiště RocketMQ |
Napsáno | Jáva |
Operační systém | Cross-platform |
Typ | Zpracování streamu, Zprostředkovatel zpráv |
Licence | Licence Apache 2.0 |
webová stránka | rocketmq |
RocketMQ[1] je distribuovaná platforma pro zasílání zpráv a streamování s nízkou latencí, vysokým výkonem a spolehlivostí, kapacitou na úrovni bilionů a flexibilní škálovatelností. Jedná se o middleware distribuované zasílání zpráv třetí generace otevřený zdrojem od Alibaba v roce 2012. 21. listopadu 2016 společnost Alibaba darovala RocketMQ softwarová nadace Apache. Příští rok, 20. února, Apache Software Foundation oznámila Apache RocketMQ jako projekt nejvyšší úrovně.
Dějiny
Vývoj RocketMQ lze rozdělit do tří fází.[2]
První generace používá režim přenosu v přenosu dat a relační databázi v úložišti dat. Ukazuje nízkou latenci v doručování zpráv a splňuje příkaz typické platformy elektronického obchodování[3] s distribuovanými transakcemi.
Druhá generace používá režim přenosu v přenosu dat a souborový systém v úložišti dat. Věnoval větší pozornost stabilitě a spolehlivosti a vykazuje srovnatelný výkon jako první generace v době odezvy a Kafka při shromažďování protokolů.
Třetí generace kombinuje režim Pull s některými operacemi Push. Zdědí výhody první a druhé generace a ukazuje vysoký výkon v souběžnosti a obrovské množství datových scénářů.
Funkce
Bylo provedeno mnoho srovnání mezi různými řešeními pro zasílání zpráv a je všeobecně známo, že když se dramaticky zvýší počet témat, propustnost RocketMQ poklesla mnohem méně než Kafka.[4] Vzhledem k charakteristikám vysokého výkonu, vysoké spolehlivosti a vysoké schopnosti v reálném čase bylo vyvinuto stále větší úsilí ke kombinaci RocketMQ a dalších komponent protokolu ve všech typech scénářů zasílání zpráv, jako je MQTT.[5]
Klientská sada SDK | Protokol a specifikace | Objednaná zpráva | Naplánovaná zpráva | Dávková zpráva | BroadCast zpráva | Filtr zpráv | Opětovné doručení spuštěno serverem |
---|---|---|---|---|---|---|---|
Java, C / C ++, Python, Go, Nodejs | Vytáhněte model, podporujte TCP, JMS, OpenMessaging | Zajistěte přísné řazení zpráv a můžete ladně škálovat | Podporováno | Podporováno, s režimem synchronizace, aby nedošlo ke ztrátě zprávy | Podporováno | Podporované výrazy filtrů vlastností založené na SQL92 | Podporováno |
Úložiště zpráv | Zpráva se zpětnou platností | Priorita zprávy | Vysoká dostupnost a převzetí služeb při selhání | Sledování zpráv | Konfigurace | ||
Vysoký výkon a nízké latence úložiště souborů | Podporované časové razítko a offset dva indikují | Není podporováno | Podporovaný model Master-Slave bez další sady | Podporováno | Po vybalení z krabice musí uživatel věnovat pozornost pouze několika konfiguracím |
Architektura
RocketMQ se skládá ze čtyř částí: jmenné servery, makléři, producenti a spotřebitelé. Každý z nich může být vodorovně prodloužen bez jediného bodu selhání. Jak je znázorněno na obrázku vlevo.
Cluster názvů serverů
Lehká součást pro zjišťování služeb a lze je použít ke čtení a zápisu informací o směrování. Každý z nich zaznamenává globální informace a podporuje rychlé rozšíření úložiště.
Broker Cluster
Ke správě datových úložišť používají odlehčené mechanismy TOPIC a QUEUE. Pro zajištění odolnosti proti chybám jsou k dispozici dvě kopie nebo tři kopie dat. A klient může dostávat zprávy v modelu Push and Pull. Kromě toho je také podporováno zotavení po katastrofě a statistické statistiky metrik.
Klastr producentů
Producenti mohou být rozmístěni nasazeni a zprávy od producentů zprostředkovatelům mohou být vyváženy prostřednictvím více cest. Kromě toho jsou podporovány rychlé selhání a nízká latence.
Spotřebitelský klastr
Spotřebitelé mohou být také distribuováni nasazeni v modelu push and pull a mohou si předplatit zprávy v reálném čase, konzumovat zprávy v jednotce clusteru. Je také podporováno vysílání zpráv.
Aplikace
Existuje alespoň pět aspektů, kterých se Apache RocketMQ může týkat:
- Integrace heterogenních systémů ;
- Oddělení mezi aplikacemi;
- Páteř v mechanismu řízeném událostmi a složitém modelu architektury událostí;
- Kanály replikace dat;
- Integrace s motorem pro výpočet průtoku;
- Streamujte přístup k datům.
Komunitní údržba
Tým RocketMQ udělal hodně pro aktivizaci komunity. Setkání, workshopy, ApacheCon a Code Marathon se pravidelně konají v BeiJing, ShenZhen, HangZhou, aby přilákaly nové přispěvatele a spolupracovníky. Srovnávací sady OpenMessaging jsou aktuálně dostupné pro RocketMQ a díky tomu RocketMQ drží krok s globálním standardem pro distribuované zasílání zpráv.[6] Pokud jde o správu verzí, je přijata řada standardizovaných procesů vývoje softwaru. Nejnovější verze je 4.2.0 a 4.3.0 je na cestě. Více informací naleznete v tady.
Ocenění
2016 nejpopulárnější ocenění open source softwaru v Číně
2017 nejpopulárnější ocenění open source softwaru v Číně
16. CJK (Čína-Japonsko-Jižní Korea) cena za vynikající technologii open source softwaru
2018 nejpopulárnější ocenění open source softwaru v Číně
2019 nejpopulárnější ocenění open source softwaru v Číně
Viz také
Reference
- ^ "apache / rocketmq". GitHub. Citováno 2018-05-25.
- ^ „Od Alibaba po Apache: minulost, přítomnost a budoucnost RocketMQ“. InfoQ. Citováno 2018-06-26.
- ^ Liao, Jianwei; Zhuang, Xiaodan; Fan, Renyi; Peng, Xiaoning (2017). „Směrem k obecnému rámci pro distribuované zasílání zpráv pro aplikace pro zpracování transakcí online“. Přístup IEEE. 5: 18166–18178. doi:10.1109 / ACCESS.2017.2717930.
- ^ Cloud, Alibaba (04.01.2018). „Kafka vs. RocketMQ - více výsledků zátěžového testu podle tématu“. Střední. Citováno 2018-07-08.
- ^ Yue, Ma; Ruiyang, Yan; Jianwei, Sun; Kaifeng, Yao (2017). Msgstr "Server protokolu MQTT nabízející zprávy na základě RocketMQ". 10. mezinárodní konference 2017 o inteligentních výpočetních technologiích a automatizaci (ICICTA). str. 295–298. doi:10.1109 / ICICTA.2017.72. ISBN 978-1-5386-1230-9.
- ^ „Benchmarkový rámec OpenMessaging“. openmessaging.cloud. Citováno 2018-07-08.