JackCode նավիգացիաՍտեղծեք, գործարկեք և մասշտաբավորեք iGaming ապրանքներ։
Փոխել լեզուն
Գործնական ուղեցույց

Քեշին և բրոկերները

Ինչպես բետթինգի պլատֆորմներում օգտագործվում են Redis, Kafka և RabbitMQ-ը 'աշխատանքի արագացումը, հոսքը, մեծացումը և անկայունությունը։
Փորձագետ Ֆեդոր Կորոլև

Բետթինգ համակարգերը աշխատում են բարձր բեռի տակ և պահանջում են ակնթարթային տվյալների վերամշակում 'ստանդարտ դրույքաչափեր, հոսքային իրադարձություններ, հաշվարկներ և ինտերֆեյս պետք է համաժամեցվեն իրական ժամանակում։ Ահա թե ինչու ճարտարապետության մեջ կարևոր դեր են խաղում քաշման համակարգերը (Redis) և հաղորդագրությունների բրոկերները (Kafka, RabbitMQ)։ Դրանք ապահովում են խաղի գործընթացի համար կրիտիկական արագություն, կայունություն և մեծացում։

Ինչու՞ պետք է քեշը բետտինգում

Redis-ն օգտագործվում է որպես բարձր արտադրողական in-memory պահեստ:
  • Կոդավորման, գործակիցների, իրադարձությունների ստատուսների
  • TTL տվյալների պահեստները (Timers international, տեղեկատվական-նորարարություն)
  • Արագ մուտք դեպի օգտագործողի նստաշրջաններ, զամբյուղներ, պատմություններ
  • Rate-limiting, սահմանափակումներ տոկոսադրույքների, հակաֆրոդի
  • Բուֆերիզացիան դանդաղ բազայի և ինտերֆեյսի միջև

Redis-ն օգտագործվում է pub/sub ռեժիմում միկրովայրկյանների միջև ակնթարթային ծանուցումների համար։

Ի՞ նչ են անում բրոկերները

Kafka և RabbitMQ-ը կառավարում են տվյալների հոսքերը միկրովեռների և արտաքին պրովայդերների միջև

Օգտագործման սցենարը Kafka RabbitMQ
Սպորտային իրադարձությունների հոսքը Բարձր թողունակություն Սահմանափակ ծավալներով
Գործակիցների նորարարություն Լավ հարմար է Հարմար է հերթերի համար
Ծանուցումներ, ալերտներ Ավելորդ Կատարյալ է պարզ սցենարներում
Վերլուծություն և տրամաբանություն Striming ClickHouse Ավելի լավ Kafka կամ լոգ հավաքողներ

Kafka vs RabbitMQ - ընտրությունը կախված է առաջադրանքից

Քննադատություն Kafka RabbitMQ
Թողունակություն Շատ բարձր (միլիոն www.g/sec) Միջին
Հերթականություն և կարգուկանոն Երաշխավորված Աջակցվում է
Հաղորդագրությունների պահպանումը Երկարաժամկետ (105) Կարճաժամկետ (հիշողություն/սկավառակ)
Բեռի կառավարումը Հիանալի է Պարզ է տեղադրման և տեղադրման մեջ
Իդեալական է Հոսքեր, լոգարաններ, real-time API Բեքենդա, ծանուցումներ, հերթեր

Ճարտարապետական լուծումների օրինակներ

Redis + PostgreSQL 'արագ ֆորումը BD-ի հետ:
  • Kafka + Go-ծառայություններ 'իրադարձությունների ընդունումը և գործակիցների սթրիմինգը
  • RabbitMQ + Node. js 'բոնուսների, թնդանոթների, e-mail իրադարձությունների վերամշակում
  • Kafka no ClickHouse: Հոսքային վերլուծաբան, 2019-2019

Ի՞ նչ է դա տալիս պլատֆորմը

Իրադարձությունների արձագանքը միլիմետսեկունդի սահմաններում է:
  • BD և API բեռնաթափումը կեշի և հերթերի պատճառով
  • Միկրովայրկյանցիների մասշտաբը առանց կոշտ կապի
  • Վստահության բարձրացում 'ձախողումները չեն ազդում ամբողջ համակարգի վրա
  • Real-Time-ի և alerting- ի կառուցման հնարավորությունը

Քեշին և բրոկերները իրական ժամանակի միջուկն են բետթինգի համակարգերում։ Redis-ը տալիս է կայծակնային հասանելիություն տվյալների, Kafka և RabbitMQ-ը կառավարում են իրադարձությունների հոսքերը, և միասին նրանք անում են հնարավոր մասշտաբային, անկայուն և կայուն պլատֆորմի վարքագիծը աշխատանքային բեռում։ Առանց դրանց այսօր ոչ մի լուրջ բետթինգի ապրանք չի կառուցվում։