Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ Transaction Outbox კონცეფცია და მისი გამოყენება?

sobes.tech AI

პასუხი AI-სგან

Transaction Outbox — դա մի մոդել է, որը օգտագործվում է հուսալի փոխանցելու համար իրադարձություններ կամ հաղորդագրություններ տվյալների բազայից դեպի այլ համակարգեր, հատկապես միկրոսերվիսների ճարտարապետությունում:

Իդեան այն է, որ տվյալների բազայում տվյալների փոփոխության ժամանակ և անհրաժեշտության դեպքում ուղարկել իրադարձություն (օրինակ, հաղորդագրությունների հերթին), այդ գործողությունները կատարվում են մեկ տրանզակցիայի շրջանակում: Փոխարենը ուղիղ հաղորդագրություն ուղարկելու, իրադարձությունը գրանցվում է հատուկ աղյուսակում՝ "outbox":

Հաջողակ տրանզակցիայի հաստատումից հետո, առանձին գործընթաց կամ ծառայություն կարդում է outbox աղյուսակից գրառումները և ուղարկում դրանք համապատասխան համակարգին (օրինակ, Kafka, RabbitMQ): Սա ապահովում է, որ իրադարձությունը չի կորցվի և չի ուղարկվի կրկնակի:

Օգտագործման օրինակ:

  1. Ծառայությունում պատվերը թարմացվում է և միաժամանակ գրանցվում է "OrderUpdated" իրադարձությունը outbox աղյուսակում:
  2. Տրանզակցիան հաստատվում է — տվյալներն ու իրադարձությունը պահվում են ագրեգատորեն:
  3. Արտաքին աշխատողը կարդում է outbox-ից և հրապարակում իրադարձությունը հերթում:

Այսպիսով, հասնում է համահունչություն տվյալների բազայի և հաղորդագրությունների փոխանակման համակարգի միջև առանց տարածված տրանզակցիաների։