செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

ஹே ஹப்ர்!

பற்றி புத்தகத்தை தொடர்ந்து உங்களுக்கு நினைவூட்டுகிறோம் காஃப்கா நூலகத்தைப் பற்றிய ஒரு சுவாரஸ்யமான படைப்பை நாங்கள் வெளியிட்டுள்ளோம் காஃப்கா ஸ்ட்ரீம்ஸ் ஏபிஐ.

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

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

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

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

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

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

முகவர் அறிக்கைகளின் அடிப்படையில் பல்வேறு பொருட்களின் நிலையை நாங்கள் பராமரிக்க வேண்டும் (உதாரணமாக: தளம் தாக்குதலுக்கு உள்ளாகிவிட்டதா)? காஃப்கா ஸ்ட்ரீம்களுக்கு இடம்பெயர்வதற்கு முன், மாநில நிர்வாகத்திற்காக நாங்கள் பெரும்பாலும் ஒற்றை மைய தரவுத்தளத்தை (+ சேவை API) நம்பியிருந்தோம். இந்த அணுகுமுறை அதன் குறைபாடுகளைக் கொண்டுள்ளது: தேதி தீவிர சூழ்நிலைகள் நிலைத்தன்மையையும் ஒத்திசைவையும் பராமரிப்பது உண்மையான சவாலாகிறது. தரவுத்தளம் ஒரு இடையூறாக இருக்கலாம் அல்லது முடிவடையும் இனம் நிலை மற்றும் கணிக்க முடியாமல் அவதிப்படுகின்றனர்.

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

படம் 1: மாறுவதற்கு முன் காணப்பட்ட ஒரு பொதுவான பிளவு நிலை காட்சி
காஃப்கா மற்றும் காஃப்கா ஸ்ட்ரீம்கள்: முகவர்கள் தங்கள் கருத்துக்களை API மூலம் தொடர்பு கொள்கிறார்கள், புதுப்பிக்கப்பட்ட நிலை மத்திய தரவுத்தளத்தின் மூலம் கணக்கிடப்படுகிறது.

காஃப்கா ஸ்ட்ரீம்களை சந்திக்கவும், பகிரப்பட்ட மாநில மைக்ரோ சர்வீஸ்களை உருவாக்குவதை எளிதாக்குகிறது

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

நாங்கள் உருவாக்கிய நிலைசார்ந்த மைக்ரோ சர்வீஸ்கள் ஒவ்வொன்றும் காஃப்கா ஸ்ட்ரீம்ஸ் நிகழ்வின் மேல் மிகவும் எளிமையான இடவியல் கொண்டவை. இது 1) ஒரு ஆதாரம் 2) ஒரு நிலையான முக்கிய மதிப்பு ஸ்டோர் கொண்ட ஒரு செயலி 3) ஒரு மடு:

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

படம் 2: ஸ்டேட்ஃபுல் மைக்ரோ சர்வீஸ்களுக்கான எங்கள் ஸ்ட்ரீமிங் நிகழ்வுகளின் இயல்புநிலை இடவியல். திட்டமிடல் மெட்டாடேட்டாவைக் கொண்ட ஒரு களஞ்சியமும் இங்கே உள்ளது என்பதை நினைவில் கொள்ளவும்.

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

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

படம் 3: பகிரப்பட்ட மைக்ரோ சர்வீஸ்கள் கொண்ட ஒரு காட்சிக்கான புதிய எடுத்துக்காட்டு பணி ஓட்டம்: 1) காஃப்கா மூல தலைப்பில் வரும் ஒரு செய்தியை முகவர் உருவாக்குகிறார்; 2) பகிரப்பட்ட நிலையுடன் (காஃப்கா ஸ்ட்ரீம்களைப் பயன்படுத்தி) மைக்ரோ சர்வீஸ் அதைச் செயலாக்குகிறது மற்றும் கணக்கிடப்பட்ட நிலையை இறுதி காஃப்கா தலைப்புக்கு எழுதுகிறது; அதன் பிறகு 3) நுகர்வோர் புதிய மாநிலத்தை ஏற்றுக்கொள்கிறார்கள்

ஏய், இந்த உள்ளமைக்கப்பட்ட முக்கிய மதிப்பு ஸ்டோர் உண்மையில் மிகவும் பயனுள்ளதாக இருக்கிறது!

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

விருப்பம் #1: கணக்கீடுகளுக்கு விசை மதிப்பு அங்காடியைப் பயன்படுத்தவும்

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

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

விளக்கம் 4: செயலியின் செயலாக்க முறைக்கான முக்கிய மதிப்பு அங்காடிக்கான அணுகலை நாங்கள் திறக்கிறோம் (இதற்குப் பிறகு, பகிரப்பட்ட நிலையில் செயல்படும் ஒவ்வொரு ஸ்கிரிப்டும் முறையைச் செயல்படுத்த வேண்டும் doProcess)

விருப்பம் #2: காஃப்கா ஸ்ட்ரீம்களின் மேல் ஒரு CRUD API ஐ உருவாக்குதல்

எங்கள் அடிப்படை பணி ஓட்டத்தை நிறுவிய பிறகு, எங்கள் பகிரப்பட்ட மாநில மைக்ரோ சர்வீஸுக்கு ஒரு RESTful CRUD API ஐ எழுத முயற்சிக்க ஆரம்பித்தோம். சில அல்லது அனைத்துப் பொருட்களின் நிலையை மீட்டெடுக்கவும், அதே போல் ஒரு பொருளின் நிலையை அமைக்கவும் அல்லது அகற்றவும் விரும்புகிறோம் (பின்னணி ஆதரவிற்குப் பயன்படும்).

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

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

படம் 5: ஒரு பொருளின் முன்கணிக்கப்பட்ட நிலையைப் பெற, உள்ளமைக்கப்பட்ட விசை மதிப்பு அங்காடியைப் பயன்படுத்துதல்

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

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

படம் 6: காஃப்கா தயாரிப்பாளரைப் பயன்படுத்தி ஒரு பொருளின் நிலையை அமைக்கலாம்

சிறிய சிக்கல்: காஃப்காவில் பல பகிர்வுகள் உள்ளன

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

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

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

செயலாக்கம் மட்டுமல்ல: காஃப்கா ஸ்ட்ரீம்களில் இருந்து விநியோகிக்கப்பட்ட தரவுத்தளத்தை எவ்வாறு உருவாக்கினோம், அதில் என்ன வந்தது

படம் 7: ஸ்ட்ரீம் மெட்டாடேட்டாவைப் பயன்படுத்தி, விரும்பிய பொருளின் நிலையை எந்த நிகழ்விலிருந்து வினவ வேண்டும் என்பதை நாங்கள் தீர்மானிக்கிறோம்; GET ALL API உடன் இதேபோன்ற அணுகுமுறை பயன்படுத்தப்பட்டது

முக்கிய கண்டுபிடிப்புகள்

காஃப்கா ஸ்ட்ரீம்களில் உள்ள அரசு அங்காடிகள் நடைமுறையில் விநியோகிக்கப்பட்ட தரவுத்தளமாக செயல்பட முடியும்,

  • காஃப்காவில் தொடர்ந்து பிரதிபலிக்கப்பட்டது
  • அத்தகைய அமைப்பின் மேல் ஒரு CRUD API ஐ எளிதாக உருவாக்க முடியும்
  • பல பகிர்வுகளைக் கையாள்வது இன்னும் கொஞ்சம் சிக்கலானது
  • துணைத் தரவைச் சேமிப்பதற்காக ஸ்ட்ரீமிங் டோபாலஜிக்கு ஒன்று அல்லது அதற்கு மேற்பட்ட மாநில அங்காடிகளைச் சேர்க்கலாம். இந்த விருப்பம் இதற்குப் பயன்படுத்தப்படலாம்:
  • ஸ்ட்ரீம் செயலாக்கத்தின் போது கணக்கீடுகளுக்குத் தேவையான தரவுகளின் நீண்ட கால சேமிப்பு
  • அடுத்த முறை ஸ்ட்ரீமிங் நிகழ்வை வழங்கும்போது பயனுள்ளதாக இருக்கும் தரவின் நீண்ட கால சேமிப்பு
  • இன்னும் அதிகம்...

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

ஆதாரம்: www.habr.com

கருத்தைச் சேர்