Шабакаи хидматрасониро оташ занед - Бозоғоз кунед

Рӯзи 26 феврал мо вохӯрии Apache Ignite GreenSource баргузор кардем, ки дар он саҳмгузорон дар лоиҳаи кушодаасос суханронӣ карданд. Apache Ignite. Вокеаи му-хим дар хаёти ин чамъият бозсозии таркиб буд Шабакаи хидматрасониро оташ занед, ки ба шумо имкон медиҳад, ки микросервисҳои фармоиширо мустақиман дар кластери Ignite ҷойгир кунед. Вай дар мачлиси машваратй дар бораи ин процесси душвор сухан ронд Вячеслав Дарадур, муҳандиси нармафзор ва саҳмгузори Apache Ignite зиёда аз ду сол.

Шабакаи хидматрасониро оташ занед - Бозоғоз кунед

Биёед аз он оғоз кунем, ки Apache Ignite умуман чист. Ин пойгоҳи додаҳоест, ки нигаҳдории тақсимшудаи Калид/Арзиш бо дастгирии SQL, транзаксия ва кэш мебошад. Илова бар ин, Ignite ба шумо имкон медиҳад, ки хидматҳои фармоиширо мустақиман дар кластери Ignite ҷойгир кунед. Таҳиягар ба ҳама абзорҳое, ки Ignite пешниҳод мекунад, дастрасӣ дорад - сохторҳои тақсимшудаи додаҳо, паёмнависӣ, ҷараён, ҳисоббарорӣ ва шабакаи маълумот. Масалан, ҳангоми истифодаи шабакаи Data Grid, мушкилоти идоракунии инфрасохтори алоҳида барои нигоҳдории маълумот ва дар натиҷа, хароҷоти изофӣ аз байн меравад.

Шабакаи хидматрасониро оташ занед - Бозоғоз кунед

Бо истифода аз API Service Grid, шумо метавонед хидматро тавассути муайян кардани нақшаи ҷойгиркунӣ ва мувофиқан худи хидмат дар конфигуратсия ҷойгир кунед.

Одатан, нақшаи ҷойгиркунӣ нишондиҳандаи шумораи мисолҳое мебошад, ки бояд дар гиреҳҳои кластер ҷойгир карда шаванд. Ду нақшаи маъмулии ҷойгиркунӣ мавҷуданд. Аввалин Cluster Singleton аст: дар ҳар вақти муайян, як намунаи хидмати корбар кафолат дода мешавад, ки дар кластер дастрас бошад. Дуюм Node Singleton аст: як мисоли хидмат дар ҳар як гиреҳи кластер ҷойгир карда мешавад.

Шабакаи хидматрасониро оташ занед - Бозоғоз кунед

Истифодабаранда инчунин метавонад шумораи мисолҳои хидматрасониро дар тамоми кластер муайян кунад ва предикатро барои филтр кардани гиреҳҳои мувофиқ муайян кунад. Дар ин сенария, худи Хадамоти Grid тақсимоти оптималиро барои густариши хидматҳо ҳисоб мекунад.

Илова бар ин, чунин хусусият ба монанди Хадамоти Affinity вуҷуд дорад. Аффинӣ функсияест, ки муносибати калидҳоро ба қисмҳо ва муносибати тарафҳоро ба гиреҳҳои топология муайян мекунад. Бо истифода аз калид шумо метавонед гиреҳи ибтидоиро, ки дар он маълумот нигоҳ дошта мешавад, муайян кунед. Бо ин роҳ шумо метавонед хидмати шахсии худро бо кэши функсияи калидӣ ва наздикӣ пайваст кунед. Агар функсияи наздикшавӣ тағир ёбад, дубора ҷойгиркунии худкор сурат мегирад. Ҳамин тариқ, хадамот ҳамеша дар наздикии маълумоте, ки барои коркарди он лозим аст, ҷойгир хоҳад шуд ва мутаносибан хароҷоти дастрасии иттилоотро кам мекунад. Ин схемаро як навъ хисоббарории якчоя номидан мумкин аст.

Акнун, ки мо фаҳмидем, ки зебоии Service Grid чист, биёед дар бораи таърихи рушди он сӯҳбат кунем.

Пештар чй шуд

Татбиқи қаблии Service Grid ба кэши системаи такрории транзаксионии Ignite асос ёфтааст. Калимаи "кэш" дар Ignite ба нигоҳдорӣ ишора мекунад. Яъне, ин чизи муваққатӣ нест, чунон ки шумо фикр мекунед. Сарфи назар аз он, ки кэш такрор карда мешавад ва ҳар як гиреҳ тамоми маҷмӯи маълумотро дар бар мегирад, дар дохили кэш он дорои намояндагии тақсимшуда мебошад. Ин ба оптимизатсияи нигоҳдорӣ вобаста аст.

Шабакаи хидматрасониро оташ занед - Бозоғоз кунед

Вақте ки корбар мехост хидматро ҷойгир кунад, чӣ шуд?

  • Ҳама гиреҳҳои кластер барои навсозии маълумот дар анбор бо истифода аз механизми дарунсохташудаи дархости доимӣ обуна шуданд.
  • Гиреҳи оғозкунанда, дар доираи амалиёти хондашуда, дар базаи маълумот сабт кард, ки конфигуратсияи хидматро дар бар мегирад, аз ҷумла намунаи силсилавӣ.
  • Ҳангоми огоҳӣ дар бораи вуруди нав, ҳамоҳангсоз тақсимотро дар асоси конфигуратсия ҳисоб кард. Объекти натиҷавӣ дубора ба пойгоҳи додаҳо навишта шуд.
  • Агар гиреҳ қисми тақсимот бошад, ҳамоҳангсоз бояд онро ҷойгир кунад.

Он чизе ки ба мо мувофиқ набуд

Дар баъзе мавридҳо мо ба хулосае омадем: ин тавр кор кардан бо хидматҳо нест. Якчанд сабабҳо буданд.

Агар ҳангоми ҷойгиркунӣ ягон хатогӣ рух дода бошад, пас онро танҳо аз гузоришҳои гиреҳ, ки ҳама чиз рӯй дод, фаҳмидан мумкин аст. Танҳо ҷобаҷогузории асинхронӣ вуҷуд дошт, аз ин рӯ пас аз баргардонидани назорат ба корбар аз усули ҷойгиркунӣ, барои оғози хидмат вақти иловагӣ лозим буд - ва дар ин муддат корбар ҳеҷ чизро идора карда натавонист. Барои рушди минбаъдаи Шабакаи хидматрасонӣ, эҷод кардани хусусиятҳои нав, ҷалби корбарони нав ва осон кардани ҳаёти ҳама чизеро тағир додан лозим аст.

Ҳангоми тарҳрезии Шабакаи нави хидматрасонӣ, мо пеш аз ҳама мехостем, ки кафолати ҷойгиркунии синхронӣ пешниҳод кунем: вақте ки корбар назоратро аз API баргардонд, ӯ метавонад фавран аз хидматҳо истифода барад. Ман инчунин мехостам, ки ба ташаббускор қобилияти коркарди хатогиҳои ҷойгиркунӣ диҳад.

Илова бар ин, ман мехостам татбиқро содда кунам, яъне аз муомилот ва мувозинат дурӣ ҷӯям. Сарфи назар аз он, ки кэш такрор карда мешавад ва мувозинат вуҷуд надорад, мушкилот ҳангоми ҷойгиркунии калон бо гиреҳҳои зиёд ба миён омаданд. Вақте ки топология тағир меёбад, гиреҳҳо бояд мубодилаи иттилоот дошта бошанд ва ҳангоми ҷойгиркунии калон, ин маълумот метавонад хеле вазнин бошад.

Вақте ки топология ноустувор буд, координатор бояд тақсимоти хидматҳоро аз нав ҳисоб кунад. Ва умуман, вақте ки шумо бояд бо транзаксияҳо дар топологияи ноустувор кор кунед, ин метавонад ба хатогиҳои пешгӯишаванда оварда расонад.

Масъалаҳо

Тағйироти глобалӣ бе мушкилоти ҳамроҳ чист? Аввалин ин тағирот дар топология буд. Шумо бояд фаҳмед, ки дар ҳар лаҳза, ҳатто дар лаҳзаи ҷойгиркунии хидмат, гиреҳ метавонад ба кластер ворид ё тарк шавад. Ғайр аз он, агар дар вақти ҷойгиркунӣ гиреҳ ба кластер пайваст шавад, зарур аст, ки пайваста ҳама маълумот дар бораи хидматҳо ба гиреҳи нав интиқол дода шаванд. Ва мо на танҳо дар бораи он чизе, ки аллакай ҷойгир карда шудааст, балки дар бораи ҷойгиркунии ҷорӣ ва оянда низ гап мезанем.

Ин танҳо яке аз мушкилотест, ки онҳоро дар рӯйхати алоҳида ҷамъоварӣ кардан мумкин аст:

  • Чӣ гуна хидматҳои ба таври статикӣ танзимшударо ҳангоми оғозёбии гиреҳ ҷойгир кардан мумкин аст?
  • Тарк кардани гиреҳ аз кластер - чӣ бояд кард, агар гиреҳ хидматҳоро ҷойгир кунад?
  • Чӣ бояд кард, агар координатор иваз шуда бошад?
  • Чӣ бояд кард, агар муштарӣ ба кластер дубора пайваст шавад?
  • Оё дархостҳои фаъол/фаъолкунӣ бояд коркард карда шаванд ва чӣ тавр?
  • Чӣ мешавад, агар онҳо барои нест кардани кэш даъват карда шаванд ва мо хидматҳои марбут ба он дошта бошем?

Ва ин ҳама нест.

ҳалли

Ҳамчун ҳадаф, мо равиши ба рӯйдодҳо асосёфтаро бо татбиқи иртиботи раванд бо истифода аз паёмҳо интихоб кардем. Ignite аллакай ду ҷузъро амалӣ мекунад, ки ба гиреҳҳо имкон медиҳанд, ки паёмҳоро байни худ интиқол диҳанд - коммуникатсия-spi ва Discovery-spi.

Шабакаи хидматрасониро оташ занед - Бозоғоз кунед

Communication-spi ба гиреҳҳо имкон медиҳад, ки мустақиман муошират кунанд ва паёмҳоро ирсол кунанд. Он барои фиристодани миқдори зиёди маълумот мувофиқ аст. Discovery-spi ба шумо имкон медиҳад, ки ба ҳама гиреҳҳои кластер паём фиристед. Дар татбиқи стандартӣ, ин бо истифода аз топологияи ҳалқа анҷом дода мешавад. Инчунин бо Zookeeper ҳамгироӣ мавҷуд аст, дар ин ҳолат топологияи ситора истифода мешавад. Як нуктаи муҳими дигар, ки бояд қайд кард, он аст, ки discovery-spi кафолат медиҳад, ки паём бешубҳа бо тартиби дуруст ба ҳама гиреҳҳо расонида мешавад.

Биёед ба протоколи ҷойгиркунӣ назар кунем. Ҳама дархостҳои корбар барои ҷойгиркунӣ ва бекоркунӣ тавассути Discovery-spi фиристода мешаванд. Ин чунин медиҳад кафолат медиҳад:

  • Дархост аз ҷониби ҳамаи гиреҳҳои кластер қабул карда мешавад. Ин имкон медиҳад, ки дархост ҳангоми тағир додани ҳамоҳангсоз коркардро идома диҳад. Ин инчунин маънои онро дорад, ки дар як паём, ҳар як гиреҳ дорои ҳама метамаълумоти зарурӣ, ба монанди конфигуратсияи хидмат ва намунаи силсилавии он хоҳад буд.
  • Тартиби қатъии интиқоли паём барои ҳалли ихтилофоти конфигуратсия ва дархостҳои рақобаткунанда кӯмак мекунад.
  • Азбаски вуруди гиреҳ ба топология инчунин тавассути Discovery-spi коркард мешавад, гиреҳи нав тамоми маълумоти заруриро барои кор бо хидматҳо қабул мекунад.

Вақте ки дархост қабул карда мешавад, гиреҳҳо дар кластер онро тасдиқ мекунанд ва вазифаҳои коркардро эҷод мекунанд. Ин вазифаҳо дар навбат гузошта мешаванд ва сипас аз ҷониби як коргари алоҳида дар риштаи дигар коркард карда мешаванд. Он бо ин роҳ амалӣ карда мешавад, зеро ҷойгиркунӣ метавонад миқдори зиёди вақтро талаб кунад ва ҷараёни кашфи гаронбаҳоро ба таври тоқатфарсо ба таъхир андозад.

Ҳама дархостҳо аз навбат аз ҷониби мудири ҷойгиркунӣ коркард карда мешаванд. Он як коргари махсус дорад, ки супоришро аз ин навбат мебардорад ва онро барои оғоз кардани ҷойгиркунӣ оғоз мекунад. Пас аз ин, амалҳои зерин ба амал меоянд:

  1. Ҳар як гиреҳ тақсимотро ба шарофати вазифаи нави таъиноти детерминистӣ мустақилона ҳисоб мекунад.
  2. Гиреҳҳо бо натиҷаҳои ҷойгиркунӣ паём тавлид мекунанд ва онро ба ҳамоҳангсоз ирсол мекунанд.
  3. Ҳамоҳангсоз ҳамаи паёмҳоро ҷамъ мекунад ва натиҷаи тамоми раванди густаришро тавлид мекунад, ки тавассути Discovery-spi ба ҳамаи гиреҳҳои кластер фиристода мешавад.
  4. Вақте ки натиҷа гирифта мешавад, раванди ҷойгиркунӣ ба итмом мерасад, ки пас аз он вазифа аз навбат хориҷ карда мешавад.

Шабакаи хидматрасониро оташ занед - Бозоғоз кунед
Тарҳи нави аз рӯйдодҳо асосёфта: org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java

Агар ҳангоми ҷойгиркунӣ хатогӣ рух диҳад, гиреҳ фавран ин хаторо дар паёме, ки ба ҳамоҳангсоз мефиристад, дохил мекунад. Пас аз ҷамъбасти паёмҳо, ҳамоҳангсоз дар бораи ҳамаи хатогиҳо ҳангоми ҷойгиркунӣ маълумот хоҳад дошт ва ин паёмро тавассути discovery-spi мефиристад. Маълумот дар бораи хатогиҳо дар ҳама гиреҳи кластер дастрас хоҳад буд.

Ҳама рӯйдодҳои муҳим дар Шабакаи хидматрасонӣ бо истифода аз ин алгоритми амалиётӣ коркард мешаванд. Масалан, тағир додани топология инчунин паём тавассути Discovery-spi аст. Ва умуман, дар муқоиса бо он чизе, ки қаблан буд, протокол хеле сабук ва боэътимод баромад. Кифоя аст, ки ҳама гуна вазъият ҳангоми ҷойгиркунӣ ҳал карда шавад.

Баъд чӣ мешавад?

Акнун дар бораи нақшаҳо. Ҳар як тағироти ҷиддӣ дар лоиҳаи Ignite ҳамчун ташаббуси такмилдиҳии Ignite анҷом дода мешавад, ки онро IEP меноманд. Тарҳрезии Grid Service инчунин дорои IEP - IEP №17 бо унвони масхараомези «Ивазкунии равган дар сети хизматрасонй». Аммо дар асл, мо равғани муҳаррикро иваз накардаем, балки тамоми муҳаррикро иваз кардем.

Мо вазифаҳоро дар IEP ба 2 марҳила тақсим кардем. Якум марҳилаи асосӣ аст, ки аз коркарди протоколи ҷойгиркунӣ иборат аст. Он аллакай ба устод дохил карда шудааст, шумо метавонед шабакаи нави хидматрасониро санҷед, ки дар версияи 2.8 пайдо мешавад. Марҳилаи дуюм бисёр вазифаҳои дигарро дар бар мегирад:

  • Ҷойгиркунии гарм
  • Версияи хидмат
  • Баланд бардоштани таҳаммулпазирӣ ба хатогиҳо
  • Мизоҷи борик
  • Воситаҳо барои назорат ва ҳисобкунии ченакҳои гуногун

Ниҳоят, мо метавонем ба шумо дар бораи Хадамоти Grid барои сохтани системаҳои ба хатогиҳо тобовар ва дастрасии баланд маслиҳат диҳем. Мо инчунин шуморо даъват менамоем, ки ба мо ташриф оред dev-list и рӯйхати истифодабарандагон тачрибаи худро мубодила кунед. Таҷрибаи шумо барои ҷомеа воқеан муҳим аст; он ба шумо кӯмак мекунад, ки дарк кунед, ки дар оянда ба куҷо ҳаракат кунед ва ҷузъиётро дар оянда чӣ гуна инкишоф диҳед.

Манбаъ: will.com

Илова Эзоҳ