సందేశ బ్రోకర్లను అర్థం చేసుకోవడం. ActiveMQ మరియు కాఫ్కాతో మెసేజింగ్ మెకానిక్‌లను నేర్చుకోవడం. 1 వ అధ్యాయము

హలో అందరికీ!

నేను ఒక చిన్న పుస్తకాన్ని అనువదించడం ప్రారంభించాను:
«సందేశ బ్రోకర్లను అర్థం చేసుకోవడం',
రచయిత: జాకుబ్ కోరాబ్, ప్రచురణకర్త: ఓ'రైల్లీ మీడియా, ఇంక్., ప్రచురణ తేదీ: జూన్ 2017, ISBN: 9781492049296.

పుస్తకం పరిచయం నుండి:
"... ఈ పుస్తకం బ్రోకర్ మెసేజింగ్ సిస్టమ్‌ల గురించి ఎలా ఆలోచించాలో నేర్పుతుంది, రెండు ప్రసిద్ధ బ్రోకర్ టెక్నాలజీలను పోల్చడం మరియు విరుద్ధంగా ఉంటుంది: Apache ActiveMQ మరియు Apache Kafka. ఇది వారి డెవలపర్‌లు ఒకే ప్రాంతానికి చాలా భిన్నమైన విధానాలను తీసుకోవడానికి దారితీసిన వినియోగ సందర్భాలు మరియు అభివృద్ధి ప్రోత్సాహకాలను వివరిస్తుంది-ఇంటర్మీడియట్ బ్రోకర్‌తో సిస్టమ్‌ల మధ్య సందేశం పంపడం. మేము ఈ సాంకేతికతలను ప్రాథమికంగా పరిశీలిస్తాము మరియు వివిధ డిజైన్ ఎంపికల ప్రభావాన్ని హైలైట్ చేస్తాము. మీరు రెండు ఉత్పత్తుల గురించి లోతైన అవగాహనను పొందుతారు, వాటిని ఎలా ఉపయోగించాలి మరియు ఉపయోగించకూడదు అనే దానిపై అవగాహన మరియు భవిష్యత్తులో ఇతర సందేశ సాంకేతికతలను పరిగణనలోకి తీసుకునేటప్పుడు ఏమి చూడాలి అనే దానిపై అవగాహన పొందుతారు … »

ఇప్పటివరకు అనువదించబడిన భాగాలు:
చాప్టర్ 1 పరిచయం
అధ్యాయం 3. కాఫ్కా

పూర్తయిన అధ్యాయాలను అనువదించినప్పుడు పోస్ట్ చేస్తాను.

1 వ అధ్యాయము

పరిచయం

సిస్టమ్-టు-సిస్టమ్ మెసేజింగ్ అనేది IT యొక్క అతి తక్కువ అవగాహన ఉన్న ప్రాంతాలలో ఒకటి. డెవలపర్ లేదా ఆర్కిటెక్ట్‌గా, మీరు వివిధ ఫ్రేమ్‌వర్క్‌లు మరియు డేటాబేస్‌లతో బాగా తెలిసి ఉండవచ్చు. అయినప్పటికీ, బ్రోకర్-ఆధారిత సందేశ సాంకేతికతలు ఎలా పని చేస్తాయనే దాని గురించి మీకు తెలిసినంతగా మాత్రమే ఉండే అవకాశం ఉంది. మీకు ఈ విధంగా అనిపిస్తే, చింతించకండి, మీరు మంచి కంపెనీలో ఉన్నారు.

ప్రజలు సాధారణంగా మెసేజింగ్ ఇన్‌ఫ్రాస్ట్రక్చర్‌తో చాలా పరిమిత సంబంధాన్ని కలిగి ఉంటారు. వారు చాలా కాలం క్రితం సృష్టించిన సిస్టమ్‌కు తరచుగా కనెక్ట్ చేస్తారు లేదా ఇంటర్నెట్ నుండి పంపిణీని డౌన్‌లోడ్ చేసి, దానిని PROMలో ఇన్‌స్టాల్ చేసి, దాని కోసం కోడ్ రాయడం ప్రారంభిస్తారు. PROMలో ఇన్‌ఫ్రాస్ట్రక్చర్‌ని అమలు చేసిన తర్వాత, ఫలితాలు మిశ్రమంగా ఉండవచ్చు: వైఫల్యాల కారణంగా సందేశాలు పోతాయి, పంపడం మీరు ఊహించిన విధంగా పని చేయదు లేదా బ్రోకర్లు మీ నిర్మాతలను "హాంగ్" చేస్తారు లేదా మీ వినియోగదారులకు సందేశాలను పంపరు.

తెలిసినట్లు అనిపిస్తుందా?

మీ మెసేజింగ్ కోడ్ ప్రస్తుతానికి గొప్పగా పని చేసే సాధారణ దృశ్యం. పని ఆగిపోయే వరకు. ఈ కాలం సాంకేతికత యొక్క ప్రాథమిక ప్రవర్తన గురించి తప్పుడు నమ్మకాల ఆధారంగా మరింత కోడ్‌కు దారితీసే ఒక తప్పుడు భద్రతా భావాన్ని కలిగిస్తుంది. విషయాలు తప్పుగా మారడం ప్రారంభించినప్పుడు, మీరు అసందర్భమైన సత్యాన్ని ఎదుర్కొంటారు: ఉత్పత్తి యొక్క అంతర్లీన ప్రవర్తన లేదా రచయితలు ఎంచుకున్న ట్రేడ్-ఆఫ్‌లు, పనితీరు వర్సెస్ విశ్వసనీయత లేదా లావాదేవీలు మరియు క్షితిజ సమాంతర స్కేలబిలిటీ వంటివి మీకు నిజంగా అర్థం కాలేదు. .

బ్రోకర్లు ఎలా పని చేస్తారనే దానిపై లోతైన అవగాహన లేకుండా, వ్యక్తులు తమ సందేశ వ్యవస్థల గురించి సహేతుకమైన ప్రకటనలు చేస్తారు, అవి:

  • సిస్టమ్ సందేశాలను ఎప్పటికీ కోల్పోదు
  • సందేశాలు వరుసగా ప్రాసెస్ చేయబడతాయి
  • వినియోగదారులను జోడించడం వల్ల సిస్టమ్ వేగవంతం అవుతుంది
  • సందేశాలు ఒక్కసారి మాత్రమే బట్వాడా చేయబడతాయి

దురదృష్టవశాత్తూ, ఈ ప్రకటనలలో కొన్ని నిర్దిష్ట పరిస్థితులలో మాత్రమే వర్తించే ఊహలపై ఆధారపడి ఉంటాయి, మరికొన్ని తప్పుగా ఉన్నాయి.

ఈ పుస్తకం బ్రోకర్-ఆధారిత సందేశ వ్యవస్థల గురించి ఎలా ఆలోచించాలో నేర్పుతుంది, రెండు ప్రసిద్ధ బ్రోకర్ సాంకేతికతలను పోల్చడం మరియు విరుద్ధంగా ఉంటుంది: Apache ActiveMQ మరియు Apache Kafka. ఇది వారి డెవలపర్‌లు ఒకే ప్రాంతానికి చాలా భిన్నమైన విధానాలను తీసుకోవడానికి దారితీసిన వినియోగ సందర్భాలు మరియు అభివృద్ధి ప్రోత్సాహకాలను వివరిస్తుంది-ఇంటర్మీడియట్ బ్రోకర్‌తో సిస్టమ్‌ల మధ్య సందేశం పంపడం. మేము ఈ సాంకేతికతలను ప్రాథమికంగా పరిశీలిస్తాము మరియు వివిధ డిజైన్ ఎంపికల ప్రభావాన్ని హైలైట్ చేస్తాము. మీరు రెండు ఉత్పత్తుల గురించి లోతైన అవగాహనను పొందుతారు, వాటిని ఎలా ఉపయోగించాలి మరియు ఉపయోగించకూడదు అనే దానిపై అవగాహన మరియు భవిష్యత్తులో ఇతర సందేశ సాంకేతికతలను పరిగణనలోకి తీసుకునేటప్పుడు ఏమి చూడాలి అనే దానిపై అవగాహన పొందుతారు.

మేము ప్రారంభించడానికి ముందు, ప్రాథమిక అంశాలకు వెళ్దాం.

మెసేజింగ్ సిస్టమ్ అంటే ఏమిటి మరియు అది ఎందుకు అవసరం?

రెండు అప్లికేషన్‌లు ఒకదానితో ఒకటి కమ్యూనికేట్ చేయడానికి, అవి ముందుగా ఇంటర్‌ఫేస్‌ను నిర్వచించాలి. ఈ ఇంటర్‌ఫేస్‌ను నిర్వచించడంలో HTTP, MQTT లేదా SMTP వంటి రవాణా లేదా ప్రోటోకాల్‌ను ఎంచుకోవడం మరియు సిస్టమ్‌ల మధ్య మార్పిడి చేయబడే సందేశ ఫార్మాట్‌ల గురించి చర్చలు జరపడం ఉంటుంది. ఇది మెసేజ్ పేలోడ్ ఖర్చు అవసరాలతో XML స్కీమాను నిర్వచించడం వంటి కఠినమైన ప్రక్రియ కావచ్చు లేదా HTTP అభ్యర్థనలో కొంత భాగం క్లయింట్ ఐడెంటిఫైయర్‌ని కలిగి ఉంటుందని ఇద్దరు డెవలపర్‌ల మధ్య ఒప్పందం వంటి చాలా తక్కువ లాంఛనప్రాయమైనది కావచ్చు.

సందేశాల ఆకృతి మరియు అవి పంపబడే క్రమం వ్యవస్థల మధ్య స్థిరంగా ఉన్నంత వరకు, అవి ఇతర సిస్టమ్ అమలు గురించి చింతించకుండా ఒకదానితో ఒకటి సంభాషించగలవు. ప్రోగ్రామింగ్ లాంగ్వేజ్ లేదా ఉపయోగించిన ఫ్రేమ్‌వర్క్ వంటి ఈ సిస్టమ్‌ల అంతర్గత అంశాలు కాలక్రమేణా మారవచ్చు. ఒప్పందాన్ని కొనసాగించినంత కాలం, ఇతర వైపు నుండి మార్పులు లేకుండా పరస్పర చర్య కొనసాగుతుంది. ఈ ఇంటర్‌ఫేస్ ద్వారా రెండు సిస్టమ్‌లు సమర్థవంతంగా విడదీయబడతాయి (వేరు చేయబడతాయి).

సందేశ వ్యవస్థలు సాధారణంగా గ్రహీత లేదా గ్రహీతల నుండి పంపినవారిని మరింత విడదీయడానికి (వేరు చేయడానికి) పరస్పర చర్య చేసే రెండు సిస్టమ్‌ల మధ్య మధ్యవర్తిగా ఉంటాయి. ఈ సందర్భంలో, గ్రహీత ఎక్కడ ఉన్నాడో, అతను యాక్టివ్‌గా ఉన్నాడా లేదా ఎన్ని సందర్భాలు ఉన్నాయో తెలియకుండానే సందేశం పంపే వ్యక్తి సందేశాన్ని పంపడానికి మెసేజింగ్ సిస్టమ్ అనుమతిస్తుంది.

మెసేజింగ్ సిస్టమ్ పరిష్కరించే సమస్యలకు సంబంధించిన కొన్ని సారూప్యతలను చూద్దాం మరియు కొన్ని ప్రాథమిక నిబంధనలను పరిచయం చేద్దాం.

పాయింట్-టు-పాయింట్

ఆడమ్‌కి ఒక ప్యాకేజీని పంపడానికి అలెగ్జాండ్రా పోస్టాఫీసుకు వెళుతుంది. ఆమె కిటికీకి వెళ్లి ఉద్యోగికి ప్యాకేజీని అందజేస్తుంది. ఉద్యోగి ప్యాకేజీని ఎంచుకొని అలెగ్జాండ్రాకు రశీదు ఇస్తాడు. ప్యాకేజీ పంపబడినప్పుడు ఆడమ్ ఇంట్లో ఉండవలసిన అవసరం లేదు. భవిష్యత్తులో ఏదో ఒక సమయంలో ఈ ప్యాకేజీ ఆడమ్‌కు అందజేయబడుతుందని మరియు తన వ్యాపారాన్ని కొనసాగించవచ్చని అలెగ్జాండ్రా నమ్మకంగా ఉంది. తర్వాత ఏదో ఒక సమయంలో ఆడమ్ ఒక ప్యాకేజీని అందుకుంటాడు.

ఇది మెసేజింగ్ మోడల్‌కు ఉదాహరణ పాయింట్-టు-పాయింట్. ఇక్కడ ఉన్న పోస్టాఫీసు పార్శిల్ పంపిణీ యంత్రాంగం వలె పనిచేస్తుంది, ప్రతి పార్శిల్ ఒకసారి డెలివరీ చేయబడిందని నిర్ధారిస్తుంది. పోస్టాఫీసును ఉపయోగించడం అనేది ప్యాకేజీ యొక్క డెలివరీ నుండి ప్యాకేజీని పంపే చర్యను వేరు చేస్తుంది.
క్లాసిక్ మెసేజింగ్ సిస్టమ్‌లలో, పాయింట్-టు-పాయింట్ మోడల్ ద్వారా అమలు చేయబడుతుంది క్యూలు. క్యూ FIFO (ఫస్ట్ ఇన్, ఫస్ట్ అవుట్) బఫర్‌గా పనిచేస్తుంది, దీనిని ఒకరు లేదా అంతకంటే ఎక్కువ మంది వినియోగదారులు సబ్‌స్క్రయిబ్ చేయవచ్చు. ప్రతి సందేశం మాత్రమే పంపిణీ చేయబడుతుంది సభ్యత్వం పొందిన వినియోగదారులలో ఒకరికి. క్యూలు సాధారణంగా వినియోగదారుల మధ్య సందేశాలను పంపిణీ చేయడానికి ప్రయత్నిస్తాయి. ఒక వినియోగదారు మాత్రమే ఈ సందేశాన్ని అందుకుంటారు.

"మన్నికైన" పదం క్యూలకు వర్తించబడుతుంది. విశ్వసనీయత ఒక వినియోగదారు సందేశ డెలివరీ కోసం క్యూలో సభ్యత్వం పొందే వరకు, సక్రియ సభ్యులు లేనప్పుడు సందేశ వ్యవస్థ సందేశాలను కొనసాగిస్తుందని నిర్ధారిస్తుంది.

విశ్వసనీయత తరచుగా గందరగోళంగా ఉంటుంది పట్టుదల మరియు రెండు పదాలు పరస్పరం మార్చుకున్నప్పటికీ, అవి వేర్వేరు విధులను అందిస్తాయి. మెసేజింగ్ సిస్టమ్ దానిని స్వీకరించడం మరియు వినియోగదారునికి పంపడం మధ్య ఏదో ఒక రకమైన నిల్వకు సందేశాన్ని వ్రాసిందో లేదో నిలకడ నిర్ణయిస్తుంది. క్యూలో పంపబడిన సందేశాలు నిరంతరంగా ఉండవచ్చు లేదా ఉండకపోవచ్చు.
వినియోగ సందర్భానికి సందేశంపై ఒక-పర్యాయ చర్య అవసరమైనప్పుడు పాయింట్-టు-పాయింట్ సందేశం ఉపయోగించబడుతుంది. ఖాతాలో నిధులను జమ చేయడం లేదా డెలివరీ ఆర్డర్‌ను పూర్తి చేయడం వంటివి ఉదాహరణలు. మెసేజింగ్ సిస్టమ్ స్వంతంగా ఎందుకు వన్-టైమ్ డెలివరీని అందించలేకపోయింది మరియు క్యూలు ఎందుకు డెలివరీ గ్యారెంటీని ఉత్తమంగా అందించగలవని మేము తరువాత చర్చిస్తాము కనీసము ఒక్కసారైన.

ప్రచురణకర్త-చందాదారు

గాబ్రియెల్లా కాన్ఫరెన్స్ నంబర్‌ను డయల్ చేస్తుంది. ఆమె కాన్ఫరెన్స్‌కి కనెక్ట్ అయినప్పుడు, మిగిలిన కాల్ పార్టిసిపెంట్‌లతో పాటు స్పీకర్ చెప్పే ప్రతిదాన్ని ఆమె వింటుంది. ఆమె ట్యూన్ చేసినప్పుడు, ఆమె చెప్పినది మిస్ అవుతుంది. మళ్లీ కనెక్ట్ అయినప్పుడు, ఆమె చెప్పేది వింటూనే ఉంటుంది.

ఇది మెసేజింగ్ మోడల్‌కు ఉదాహరణ ప్రచురించు-చందా. కాన్ఫరెన్స్ కాలింగ్ ప్రసార విధానం వలె పనిచేస్తుంది. మాట్లాడే వ్యక్తి ప్రస్తుతం ఎంత మంది వ్యక్తులు కాల్‌లో ఉన్నారనే విషయాన్ని పట్టించుకోరు - ప్రస్తుతం కనెక్ట్ చేయబడిన ఎవరైనా చెప్పేది వింటారని సిస్టమ్ నిర్ధారిస్తుంది.
క్లాసిక్ మెసేజింగ్ సిస్టమ్‌లలో, పబ్లిష్-సబ్‌స్క్రైబ్ మెసేజింగ్ మోడల్ ద్వారా అమలు చేయబడుతుంది టాప్స్. Topic కాన్ఫరెన్సింగ్ మెకానిజం వలె అదే ప్రసార పద్ధతిని అందిస్తుంది. ఒక అంశానికి సందేశం పంపబడినప్పుడు, అది పంపిణీ చేయబడుతుంది సభ్యత్వం పొందిన వినియోగదారులందరికీ.

విషయాలు సాధారణంగా ఉంటాయి నమ్మదగని (నమ్మలేని). శ్రోత డిస్‌కనెక్ట్ అయినప్పుడు కాన్ఫరెన్స్ కాల్‌లో చెప్పేది వినలేని శ్రోత వలె, టాపిక్ సబ్‌స్క్రైబర్‌లు ఆఫ్‌లైన్‌లో ఉన్నప్పుడు పంపిన ఏవైనా సందేశాలను కోల్పోతారు. ఈ కారణంగా, టాపిక్‌లు డెలివరీ హామీని అందజేస్తాయని మేము చెప్పగలం ఒకసారి కంటే ఎక్కువ కాదు ప్రతి వినియోగదారునికి.

సందేశాలు సమాచార స్వభావాన్ని కలిగి ఉన్నప్పుడు మరియు ఒక సందేశాన్ని కోల్పోవడం ప్రత్యేకించి ముఖ్యమైనది కానప్పుడు సాధారణంగా ప్రచురించు-చందా సందేశం ఉపయోగించబడుతుంది. ఉదాహరణకు, ఒక అంశం సెకనుకు ఒకసారి సెన్సార్ల సమూహం నుండి ఉష్ణోగ్రత రీడింగ్‌లను ప్రసారం చేయగలదు. ప్రస్తుత ఉష్ణోగ్రతపై ఆసక్తి ఉన్న మరియు ఒక అంశానికి సబ్‌స్క్రైబ్ చేసే సిస్టమ్ మెసేజ్ మిస్ అయితే చింతించదు - మరొకటి సమీప భవిష్యత్తులో వస్తుంది.

హైబ్రిడ్ నమూనాలు

స్టోర్ వెబ్‌సైట్ ఆర్డర్ సందేశాలను "మెసేజ్ క్యూ"లో ఉంచుతుంది. ఈ సందేశాల యొక్క ప్రధాన వినియోగదారు కార్యనిర్వాహక వ్యవస్థ. అదనంగా, ఆడిట్ సిస్టమ్ తదుపరి ట్రాకింగ్ కోసం ఈ ఆర్డర్ సందేశాల కాపీలను కలిగి ఉండాలి. సిస్టమ్‌లు కొంత సమయం వరకు అందుబాటులో లేనప్పటికీ, రెండు సిస్టమ్‌లు సందేశాలను పంపడానికి అనుమతించవు. వెబ్‌సైట్‌కి ఇతర సిస్టమ్‌ల గురించి తెలియకూడదు.

బహుళ సిస్టమ్‌లకు సందేశం యొక్క నకలు అవసరమైనప్పుడు మరియు సందేశాన్ని కోల్పోకుండా నిరోధించడానికి విశ్వసనీయత మరియు పట్టుదల రెండూ అవసరం అయినప్పుడు, వినియోగ సందర్భాలకు తరచుగా ప్రచురణ-చందా మరియు పాయింట్-టు-పాయింట్ సందేశ నమూనాల కలయిక అవసరం.

ఈ కేసులకు గమ్యం (క్యూలు మరియు అంశాలకు సాధారణ పదం) అవసరం, ఇది సందేశాలను ప్రాథమికంగా ఒక అంశంగా పంపిణీ చేస్తుంది, తద్వారా ప్రతి సందేశం ఆ సందేశాలపై ఆసక్తి ఉన్న ప్రత్యేక సిస్టమ్‌కు పంపబడుతుంది, అయితే ప్రతి సిస్టమ్ ఇన్‌కమింగ్‌ను స్వీకరించే అనేక మంది వినియోగదారులను నిర్వచించగలదు. సందేశాలు, ఇది క్యూ లాంటిది. ఈ సందర్భంలో పఠనం రకం ప్రతి వాటాదారునికి ఒకసారి. ఈ హైబ్రిడ్ గమ్యస్థానాలకు తరచుగా మన్నిక అవసరమవుతుంది, తద్వారా వినియోగదారు ఆఫ్‌లైన్‌కు వెళితే, ఆ సమయంలో పంపబడిన సందేశాలు వినియోగదారు మళ్లీ కనెక్ట్ అయిన తర్వాత స్వీకరించబడతాయి.

హైబ్రిడ్ మోడల్‌లు కొత్తవి కావు మరియు ActiveMQ (టాపిక్‌లు మరియు క్యూలను మిళితం చేసే వర్చువల్ లేదా కాంపోజిట్ గమ్యస్థానాల ద్వారా) మరియు కాఫ్కా (పరోక్షంగా, దాని గమ్యం రూపకల్పన యొక్క ప్రాథమిక ఆస్తిగా) రెండింటితో సహా చాలా మెసేజింగ్ సిస్టమ్‌లలో ఉపయోగించవచ్చు.

ఇప్పుడు మనకు కొన్ని ప్రాథమిక పదజాలం మరియు సందేశ వ్యవస్థను మనం దేనికి ఉపయోగించవచ్చో అర్థం చేసుకున్నందున, వివరాలకు దిగుదాం.

అనువాదం పూర్తయింది: tele.gg/middle_java

కింది అనువదించబడిన భాగం: అధ్యాయం 3. కాఫ్కా

కొనసాగించాలి…

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి