Sobes.tech
Senior

Եթե բարգավաճման ժամանակ մեկ ծառայություն հասանելի չէ (օրինակ, ծառայության անվան/մասնավոր տվյալների ծառայություն), ինչ տեղի է ունենում? Բոլոր Kafka-ն կանգնո՞ւմ է։

sobes.tech AI

Պատասխան AI-ից

Տվյալների հարուստացման գործընթացում, օրինակ, լրիվ անուն կամ օգտվողի տվյալներ պարունակող ծառայությունը մատչելի չլինելու դեպքում, դա չի հանգեցնում ամբողջ Kafka-ի կանգնեցմանը: Kafka-ն, որպես հաղորդագրությունների փոխանակման համակարգ, շարունակում է գործել, քանի որ այն առանձին է տվյալների մշակման և հարուստացման տրամաբանությունից:

Ի՞նչ է տեղի ունենում գործնականում:

  • Տվյալների ընթերցողը, որը կարդում է հաղորդագրությունները Kafka-ից և կանչում է հարուստացման ծառայությունը, կարող է ստանալ սխալ կամ ժամանակային սահմանափակում, երբ փորձում է հասնել մատչելի չլինող ծառայությանը:
  • Բացի այդ, կիրառությունից կախված, ընթերցողը կարող է:
    • Գրանցել սխալը և բաց թողնել այդ հաղորդագրության հարուստացումը,
    • Փորձել կրկին էքսպոնենցիալ հետաձգմամբ,
    • Ուղարկել հաղորդագրությունը DLQ (Dead Letter Queue)՝ հետագա վերլուծության համար,
    • Եթե դա критիկ է, ապա կանգնեցնել հաղորդագրությունների մշակումը:

Այսպիսով, մեկ ծառայության անբավարարությունը չի կանգնեցնի Kafka-ն, բայց կարող է ազդել կոնկրետ ընթերցողի հաղորդագրությունների մշակման վրա: Համակարգի դիմացկունության համար խորհուրդ է տրվում իրականացնել սխալների և ժամանակային սահմանափակումների կառավարում, ինչպես նաև օգտագործել դիմացկունության օրինակներ, օրինակ, Circuit Breaker: