தமிழ்

நிகழ்வு சார்ந்த கட்டமைப்பு செய்தி வடிவங்களுக்கான ஒரு முழுமையான வழிகாட்டி. அளவிடக்கூடிய, நெகிழ்வான, மற்றும் பிரிக்கப்பட்ட அமைப்புகளை உருவாக்குவதற்கான பல்வேறு அணுகுமுறைகளை ஆராய்கிறது. உலகளாவிய மேம்பாட்டுக் குழுக்களுக்கான நடைமுறை எடுத்துக்காட்டுகள் மற்றும் சிறந்த நடைமுறைகள் இதில் அடங்கும்.

நிகழ்வு சார்ந்த கட்டமைப்பு: அளவிடக்கூடிய அமைப்புகளுக்கான செய்தி வடிவங்களில் தேர்ச்சி பெறுதல்

நிகழ்வு சார்ந்த கட்டமைப்பு (Event-Driven Architecture - EDA) என்பது நிகழ்வுகளின் உற்பத்தி, கண்டறிதல் மற்றும் நுகர்வு ஆகியவற்றை மையமாகக் கொண்ட ஒரு மென்பொருள் கட்டமைப்பு முன்னுதாரணமாகும். இறுக்கமாகப் பிணைக்கப்பட்ட சேவை தொடர்புகளுக்குப் பதிலாக, EDA ஒத்திசைவற்ற தகவல்தொடர்பை ஊக்குவிக்கிறது, இது மேலும் அளவிடக்கூடிய, நெகிழ்வான மற்றும் பிரிக்கப்பட்ட அமைப்புகளுக்கு வழிவகுக்கிறது. EDA-வின் ஒரு முக்கிய அங்கம் செய்தி வடிவங்களை திறம்படப் பயன்படுத்துவதாகும். இந்த வழிகாட்டி EDA-வில் பொதுவாகப் பயன்படுத்தப்படும் பல்வேறு செய்தி வடிவங்களை ஆராய்ந்து, உலகளாவிய மேம்பாட்டுக் குழுக்களுக்கான நடைமுறை எடுத்துக்காட்டுகள் மற்றும் சிறந்த நடைமுறைகளை வழங்குகிறது.

நிகழ்வு சார்ந்த கட்டமைப்பு என்றால் என்ன?

ஒரு பாரம்பரிய கோரிக்கை/பதில் கட்டமைப்பில், சேவைகள் நேரடியாக ஒன்றையொன்று அழைக்கின்றன. இந்த இறுக்கமான இணைப்பு இடையூறுகளை உருவாக்கி, அமைப்புகளை பலவீனமாக்கும். மறுபுறம், EDA ஒரு நிகழ்வுப் பஸ் அல்லது செய்தி தரகரை அறிமுகப்படுத்துவதன் மூலம் சேவைகளைப் பிரிக்கிறது. சேவைகள் பஸ்ஸில் நிகழ்வுகளை வெளியிடுவதன் மூலம் தொடர்பு கொள்கின்றன, மேலும் பிற சேவைகள் தங்களுக்கு விருப்பமான நிகழ்வுகளுக்கு சந்தா செலுத்துகின்றன. இந்த ஒத்திசைவற்ற தொடர்பு, சேவைகளை சுயாதீனமாக செயல்பட அனுமதிக்கிறது, அளவிடுதல் மற்றும் பிழை சகிப்புத்தன்மையை மேம்படுத்துகிறது.

EDA-வின் முக்கிய நன்மைகள்

நிகழ்வு சார்ந்த கட்டமைப்பில் பொதுவான செய்தி வடிவங்கள்

EDA-வில் பல செய்தி வடிவங்களைப் பயன்படுத்தலாம், ஒவ்வொன்றும் அதன் சொந்த பலம் மற்றும் பலவீனங்களைக் கொண்டுள்ளன. சரியான வடிவத்தைத் தேர்ந்தெடுப்பது உங்கள் பயன்பாட்டின் குறிப்பிட்ட தேவைகளைப் பொறுத்தது.

1. வெளியிடு-சந்தா செலுத்து (Pub-Sub)

வெளியிடு-சந்தா செலுத்து முறை EDA-வில் மிகவும் அடிப்படையான செய்தி வடிவங்களில் ஒன்றாகும். இந்த வடிவத்தில், வெளியீட்டாளர்கள் ஒரு தலைப்பு அல்லது பரிமாற்றத்திற்கு செய்திகளை உருவாக்குகிறார்கள், மேலும் சந்தாதாரர்கள் குறிப்பிட்ட தலைப்புகளில் தங்கள் ஆர்வத்தைப் பதிவு செய்கிறார்கள். செய்தித் தரகர் பின்னர் வெளியீட்டாளர்களிடமிருந்து அனைத்து ஆர்வமுள்ள சந்தாதாரர்களுக்கும் செய்திகளை அனுப்புகிறார்.

உதாரணம்

ஒரு இ-காமர்ஸ் தளத்தைக் கவனியுங்கள். ஒரு வாடிக்கையாளர் ஒரு ஆர்டரை வைக்கும்போது, "OrderCreated" என்ற நிகழ்வு "Orders" தலைப்பில் வெளியிடப்படுகிறது. சரக்கு சேவை, கட்டணச் சேவை மற்றும் ஷிப்பிங் சேவை போன்ற சேவைகள் "Orders" தலைப்பிற்கு சந்தா செலுத்தி, அதற்கேற்ப நிகழ்வைச் செயல்படுத்துகின்றன.

செயல்படுத்தல்

பப்-சப் முறையை அப்பாச்சி காஃப்கா, ராபிட்MQ போன்ற செய்தி தரகர்கள் அல்லது AWS SNS/SQS அல்லது Azure Service Bus போன்ற கிளவுட் அடிப்படையிலான செய்தி சேவைகளைப் பயன்படுத்தி செயல்படுத்தலாம். தேர்ந்தெடுக்கப்பட்ட தொழில்நுட்பத்தைப் பொறுத்து குறிப்பிட்ட செயல்படுத்தல் விவரங்கள் மாறுபடும்.

நன்மைகள்

குறைகள்

2. நிகழ்வு ஆதாரம் (Event Sourcing)

நிகழ்வு ஆதாரம் என்பது பயன்பாட்டு நிலையின் அனைத்து மாற்றங்களும் நிகழ்வுகளின் வரிசையாகப் பிடிக்கப்படும் ஒரு வடிவமாகும். ஒரு நிறுவனத்தின் தற்போதைய நிலையைச் சேமிப்பதற்குப் பதிலாக, பயன்பாடு அந்த நிலைக்கு வழிவகுத்த நிகழ்வுகளின் வரலாற்றைச் சேமிக்கிறது. நிகழ்வுகளை மீண்டும் இயக்குவதன் மூலம் தற்போதைய நிலையை மீண்டும் உருவாக்க முடியும்.

உதாரணம்

ஒரு வங்கி விண்ணப்பத்தைக் கவனியுங்கள். ஒரு கணக்கின் தற்போதைய இருப்பைச் சேமிப்பதற்குப் பதிலாக, பயன்பாடு "Deposit", "Withdrawal", மற்றும் "Transfer" போன்ற நிகழ்வுகளைச் சேமிக்கிறது. இந்த நிகழ்வுகளை வரிசையாக மீண்டும் இயக்குவதன் மூலம் தற்போதைய இருப்பைக் கணக்கிடலாம்.

செயல்படுத்தல்

நிகழ்வு ஆதாரம் பொதுவாக நிகழ்வுகளை ஒரு நிகழ்வுக் களஞ்சியத்தில் (event store) சேமிப்பதை உள்ளடக்கியது, இது நிகழ்வுகளைச் சேமிப்பதற்கும் மீட்டெடுப்பதற்கும் உகந்ததாக உருவாக்கப்பட்ட ஒரு சிறப்பு தரவுத்தளமாகும். அப்பாச்சி காஃப்கா அதிக அளவிலான நிகழ்வுகளைக் கையாளும் திறன் மற்றும் வலுவான வரிசைப்படுத்தல் உத்தரவாதங்களை வழங்குவதால், இது பெரும்பாலும் ஒரு நிகழ்வுக் களஞ்சியமாகப் பயன்படுத்தப்படுகிறது.

நன்மைகள்

குறைகள்

3. கட்டளை வினவல் பொறுப்புப் பிரிப்பு (CQRS)

CQRS என்பது ஒரு தரவுக் களஞ்சியத்திற்கான படித்தல் மற்றும் எழுதுதல் செயல்பாடுகளைப் பிரிக்கும் ஒரு வடிவமாகும். இது இரண்டு தனித்துவமான மாதிரிகளை வரையறுக்கிறது: எழுதுதல் செயல்பாடுகளைக் கையாள்வதற்கான ஒரு கட்டளை மாதிரி மற்றும் படித்தல் செயல்பாடுகளைக் கையாள்வதற்கான ஒரு வினவல் மாதிரி. இந்தப் பிரிப்பு ஒவ்வொரு மாதிரியும் அதன் குறிப்பிட்ட நோக்கத்திற்காக உகந்ததாக இருக்க அனுமதிக்கிறது.

உதாரணம்

ஒரு இ-காமர்ஸ் பயன்பாட்டில், கட்டளை மாதிரி ஆர்டர்களை உருவாக்குதல், தயாரிப்புத் தகவலைப் புதுப்பித்தல் மற்றும் கட்டணங்களைச் செயல்படுத்துதல் போன்ற செயல்பாடுகளைக் கையாளலாம். வினவல் மாதிரி தயாரிப்புப் பட்டியல்களைக் காண்பித்தல், ஆர்டர் வரலாற்றைக் காண்பித்தல் மற்றும் அறிக்கைகளை உருவாக்குதல் போன்ற செயல்பாடுகளைக் கையாளலாம்.

செயல்படுத்தல்

CQRS பெரும்பாலும் நிகழ்வு ஆதாரத்துடன் இணைந்து பயன்படுத்தப்படுகிறது. கட்டளைகள் நிகழ்வுகளைத் தூண்டுவதற்குப் பயன்படுத்தப்படுகின்றன, அவை பின்னர் படித்தல் மாதிரிகளைப் புதுப்பிக்கப் பயன்படுத்தப்படுகின்றன. படித்தல் மாதிரிகள் குறிப்பிட்ட வினவல் வடிவங்களுக்காக உகந்ததாக மாற்றப்படலாம், இது வேகமான மற்றும் திறமையான படித்தல் செயல்திறனை வழங்குகிறது.

நன்மைகள்

குறைகள்

4. கோரிக்கை-பதில் (Request-Reply)

EDA ஒத்திசைவற்ற தகவல்தொடர்பை ஊக்குவித்தாலும், கோரிக்கை-பதில் முறை இன்னும் அவசியமான சூழ்நிலைகள் உள்ளன. இந்த வடிவத்தில், ஒரு சேவை மற்றொரு சேவைக்கு ஒரு கோரிக்கை செய்தியை அனுப்பி, ஒரு பதில் செய்திக்காக காத்திருக்கிறது.

உதாரணம்

ஒரு பயனர் இடைமுகம் பயனர் சுயவிவரத் தகவலைப் பெற பின்தள சேவைக்கு ஒரு கோரிக்கையை அனுப்பலாம். பின்தள சேவை கோரிக்கையைச் செயல்படுத்தி, பயனர் சுயவிவரத் தரவைக் கொண்ட பதிலை அனுப்புகிறது.

செயல்படுத்தல்

கோரிக்கை-பதில் முறையை, RabbitMQ போன்ற கோரிக்கை-பதில் சொற்பொருளுக்கான ஆதரவுடன் செய்தி தரகர்களைப் பயன்படுத்தி செயல்படுத்தலாம். கோரிக்கை செய்தியில் பொதுவாக ஒரு தொடர்பு ஐடி (correlation ID) அடங்கும், இது பதில் செய்தியை அசல் கோரிக்கையுடன் பொருத்தப் பயன்படுகிறது.

நன்மைகள்

குறைகள்

5. சாகா (Saga)

சாகா என்பது பல சேவைகளில் பரவியிருக்கும் நீண்டகால பரிவர்த்தனைகளை நிர்வகிப்பதற்கான ஒரு வடிவமாகும். ஒரு விநியோகிக்கப்பட்ட அமைப்பில், ஒரு பரிவர்த்தனை பல தரவுத்தளங்கள் அல்லது சேவைகளில் புதுப்பிப்புகளை உள்ளடக்கியிருக்கலாம். தோல்விகள் ஏற்பட்டாலும், இந்தப் புதுப்பிப்புகள் சீரான முறையில் செய்யப்படுவதை சாகா உறுதி செய்கிறது.

உதாரணம்

ஒரு இ-காமர்ஸ் ஆர்டர் செயலாக்க சூழ்நிலையை கருத்தில் கொள்ளுங்கள். ஒரு சாகா பின்வரும் படிகளை உள்ளடக்கியிருக்கலாம்: 1. ஆர்டர் சேவையில் ஒரு ஆர்டரை உருவாக்கவும். 2. சரக்கு சேவையில் சரக்குகளை ஒதுக்கவும். 3. கட்டணச் சேவையில் கட்டணத்தைச் செயல்படுத்தவும். 4. ஷிப்பிங் சேவையில் ஆர்டரை அனுப்பவும்.

இந்த படிகளில் ஏதேனும் தோல்வியுற்றால், கணினி ஒரு சீரான நிலையில் இருப்பதை உறுதிசெய்ய, சாகா முந்தைய படிகளுக்கு ஈடுசெய்ய வேண்டும். உதாரணமாக, கட்டணம் தோல்வியுற்றால், சாகா ஆர்டரை ரத்து செய்து ஒதுக்கப்பட்ட சரக்குகளை விடுவிக்க வேண்டும்.

செயல்படுத்தல்

சாகாக்களைச் செயல்படுத்த இரண்டு முக்கிய அணுகுமுறைகள் உள்ளன: 1. நடன அமைப்பு அடிப்படையிலான சாகா: சாகாவில் ஈடுபட்டுள்ள ஒவ்வொரு சேவையும், சாகாவின் அடுத்த படியைத் தூண்டும் நிகழ்வுகளை வெளியிடுவதற்குப் பொறுப்பாகும். மைய ஒருங்கிணைப்பாளர் இல்லை. 2. ஒருங்கிணைப்பு அடிப்படையிலான சாகா: ஒரு மைய ஒருங்கிணைப்பாளர் சேவை சாகாவை நிர்வகிக்கிறது மற்றும் சம்பந்தப்பட்ட படிகளை ஒருங்கிணைக்கிறது. ஒருங்கிணைப்பாளர் பங்கேற்கும் சேவைகளுக்குக் கட்டளைகளை அனுப்புகிறார் மற்றும் ஒவ்வொரு படியின் வெற்றியையோ அல்லது தோல்வியையோ குறிக்கும் நிகழ்வுகளைக் கேட்கிறார்.

நன்மைகள்

குறைகள்

சரியான செய்தி வடிவத்தைத் தேர்ந்தெடுப்பது

செய்தி வடிவத்தின் தேர்வு உங்கள் பயன்பாட்டின் குறிப்பிட்ட தேவைகளைப் பொறுத்தது. உங்கள் முடிவை எடுக்கும்போது பின்வரும் காரணிகளைக் கவனியுங்கள்:

ஒவ்வொரு செய்தி வடிவத்தின் முக்கிய பண்புகளையும் சுருக்கமாகக் காட்டும் அட்டவணை இங்கே:

வடிவம் விளக்கம் நிலைத்தன்மை சிக்கலானது பயன்பாட்டு வழக்குகள்
பப்-சப் வெளியீட்டாளர்கள் தலைப்புகளுக்கு செய்திகளை அனுப்புகிறார்கள், சந்தாதாரர்கள் தலைப்புகளிலிருந்து செய்திகளைப் பெறுகிறார்கள். இறுதி மிதமானது அறிவிப்புகள், நிகழ்வு விநியோகம், சேவைகளைப் பிரித்தல்.
நிகழ்வு ஆதாரம் பயன்பாட்டு நிலையின் அனைத்து மாற்றங்களையும் நிகழ்வுகளின் வரிசையாக சேமிக்கவும். வலுவானது அதிகம் தணிக்கை, பிழைத்திருத்தம், கால வினவல்கள், நிலையை மீண்டும் உருவாக்குதல்.
CQRS படித்தல் மற்றும் எழுதுதல் செயல்பாடுகளை தனித்தனி மாதிரிகளாகப் பிரிக்கவும். இறுதி (படித்தல் மாதிரிகளுக்கு) அதிகம் படித்தல் மற்றும் எழுதுதல் செயல்திறனை மேம்படுத்துதல், படித்தல் மற்றும் எழுதுதல் செயல்பாடுகளை சுயாதீனமாக அளவிடுதல்.
கோரிக்கை-பதில் ஒரு சேவை ஒரு கோரிக்கையை அனுப்பி பதிலுக்காக காத்திருக்கிறது. உடனடி எளிமையானது ஒத்திசைவற்ற செய்தியிடல் மூலம் ஒத்திசைவு போன்ற தொடர்புகள்.
சாகா பல சேவைகளில் பரவியிருக்கும் நீண்டகால பரிவர்த்தனைகளை நிர்வகிக்கவும். இறுதி அதிகம் விநியோகிக்கப்பட்ட பரிவர்த்தனைகள், பல சேவைகளில் தரவு நிலைத்தன்மையை உறுதி செய்தல்.

EDA செய்தி வடிவங்களைச் செயல்படுத்துவதற்கான சிறந்த நடைமுறைகள்

EDA செய்தி வடிவங்களைச் செயல்படுத்தும்போது கருத்தில் கொள்ள வேண்டிய சில சிறந்த நடைமுறைகள் இங்கே:

நிஜ உலக உதாரணங்கள்

EDA மற்றும் அதனுடன் தொடர்புடைய செய்தி வடிவங்கள் பரந்த அளவிலான தொழில்கள் மற்றும் பயன்பாடுகளில் பயன்படுத்தப்படுகின்றன. இங்கே சில உதாரணங்கள்:

உதாரணமாக, ஒரு உலகளாவிய உணவு விநியோக சேவை ஆர்டர்களை நிர்வகிக்க EDA-ஐப் பயன்படுத்தலாம். ஒரு வாடிக்கையாளர் ஆர்டரை வைக்கும்போது, ஒரு `OrderCreated` நிகழ்வு வெளியிடப்படுகிறது. உணவக சேவை இந்த நிகழ்விற்கு சந்தா செலுத்தி உணவைத் தயாரிக்கிறது. டெலிவரி சேவை இந்த நிகழ்விற்கு சந்தா செலுத்தி ஒரு ஓட்டுநரை நியமிக்கிறது. கட்டணச் சேவை இந்த நிகழ்விற்கு சந்தா செலுத்தி கட்டணத்தைச் செயல்படுத்துகிறது. ஒவ்வொரு சேவையும் சுயாதீனமாகவும் ஒத்திசைவற்ற முறையிலும் செயல்படுகிறது, இது அதிக எண்ணிக்கையிலான ஆர்டர்களை திறமையாக கையாள கணினியை அனுமதிக்கிறது.

முடிவுரை

நிகழ்வு சார்ந்த கட்டமைப்பு என்பது அளவிடக்கூடிய, நெகிழ்வான மற்றும் பிரிக்கப்பட்ட அமைப்புகளை உருவாக்குவதற்கான ஒரு சக்திவாய்ந்த முன்னுதாரணமாகும். செய்தி வடிவங்களைப் புரிந்துகொண்டு திறம்படப் பயன்படுத்துவதன் மூலம், டெவலப்பர்கள் மாறிவரும் வணிகத் தேவைகளுக்கு ஏற்ப மாற்றியமைக்கக்கூடிய வலுவான மற்றும் நெகிழ்வான பயன்பாடுகளை உருவாக்க முடியும். இந்த வழிகாட்டி EDA-வில் பயன்படுத்தப்படும் பொதுவான செய்தி வடிவங்கள், நடைமுறை உதாரணங்கள் மற்றும் சிறந்த நடைமுறைகள் பற்றிய ஒரு மேலோட்டத்தை வழங்கியுள்ளது. வெற்றிகரமான நிகழ்வு சார்ந்த அமைப்புகளை உருவாக்க உங்கள் குறிப்பிட்ட தேவைகளுக்கு சரியான வடிவத்தைத் தேர்ந்தெடுப்பது முக்கியம். உங்கள் முடிவை எடுக்கும்போது நிலைத்தன்மை, தாமதம், சிக்கலானது, அளவிடுதல் மற்றும் பிழை சகிப்புத்தன்மை ஆகியவற்றைக் கருத்தில் கொள்ள நினைவில் கொள்ளுங்கள். ஒத்திசைவற்ற தகவல்தொடர்பின் சக்தியைத் தழுவி, உங்கள் பயன்பாடுகளின் முழு திறனையும் வெளிக்கொணருங்கள்.