Apache RocketMQ - Apache RocketMQ

Apache RocketMQ
Apache RocketMQ logotipi
Tuzuvchi (lar)Apache dasturiy ta'minot fondi
Dastlabki chiqarilish2012; 8 yil oldin (2012)
Barqaror chiqish
4.5.2 / 2019 yil 1-avgust; 16 oy oldin (2019-08-01)
OmborRocketMQ ombori
YozilganJava
Operatsion tizimO'zaro faoliyat platforma
TuriOqimni qayta ishlash, Xabar brokeri
LitsenziyaApache litsenziyasi 2.0
Veb-saytroketmq.apache.org

RocketMQ[1] past kechikish, yuqori ishlash va ishonchlilik, trillion darajadagi sig'im va moslashuvchan ko'lamga ega bo'lgan tarqatilgan xabar va oqim platformasi. Bu uchinchi avlod tomonidan tarqatilgan xabar tarqatish vositasi Alibaba 2012 yilda. 2016 yil 21 noyabrda Alibaba RocketMQ-ni xayriya qildi Apache dasturiy ta'minot fondi. Keyingi yil, 20 fevral kuni Apache Software Foundation Apache RocketMQ-ni eng yuqori darajadagi loyiha deb e'lon qildi.

Tarix

RocketMQ ishlab chiqarishni uch bosqichga bo'lish mumkin.[2]

Birinchi avlod ma'lumotni tashishda surish rejimidan, ma'lumotlarni saqlashda esa ma'lumotlar bazasidan foydalanadi. Bu xabarlarni etkazib berishda kam kechikishni ko'rsatadi va odatdagi elektron tijorat platformasining buyrug'iga javob beradi[3] tarqatilgan bitimlar bilan.

Ikkinchi avlod ma'lumotlar tashishda tortish rejimidan, ma'lumotlarni saqlashda fayl tizimidan foydalanadi. Bu barqarorlik va ishonchlilikka ko'proq e'tibor qaratdi va javob vaqtida birinchi avlod bilan va jurnal yig'ishda Kafka bilan taqqoslanadigan ko'rsatkichlarni namoyish etdi.

Uchinchi avlod Pull rejimini ba'zi Push operatsiyalari bilan birlashtiradi. U birinchi va ikkinchi avlodning afzalliklarini meros qilib oladi va ma'lumotlar ssenariylarining bir-biriga o'xshashligi va katta hajmida yuqori ko'rsatkichlarni namoyish etadi.

Xususiyatlari

Turli xil xabar almashish echimlari o'rtasida juda ko'p taqqoslashlar qilingan va ko'pchilikka ma'lumki, mavzular soni keskin oshganda, RocketMQ ning o'tkazuvchanligi Kafkadan ancha past bo'lgan.[4] Yuqori mahsuldorlik, yuqori ishonchlilik va real vaqtda yuqori qobiliyatning xususiyatlari, har qanday turdagi xabar almashish stsenariylarida RocketMQ va boshqa protokol komponentlarini birlashtirishga tobora ko'proq harakatlar qilinmoqda, masalan MQTT.[5]

Mijoz SDKProtokol va texnik shartlarBuyurtma qilingan xabarRejalashtirilgan xabarJamlangan xabarBroadCast xabariXabar filtriServer tomonidan yuborilgan etkazib berish
Java, C / C ++, Python, Go, NodejsModelni torting, TCP, JMS, OpenMessaging-ni qo'llab-quvvatlangXabarlarning qat'iy tartibini ta'minlang va ular chiroyli tarzda kengaytirilishi mumkinQo'llab-quvvatlanadiXabarlarni yo'qotmaslik uchun sinxronlash rejimi bilan qo'llab-quvvatlanadiQo'llab-quvvatlanadiSQL92 asosida qo'llab-quvvatlanadigan, xususiyat filtri ifodalariQo'llab-quvvatlanadi
Xabarlarni saqlashRetroaktiv xabarXabarning ustuvorligiYuqori darajadagi foydalanish va ishlamay qolishXabar treklariKonfiguratsiya
Yuqori mahsuldorlik va kam kechiktirilgan fayllarni saqlashQo'llab-quvvatlanadigan vaqt tamg'asi va ikkitasi ofsetQo'llab-quvvatlanmaydiQo'llab-quvvatlanadigan, Master-Slave modeli, boshqa to'plamsizQo'llab-quvvatlanadiQutidan tashqarida ishlash, foydalanuvchi faqat bir nechta konfiguratsiyaga e'tibor berishi kerak

Arxitektura

RocketMQ to'rt qismdan iborat: ism-serverlar, brokerlar, ishlab chiqaruvchilar va iste'molchilar. Ularning har biri gorizontal ravishda bitta Nosozlik nuqtasiz kengaytirilishi mumkin. Chapdagi rasmda ko'rsatilgandek.

NameServer klasteri

Xizmatni aniqlash uchun engil komponent va ular marshrutlash ma'lumotlarini o'qish va yozish uchun ishlatilishi mumkin. Ularning har biri global ma'lumotlarni qayd etadi va tezkor saqlashni kengaytirishni qo'llab-quvvatlaydi.

Broker klasteri

Ular ma'lumotlarni saqlashni boshqarish uchun engil TOPIC va QUEUE mexanizmlaridan foydalanadilar. Xatolarga chidamlilikni anglash uchun ma'lumotlarning ikki nusxasi yoki uch nusxasi taqdim etiladi. Mijoz xabarni Push va Pull modellarida olishi mumkin. Bundan tashqari, tabiiy ofatlarni tiklash va boy ko'rsatkichlar statistikasi ham qo'llab-quvvatlanadi.

Ishlab chiqaruvchilar klasteri

Ishlab chiqaruvchilar tarqatilishi mumkin va ishlab chiqaruvchilardan brokerlarga yuboriladigan xabarlar ko'p yo'nalishli bo'lishi mumkin. Bundan tashqari, tezkor ishlamay qolish va kam kechikish qo'llab-quvvatlanadi.

Iste'molchilar klasteri

Iste'molchilar, shuningdek, surish va tortish modelida tarqatilishi mumkin va ular xabarlarni real vaqt rejimida obuna bo'lishlari, klaster birligida xabarlarni iste'mol qilishlari mumkin. Xabarlarni tarqatish ham qo'llab-quvvatlanadi.

Ilovalar

Apache RocketMQ bilan bog'liq bo'lishi mumkin bo'lgan kamida beshta jihat mavjud:

  • Geterogen tizimlarning integratsiyasi ;
  • Ilovalar o'rtasida ajratish;
  • Hodisalarga yo'naltirilgan mexanizm va murakkab voqealar arxitekturasi modelidagi magistral;
  • Ma'lumotlarni takrorlash kanallari;
  • Oqimlarni hisoblash mexanizmi bilan integratsiya;
  • Ma'lumotlarga kirish.

Jamiyatni saqlash

RocketMQ jamoasi hamjamiyatni faollashtirish uchun ko'p ish qildi. Uchrashuvlar, seminarlar, ApacheCon va Code Marathon muntazam ravishda yangi yordamchilar va majburiyatlarni jalb qilish uchun Bejing, ShenZhen, HangZhou-da o'tkaziladi. Hozirda RocketMQ uchun OpenMessaging benchmarking to'plamlari mavjud va bu RocketMQ-ni tarqatilgan xabar almashish bo'yicha global standart bilan bir xilda ushlab turishga imkon beradi.[6] Versiya boshqaruviga kelsak, standartlashtirilgan dasturiy ta'minotni ishlab chiqish jarayonlarining bir qatori qabul qilingan. Eng so'nggi versiyasi 4.2.0 va 4.3.0 yo'lda. Qo'shimcha ma'lumotni olishingiz mumkin Bu yerga.

Mukofotlar

2016 yil Xitoyning eng mashhur ochiq manbali dasturiy ta'minot mukofoti

2017 yil Xitoyning eng mashhur ochiq manbali dasturiy ta'minot mukofoti

16-chi CJK (Xitoy-Yaponiya-Janubiy Koreya) ochiq manbali dasturiy ta'minotning eng yaxshi texnologiyalar mukofoti

2018 yil Xitoyning eng mashhur ochiq manbali dasturiy ta'minot mukofoti

2019 Xitoyning eng mashhur ochiq manbali dasturiy ta'minot mukofoti

Shuningdek qarang

Adabiyotlar

  1. ^ "apache / rocketmq". GitHub. Olingan 2018-05-25.
  2. ^ "Alibabadan Apachegacha: RocketMQ ning o'tmishi, bugungi va kelajagi". Ma'lumot. Olingan 2018-06-26.
  3. ^ Liao, Tszianvey; Chjuan, Syaodan; Fan, Renyi; Peng, Xiaoning (2017). "Onlayn tranzaktsiyalarni qayta ishlash uchun umumiy tarqatiladigan xabar almashish doirasiga". IEEE Access. 5: 18166–18178. doi:10.1109 / ACCESS.2017.2717930.
  4. ^ Bulut, Alibaba (2018-01-04). "Kafka va RocketMQ - bir nechta mavzular bo'yicha stressni sinash natijalari". O'rta. Olingan 2018-07-08.
  5. ^ Yue, Ma; Ruiyang, Yan; Jianwei, quyosh; Kaifeng, Yao (2017). "RocketMQ-ga asoslangan MQTT protokoli xabarlarini bosish serveri". 2017 yil Intellektual hisoblash texnologiyasi va avtomatlashtirish bo'yicha 10-xalqaro konferentsiya (ICICTA). 295-298 betlar. doi:10.1109 / ICICTA.2017.72. ISBN  978-1-5386-1230-9.
  6. ^ "OpenMessaging benchmark doirasi". openmessaging.cloud. Olingan 2018-07-08.

Tashqi havolalar