రెడిస్ సెంటినెల్

Redis Sentinel



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







ఇంకా, Redis సెంటినెల్ క్లయింట్‌లు కనెక్ట్ అయ్యే మరియు తాజా మాస్టర్ నోడ్ IP చిరునామా కోసం అడుగుతున్న మధ్యస్థ వ్యక్తిగా పనిచేస్తుంది. కాబట్టి, కనెక్ట్ చేయబడిన సెంటినల్ మాస్టర్ నోడ్ చిరునామాను వెంటనే అందిస్తుంది.



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



సెంటినెల్స్ ఒప్పందం కోరం విలువపై ఆధారపడి ఉంటుంది, ఇది క్రింది విభాగంలో చర్చించబడుతుంది.





ఎవరి విలువ

కోరమ్ విలువ అనేది మాస్టర్ నోడ్ డౌన్‌లో ఉన్నప్పుడు అంగీకరించాల్సిన సెంటినెల్‌ల గరిష్ట సంఖ్య. ఈ విలువ మాస్టర్ నోడ్‌లో వైఫల్యాన్ని గుర్తించడానికి మాత్రమే ఉపయోగించబడుతుంది. ఫెయిల్‌ఓవర్ ప్రక్రియ ఎంపిక చేయబడిన సెంటినెల్‌ను లీడర్‌గా కొనసాగించడానికి అందుబాటులో ఉన్న బహుళ సెంటినెల్ నోడ్‌ల అధికారంతో ప్రారంభమవుతుంది.

రెడిస్ సెంటినెల్ యొక్క లక్షణాలు

సెంటినెల్ Redis డేటా స్టోర్ కోసం అధిక లభ్యత మెకానిజం అందించడానికి ప్రసిద్ధి చెందింది. అంతే కాకుండా, అనేక ఇతర సామర్థ్యాలను జాబితా చేయవచ్చు.



  • సెంటినెల్ మీ రెడిస్ సిస్టమ్‌లోని మాస్టర్ మరియు స్లేవ్ నోడ్‌ల స్థితిని నిరంతరం పర్యవేక్షిస్తుంది.
  • మీ Redis సందర్భాలలో వైఫల్యం లేదా ఏదైనా తప్పు జరిగినప్పుడు, సెంటినెల్ APIని ఉపయోగించి అడ్మినిస్ట్రేటర్ లేదా కనెక్ట్ చేయబడిన అప్లికేషన్‌లకు తెలియజేయగలదు.
  • కొత్త మాస్టర్‌గా ప్రతిరూపాన్ని ప్రచారం చేయడం ద్వారా ఫెయిల్‌ఓవర్ దశను సెంటినెల్ నిర్దేశించారు. మిగిలిన ప్రతిరూపాలు కొత్త మాస్టర్‌ని ఉపయోగించడానికి కాన్ఫిగర్ చేయబడ్డాయి. చివరగా, సంబంధిత క్లయింట్లు కొత్త మాస్టర్ నోడ్ చిరునామా గురించి తెలియజేయబడతారు.
  • అలాగే, Redis సెంటినెల్ అనేది కనెక్ట్ చేయబడిన క్లయింట్‌ల కోసం ఒక కాన్ఫిగరేషన్ ప్రొవైడర్, ఇక్కడ క్లయింట్‌లు ప్రస్తుతం అందుబాటులో ఉన్న మాస్టర్ ఇన్‌స్టాన్స్ యొక్క చిరునామాను అడగవచ్చు మరియు అకస్మాత్తుగా కుప్పకూలినట్లయితే, సెంటినెల్ వెంటనే కొత్త మాస్టర్ నోడ్ చిరునామాను నెట్టడానికి కట్టుబడి ఉంటుంది.

తదుపరి విభాగంలో, మేము మాస్టర్-రెప్లికా ఇన్‌స్టాన్స్‌లతో Redis సెంటినెల్‌లను కాన్ఫిగర్ చేస్తాము మరియు నోడ్‌లను పర్యవేక్షించడానికి సెంటినెల్ APIని ఉపయోగిస్తాము.

సెంటినల్ కాన్ఫిగరేషన్

ముందుగా, మేము పోర్ట్‌లు 7000 మరియు 7001 వద్ద రెండు రెడిస్ ఇన్‌స్టాన్స్‌లను సృష్టిస్తాము. పోర్ట్ 7000 మాస్టర్ నోడ్‌గా ఉంటుంది మరియు మరొకటి మాస్టర్‌ను ప్రతిబింబిస్తుంది. రెండు సందర్భాలు వరుసగా క్రింది కాన్ఫిగరేషన్ ఫైల్‌లను ఉపయోగిస్తాయి:

మాస్టర్ నోడ్ కాన్ఫిగరేషన్

ఓడరేవు 7000
క్లస్టర్-ఎనేబుల్డ్ నం
cluster-config-file nodes.conf
క్లస్టర్-నోడ్-సమయం ముగిసింది 5000
అనుబంధంగా మాత్రమే అవును

స్లేవ్ నోడ్ కాన్ఫిగరేషన్

ఓడరేవు 7001
క్లస్టర్-ఎనేబుల్డ్ నం
cluster-config-file nodes.conf
క్లస్టర్-నోడ్-సమయం ముగిసింది 5000
అనుబంధంగా మాత్రమే అవును

ప్రతిదానికి అనుబంధించబడిన కాన్ఫిగరేషన్ ఫైల్‌ను అందించడం ద్వారా రెండు సందర్భాలు ప్రారంభమవుతాయి. Redis ఉదంతాలను విడిగా ప్రారంభించడానికి మనం కింది ఆదేశాన్ని ఉపయోగించవచ్చు:

redis-server redis.conf

పోర్ట్ 7001లో ప్రారంభించిన రెడిస్ ఉదాహరణకి ఈ క్రింది విధంగా కనెక్ట్ చేద్దాం:

redis-cli -p 7001

ఇప్పుడు, మేము ఈ ఉదాహరణను పోర్ట్ 7000లో అమలు చేస్తున్న మాస్టర్ యొక్క ప్రతిరూపంగా చేయవచ్చు. REPLICAOF ఆదేశాన్ని ఈ క్రింది విధంగా ఉపయోగించవచ్చు:

127.0.0.1 యొక్క ప్రతిరూపం 7000

ఊహించినట్లుగా, పోర్ట్ 7001 వద్ద నడుస్తున్న ఉదాహరణ పోర్ట్ 7000 వద్ద నడుస్తున్న మాస్టర్ యొక్క ప్రతిరూప నోడ్‌గా మారింది.

ఇప్పుడు, పైన పేర్కొన్న మాస్టర్ ఇన్‌స్టాన్స్‌ను పర్యవేక్షించడానికి మేము మూడు Redis సెంటినెల్స్‌ను కాన్ఫిగర్ చేయడానికి సిద్ధంగా ఉన్నాము. కింది వాటిలో చూపిన విధంగా పోర్ట్‌లు 5000, 5001 మరియు 5002లో మూడు సెంటినెల్ ఇన్‌స్టాన్స్‌లను సృష్టించడానికి మనకు మూడు కాన్ఫిగరేషన్ ఫైల్‌లు ఉండాలి.

ప్రతి sentinel.conf పోర్ట్ నంబర్ మార్చబడుతుంది తప్ప ఫైల్ క్రింది విధంగా కనిపిస్తుంది:

ఓడరేవు 5000
సెంటినెల్ మానిటర్ మాస్టర్‌నోడ్ 127.0.0.1 7000 రెండు
సెంటినెల్ డౌన్-ఆఫ్టర్-మిల్లీసెకన్ల మాస్టర్‌నోడ్ 5000
సెంటినెల్ ఫెయిల్‌ఓవర్-టైమ్ అవుట్ మాస్టర్‌నోడ్ 60000

ఇప్పుడు, మూడు సెంటినెల్స్‌ను అమలు చేయడానికి ఇది సమయం. మీరు మార్గంతో పాటు redis-sentinel ఎక్జిక్యూటబుల్‌ని ఉపయోగించవచ్చు sentinel.conf సెంటినెల్ ఉదాహరణను సృష్టించడానికి కాన్ఫిగరేషన్ ఫైల్. లేకపోతే, మేము ఇప్పటికీ మార్గాన్ని పేర్కొనడం ద్వారా redis-server ఎక్జిక్యూటబుల్ అని పిలుస్తాము sentinel.conf మరియు జెండా -కాపలాదారుడు .

కింది ఆదేశాన్ని ఉపయోగించి ప్రతి సెంటినెల్‌ను ప్రారంభిద్దాం:

redis-server sentinel.conf --కాపలాదారుడు

మొదటి సెంటినెల్ పోర్ట్ 5000 వద్ద ప్రారంభించబడింది. అదేవిధంగా, మీరు ఇతర రెండు సందర్భాలను కూడా ప్రారంభించవచ్చు.

ఇప్పుడు, మా Redis సెంటినెల్ సెటప్ క్రింది దృష్టాంతంలో చూపిన విధంగా అమలులో ఉంది:

కింది విభాగంలో, మేము సెంటినెల్ API గురించి మరింత అన్వేషిస్తాము మరియు Redis మాస్టర్ నోడ్‌కు సంబంధించిన సమాచారాన్ని తిరిగి పొందడానికి మేము దానిని ఎలా ఉపయోగించగలము.

సెంటినెల్ API

సంబంధిత మాస్టర్‌లు మరియు ప్రతిరూపాలను పర్యవేక్షించడానికి, నోటిఫికేషన్‌ల కోసం సబ్‌స్క్రైబ్ చేయడానికి మరియు సెంటినల్ సెట్టింగ్‌లను సవరించడానికి రెడిస్ ప్రత్యేక సెంటినెల్ APIని అందిస్తుంది. ఇంకా, అనేక ఉపయోగాలు క్రింది వాటిలో జాబితా చేయబడ్డాయి.

  • పర్యవేక్షించబడే రెడిస్ మాస్టర్ మరియు స్లేవ్ ఉదంతాల స్థితిని తనిఖీ చేయండి
  • ఇతర సెంటినెల్స్ గురించిన వివరాలు
  • విఫలమైన సందర్భంలో సెంటినెల్స్ నుండి పుష్-శైలి నోటిఫికేషన్‌లను స్వీకరించండి

SENTINEL కమాండ్ దాని అనుబంధిత ఉపకమాండ్‌లతో క్వెరీ చేయడానికి, అప్‌డేట్ చేయడానికి లేదా Redis సెంటినెల్స్ మరియు పర్యవేక్షించబడిన నోడ్‌లను సెట్ చేయడానికి ఉపయోగించవచ్చు.

మాస్టర్ నోడ్ స్థితిని తనిఖీ చేయండి

మాస్టర్ నోడ్ ఆరోగ్యాన్ని ఎప్పటికప్పుడు పర్యవేక్షించడం లేదా తనిఖీ చేయడం చాలా ముఖ్యం. కింది సెంటినెల్ API కమాండ్‌ను మాస్టర్ వివరాలను తిరిగి పొందడానికి ఉపయోగించవచ్చు:

సెంటినెల్ మాస్టర్ < మానిటర్_మాస్టర్_పేరు >

మానిటర్_మాస్టర్_పేరు: మేము మునుపటి దశలో సృష్టించిన సెంటినల్ కాన్ఫిగరేషన్ ఫైల్‌లో పేర్కొన్న మాస్టర్ నోడ్ పేరు.

మన సెటప్‌లో మాస్టర్ స్థితిని ప్రశ్నించడానికి ఈ ఆదేశాన్ని ఉపయోగిస్తాము. మా విషయంలో, మాస్టర్ నోడ్ పేరు 'మాస్టర్నోడ్'.

సెంటినెల్ మాస్టర్ మాస్టర్‌నోడ్

సమాచారం యొక్క అనేక భాగాలు తిరిగి పొందబడ్డాయి మరియు వాటిలో కొన్ని ముఖ్యమైనవి సంఖ్య-బానిసలు, జెండాలు మరియు సంఖ్య-ఇతర-సెంటినెల్స్ వంటివి.

ది జెండాలు ఆస్తి సెట్ చేయబడింది మాస్టర్ అంటే మాస్టారు ఆరోగ్యంగా ఉన్నారు. మాస్టర్ నోడ్ డౌన్ అయినప్పుడల్లా, ది s_డౌన్ లేదా o_డౌన్ జెండా ప్రదర్శించబడుతుంది. ఆస్తి సంఖ్య-ఇతర-సెంటినెల్స్ 2కి సెట్ చేయబడింది అంటే Redis సెంటినెల్ ఇప్పటికే మాస్టర్ నోడ్ కోసం ఇతర రెండు సెంటినెల్‌లను గుర్తించింది. అదనంగా, ది సంఖ్య-బానిసలు ప్రాపర్టీ మాస్టర్ నోడ్ కోసం అందుబాటులో ఉన్న ప్రతిరూపాలను ప్రదర్శిస్తుంది. ఈ సందర్భంలో, మనకు ఒకే ప్రతిరూపం ఉన్నందున ఇది 1కి సెట్ చేయబడింది.

కనెక్ట్ చేయబడిన ప్రతిరూపాల గురించి సమాచారాన్ని పొందండి

కింది SENTINEL ఉప ఆదేశాన్ని ఉపయోగించి మేము మాస్టర్ నోడ్‌తో అనుసంధానించబడిన ప్రతిరూపాలను తనిఖీ చేయవచ్చు:

సెంటినెల్ ప్రతిరూపాలు < మానిటర్_మాస్టర్_పేరు >

ఈ ఉదాహరణలో, ప్రధాన పేరు 'మాస్టర్నోడ్'.

సెంటినెల్ ప్రతిరూపాల మాస్టర్‌నోడ్

ఊహించినట్లుగానే, పోర్ట్ 7001లో స్లేవ్ నోడ్ నడుస్తున్నట్లు సెంటినెల్ గుర్తించింది.

అసోసియేటెడ్ సెంటినెలీస్ గురించి సమాచారాన్ని పొందండి

అదేవిధంగా, మేము కింది SENTINEL సబ్‌కమాండ్‌ని ఉపయోగించి ప్రస్తుత మాస్టర్ నోడ్‌తో అనుబంధించబడిన ఇతర సెంటినెల్స్‌కు సంబంధించిన వివరాలను ప్రశ్నించవచ్చు:

సెంటినెల్ సెంటినెల్స్ < మాస్టర్_నోడ్_పేరు >

ఈ సందర్భంలో, మేము 'masternode' అనే మాస్టర్ నోడ్‌కు సంబంధించిన సమాచారాన్ని పొందుతాము.

సెంటినెల్ సెంటినెల్స్ మాస్టర్‌నోడ్

మాస్టర్ నోడ్ చిరునామాను పొందండి

మునుపటి విభాగంలో పేర్కొన్నట్లుగా, Redis సెంటినెల్ కనెక్ట్ చేయబడిన క్లయింట్‌ల కోసం కాన్ఫిగరేషన్ ప్రొవైడర్. కాబట్టి, ఇది అభ్యర్థించిన క్లయింట్‌లకు ప్రస్తుతం నడుస్తున్న మాస్టర్ నోడ్ IP చిరునామా మరియు పోర్ట్‌ను అందించగలదు. పేర్కొన్న సమాచారాన్ని తిరిగి పొందడానికి క్రింది సెంటినెల్ API ఉపకమాండ్‌ని ఉపయోగించవచ్చు.

సెంటినెల్ గెట్-మాస్టర్-ADDR-బై-నేమ్ < మాస్టర్_నోడ్_పేరు >

మన దృశ్యం కోసం పై ఆదేశాన్ని ఈ క్రింది విధంగా అమలు చేద్దాం:

సెంటినెల్ get-master-addr-by-name masternode

మేము కొన్ని సెంటినల్ API ఆదేశాలను మాత్రమే చర్చించాము. సెంటినెల్-ఫెయిల్‌ఓవర్, సెంటినల్ ఇన్ఫో-కాష్, సెంటినెల్ మాస్టర్‌లు మరియు మొదలైన అనేక ఇతర సబ్‌కమాండ్‌లు అందుబాటులో ఉన్నాయి. ఇంకా, అనేక కమాండ్‌లు అడ్మినిస్ట్రేషన్ ప్రయోజనాల కోసం కూడా అందుబాటులో ఉన్నాయి. కింది విభాగంలో, మేము Redis సెంటినెల్ ఫెయిల్‌ఓవర్ ప్రక్రియపై దృష్టి పెడతాము.

సెంటినెల్ ఫెయిల్ఓవర్ ప్రక్రియ

మా సెంటినెల్ కాన్ఫిగర్ చేయబడినందున, మేము ఫెయిల్-ఓవర్ దశను పరీక్షించవచ్చు. మాస్టర్ నోడ్‌లో వైఫల్యాన్ని అనుకరించే మా మాస్టర్ నోడ్‌ను 300 సెకన్ల పాటు నిద్రించడానికి పంపుదాం.

డీబగ్ నిద్ర 300

పోర్ట్ 7000 వద్ద అమలవుతున్న మాస్టర్ నోడ్ ఇప్పుడు అందుబాటులో ఉండదు. కాబట్టి, మాస్టర్ అందుబాటులో లేరని సంబంధిత సెంటినెల్స్ గమనిస్తారు +sdown సంఘటన. అప్పుడు, ఇది సెట్ చేయబడుతుంది + డౌన్ ఇక్కడ 2 సెంటినెల్‌లు కోరం విలువ ప్రకారం మాస్టర్ నోడ్ డౌన్‌లో ఉన్నట్లు నిర్ధారిస్తుంది. చివరగా, ఫెయిల్‌ఓవర్ దశ ప్రారంభమవుతుంది మరియు ఆదర్శంగా ప్రతిరూపాన్ని కొత్త మాస్టర్‌గా ప్రమోట్ చేయాలి.

మాస్టర్ నోడ్ IP చిరునామా మరియు పోర్ట్‌ను మళ్లీ తనిఖీ చేద్దాం.

సెంటినెల్ get-master-addr-by-name masternode

ఊహించినట్లుగానే, మునుపటి ప్రతిరూపం కొత్త మాస్టర్‌కి పదోన్నతి పొందింది అంటే సెంటినల్ ఫెయిల్‌ఓవర్ ప్రక్రియ విజయవంతమైంది. సింగిల్ మాస్టర్-రెప్లికా పెయిర్ కోసం మా మూడు సెంటినల్ సెటప్‌ల విస్తరణ మరియు పరీక్షను ఇది ముగించింది.

ముగింపు

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