የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

ሰላም, ስሜ Evgeniy ነው. በ Yandex.Market ፍለጋ መሠረተ ልማት ውስጥ እሰራለሁ. ስለ ገበያው የውስጥ ኩሽና ለሀብር ማህበረሰብ መንገር እፈልጋለሁ - እና ብዙ የምናገረው ነገር አለ። በመጀመሪያ ደረጃ, የገበያ ፍለጋ እንዴት እንደሚሰራ, ሂደቶች እና አርክቴክቸር. የአደጋ ጊዜ ሁኔታዎችን እንዴት እንይዛለን፡ አንዱ አገልጋይ ቢወድቅ ምን ይሆናል? እንደዚህ ያሉ 100 አገልጋዮች ካሉስ?

እንዲሁም አዲስ ተግባርን በአንድ ጊዜ በበርካታ አገልጋዮች ላይ እንዴት እንደምንተገብረው ይማራሉ ። እና ውስብስብ አገልግሎቶችን በቀጥታ በምርት ላይ እንዴት እንደምንፈትሽ፣ ለተጠቃሚዎች ምንም አይነት ችግር ሳያስከትል። በአጠቃላይ ሁሉም ሰው ጥሩ ጊዜ እንዲያሳልፍ የገበያ ፍለጋ እንዴት እንደሚሰራ።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

ስለ እኛ ትንሽ: ምን ችግር እንፈታዋለን

ጽሑፍ ሲያስገቡ፣ ምርትን በመለኪያ ሲፈልጉ ወይም በተለያዩ መደብሮች ውስጥ ዋጋዎችን ሲያወዳድሩ፣ ሁሉም ጥያቄዎች ወደ የፍለጋ አገልግሎት ይላካሉ። ፍለጋ በገበያ ውስጥ ትልቁ አገልግሎት ነው።

ሁሉንም የፍለጋ ጥያቄዎችን እናስተናግዳለን: ከጣቢያዎች market.yandex.ru, beru.ru, Supercheck አገልግሎት, Yandex.Advisor, የሞባይል መተግበሪያዎች. እንዲሁም በ yandex.ru ላይ የምርት አቅርቦቶችን በፍለጋ ውጤቶች ውስጥ እናካትታለን።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

የፍለጋ አገልግሎት ስል ፍለጋውን ራሱ ብቻ ሳይሆን በገበያ ላይ ካሉ ሁሉም ቅናሾች ጋር የውሂብ ጎታም ጭምር ነው። መጠኑ ይህ ነው፡ በቀን ከአንድ ቢሊዮን በላይ የፍለጋ ጥያቄዎች ይስተናገዳሉ። እና ሁሉም ነገር በፍጥነት መስራት አለበት, ያለማቋረጥ እና ሁልጊዜ የተፈለገውን ውጤት ያስገኛል.

ምንድን ነው፡ የገበያ አርክቴክቸር

አሁን ያለውን የገበያውን አርክቴክቸር ባጭሩ እገልጻለሁ። ከዚህ በታች ባለው ሥዕላዊ መግለጫ በግምት ሊገለጽ ይችላል-
የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል
የአጋር ሱቅ ወደ እኛ ይመጣል እንበል። አሻንጉሊት መሸጥ እፈልጋለሁ ይላል ይህ ክፉ ድመት ከጩኸት ጋር። እና ሌላ የተናደደ ድመት ያለ ጩኸት. እና ድመት ብቻ። ከዚያ ሱቁ ገበያው የሚፈልግባቸውን አቅርቦቶች ማዘጋጀት አለበት። መደብሩ ልዩ xml ከቅናሾች ጋር ያመነጫል እና ወደዚህ xml የሚወስደውን መንገድ በተቆራኘ በይነገጽ ያስተላልፋል። ጠቋሚው በየጊዜው ይህንን xml ያውርዳል፣ስህተቶችን ይፈትሻል እና ሁሉንም መረጃ ወደ ትልቅ የውሂብ ጎታ ያስቀምጣል።

እንደዚህ ያሉ ብዙ የተቀመጡ xmls አሉ። ከዚህ የውሂብ ጎታ የፍለጋ ኢንዴክስ ተፈጥሯል። መረጃ ጠቋሚው በውስጣዊ ቅርጸት ተከማችቷል. መረጃ ጠቋሚውን ከፈጠሩ በኋላ, የአቀማመጥ አገልግሎት ወደ ፍለጋ አገልጋዮች ይሰቅላል.

በውጤቱም, ጩኸት ያለው የተናደደ ድመት በመረጃ ቋቱ ውስጥ ይታያል, እና የድመቷ መረጃ ጠቋሚ በአገልጋዩ ላይ ይታያል.

ስለ ፍለጋ አርክቴክቸር በክፍል ውስጥ ድመትን እንዴት እንደፈለግን እነግርዎታለሁ።

የገበያ ፍለጋ ሥነ ሕንፃ

የምንኖረው በማይክሮ አገልግሎቶች ዓለም ውስጥ ነው፡ እያንዳንዱ ገቢ ጥያቄ market.yandex.ru ብዙ ንዑስ መጠይቆችን ያስከትላል፣ እና በደርዘን የሚቆጠሩ አገልግሎቶች በሂደታቸው ውስጥ ይሳተፋሉ። ስዕሉ የሚያሳየው ጥቂቶቹን ብቻ ነው፡-

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል
ቀለል ያለ የጥያቄ ሂደት እቅድ

እያንዳንዱ አገልግሎት አስደናቂ ነገር አለው - ልዩ ስም ያለው የራሱ ሚዛን

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

ሚዛኑ አገልግሎቱን በማስተዳደር ረገድ የበለጠ ተለዋዋጭነት ይሰጠናል፡ ለምሳሌ ብዙ ጊዜ ለዝማኔዎች የሚያስፈልጉትን አገልጋዮችን ማጥፋት ይችላሉ። ሚዛኑ አገልጋዩ እንደማይገኝ ያያል እና በራስ ሰር ወደ ሌሎች አገልጋዮች ወይም የውሂብ ማእከሎች ጥያቄዎችን ያዞራል። አገልጋይ ሲጨመሩ ወይም ሲወገዱ, ጭነቱ በአገልጋዮቹ መካከል እንደገና ይሰራጫል.

የተመጣጣኝ ልዩ ስም በመረጃ ማእከል ላይ የተመካ አይደለም. አገልግሎት A ለ B ጥያቄ ሲያቀርብ፣ በነባሪ ሚዛን B ጥያቄውን ወደ የአሁኑ የውሂብ ማዕከል ያዞራል። አገልግሎቱ የማይገኝ ከሆነ ወይም አሁን ባለው የውሂብ ማዕከል ውስጥ ከሌለ, ጥያቄው ወደ ሌሎች የውሂብ ማእከሎች ይዛወራል.

ለሁሉም የመረጃ ማእከሎች አንድ ነጠላ FQDN አገልግሎት A ከቦታዎች ሙሉ በሙሉ እንዲገለጽ ይፈቅዳል. ለአገልግሎት B ያቀረበው ጥያቄ ሁልጊዜም ይከናወናል። ልዩነቱ አገልግሎቱ በሁሉም የመረጃ ማእከሎች ውስጥ ሲገኝ ነው.

ነገር ግን በዚህ ሚዛን ሁሉም ነገር በጣም ሮዝ አይደለም: ተጨማሪ መካከለኛ አካል አለን. ሚዛኑ ያልተረጋጋ ሊሆን ይችላል፣ እና ይህ ችግር በተደጋጋሚ አገልጋዮች ይፈታል። በተጨማሪም በአገልግሎቶች A እና B መካከል ተጨማሪ መዘግየት አለ. ነገር ግን በተግባር ግን ከ 1 ms ያነሰ ነው እና ለአብዛኞቹ አገልግሎቶች ይህ ወሳኝ አይደለም.

ያልተጠበቁ ነገሮችን ማስተናገድ፡ የፍለጋ አገልግሎት ማመጣጠን እና የመቋቋም ችሎታ

ውድቀት እንዳለ አስቡት፡ ጩኸት ያለባትን ድመት መፈለግ አለብህ፣ ግን አገልጋዩ ተበላሽቷል። ወይም 100 አገልጋዮች. እንዴት መውጣት ይቻላል? በእርግጥ ተጠቃሚውን ያለ ድመት ልንተወው ነው?

ሁኔታው አስፈሪ ነው, ግን ለእሱ ዝግጁ ነን. በቅደም ተከተል እነግራችኋለሁ።

የፍለጋ መሠረተ ልማት በብዙ የመረጃ ማዕከሎች ውስጥ ይገኛል፡

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

ዲዛይን ሲደረግ አንድ የመረጃ ማእከልን የመዝጋት እድልን እናካትታለን። ሕይወት በሚያስደንቅ ሁኔታ የተሞላች ናት - ለምሳሌ አንድ ኤክስካቫተር ከመሬት በታች ያለውን ገመድ ሊቆርጥ ይችላል (አዎ ያ ተከሰተ)። በቀሪዎቹ የመረጃ ማእከሎች ውስጥ ያለው አቅም ከፍተኛ ጭነት ለመቋቋም በቂ መሆን አለበት.

አንድ ነጠላ የመረጃ ማእከልን እናስብ። እያንዳንዱ የውሂብ ማዕከል አንድ አይነት የሂሳብ አወጣጥ አሰራር እቅድ አለው፡-

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል
አንድ ሚዛን ቢያንስ ሦስት አካላዊ አገልጋዮች ነው። ይህ ድግግሞሽ የተሰራው ለታማኝነት ነው። ባላንስ በ HAProx ላይ ይሰራሉ።

HAProxን የመረጥነው በከፍተኛ አፈጻጸሙ፣ በዝቅተኛ የመረጃ ፍላጎቶች እና ሰፊ ተግባራት ምክንያት ነው። የእኛ የፍለጋ ሶፍትዌር በእያንዳንዱ አገልጋይ ውስጥ ይሰራል።

የአንድ አገልጋይ አለመሳካት እድሉ ዝቅተኛ ነው። ነገር ግን ብዙ አገልጋዮች ካሉዎት ቢያንስ አንዱ የመውረድ እድሉ ይጨምራል።

በእውነታው ላይ የሚሆነው ይህ ነው፡ የአገልጋዮች ብልሽት። ስለዚህ, የሁሉንም አገልጋዮች ሁኔታ በተከታታይ መከታተል አስፈላጊ ነው. አገልጋዩ ምላሽ መስጠቱን ካቆመ፣ በቀጥታ ከትራፊክ ግንኙነት ይቋረጣል። ለዚሁ ዓላማ፣ HAProxy አብሮ የተሰራ የጤና ፍተሻ አለው። በኤችቲቲፒ ጥያቄ “/ፒንግ” ወደ ሁሉም አገልጋዮች በሰከንድ አንድ ጊዜ ይሄዳል።

ሌላው የHAProxy ባህሪ፡ ወኪል-ቼክ ሁሉንም አገልጋዮች በእኩል እንዲጭኑ ይፈቅድልዎታል። ይህንን ለማድረግ HAProxy ከሁሉም አገልጋዮች ጋር ይገናኛል እና ክብደታቸውን አሁን ባለው ጭነት ከ 1 እስከ 100 ይመለሳሉ. ክብደቱ የሚሰላው በሂደቱ ውስጥ ባሉት የጥያቄዎች ብዛት እና በማቀነባበሪያው ላይ ባለው ጭነት ላይ በመመርኮዝ ነው ።

አሁን ድመቷን ስለማግኘት. የፍለጋው ውጤቶች በሚከተሉት ጥያቄዎች ውስጥ፡- /ፍለጋ?ጽሑፍ=የተናደደ+ድመት. ፍለጋው ፈጣን እንዲሆን አጠቃላይ የድመት መረጃ ጠቋሚ ከ RAM ጋር መስማማት አለበት። ከኤስኤስዲ ማንበብ እንኳን በቂ ፈጣን አይደለም።

በአንድ ወቅት የስጦታ ዳታቤዙ ትንሽ ነበር እና የአንድ አገልጋይ ራም በቂ ነበር። የስጦታ መሰረቱ እያደገ ሲሄድ ሁሉም ነገር ከዚህ RAM ጋር አይጣጣምም እና መረጃው በሁለት ክፍሎች ተከፍሏል፡ shard 1 እና shard 2።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል
ግን ይሄ ሁልጊዜ ይከሰታል: ማንኛውም መፍትሄ, ጥሩ እንኳን, ሌሎች ችግሮችን ያስከትላል.

ሚዛኑ አሁንም ወደ ማንኛውም አገልጋይ ሄዷል። ነገር ግን ጥያቄው በመጣበት ማሽን ላይ, የመረጃ ጠቋሚው ግማሽ ብቻ ነበር. የተቀረው በሌሎች አገልጋዮች ላይ ነበር። ስለዚህ አገልጋዩ ወደ አንዳንድ ጎረቤት ማሽን መሄድ ነበረበት። ከሁለቱም አገልጋዮች ውሂብ ከተቀበሉ በኋላ, ውጤቶቹ ተጣምረው እና ደረጃ ተቀይሯል.

ሚዛኑ ጥያቄዎችን በእኩልነት ስለሚያሰራጭ፣ ሁሉም አገልጋዮች ውሂብ በመላክ ብቻ ሳይሆን በድጋሚ ደረጃ አሰጣጥ ላይ ተሰማርተው ነበር።

ችግሩ የተከሰተው ጎረቤት አገልጋይ ከሌለ ነው። መፍትሔው የተለያዩ ቅድሚያ የሚሰጣቸውን ብዙ አገልጋዮችን እንደ “ጎረቤት” አገልጋይ መግለጽ ነበር። በመጀመሪያ ጥያቄው አሁን ባለው መደርደሪያ ውስጥ ላሉ አገልጋዮች ተልኳል። ምንም ምላሽ ከሌለ ጥያቄው በዚህ የመረጃ ማዕከል ውስጥ ላሉ አገልጋዮች ሁሉ ተልኳል። እና በመጨረሻም, ጥያቄው ወደ ሌሎች የመረጃ ማእከሎች ሄዷል.
የውሳኔ ሃሳቦች ቁጥር እያደገ ሲሄድ መረጃው በአራት ክፍሎች ተከፍሏል. ግን ይህ ገደብ አልነበረም.

በአሁኑ ጊዜ የስምንት ሾጣጣዎች ውቅር ጥቅም ላይ ይውላል. በተጨማሪም, የበለጠ ማህደረ ትውስታን ለመቆጠብ, ኢንዴክስ በፍለጋ ክፍል (ለመፈለግ ጥቅም ላይ የሚውል) እና ቅንጣቢ ክፍል (በፍለጋ ውስጥ ያልተሳተፈ) ተከፍሏል.

አንድ አገልጋይ ለአንድ ሻርድ ብቻ መረጃ ይዟል። ስለዚህ, ሙሉውን መረጃ ጠቋሚ ለመፈለግ, የተለያዩ ሻርዶችን በያዙ ስምንት አገልጋዮች ላይ መፈለግ ያስፈልግዎታል.

አገልጋዮች በክላስተር ተመድበዋል። እያንዳንዱ ዘለላ ስምንት የፍለጋ ፕሮግራሞችን እና አንድ ቅንጣቢ አገልጋይ ይይዛል።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል
ቅንጣቢ አገልጋዩ የማይንቀሳቀስ ውሂብ ያለው ቁልፍ እሴት ዳታቤዝ ያካሂዳል። ሰነዶችን ለማውጣት ያስፈልጋሉ, ለምሳሌ, የድመትን ጩኸት ያለው መግለጫ. የፍለጋ አገልጋዮችን ማህደረ ትውስታ እንዳይጭን ውሂቡ በተለየ ወደተለየ አገልጋይ ይተላለፋል።

የሰነድ መታወቂያዎች በአንድ ኢንዴክስ ውስጥ ብቻ ልዩ ስለሆኑ፣ በቅንጭቦቹ ውስጥ ምንም ሰነዶች የሌሉበት ሁኔታ ሊፈጠር ይችላል። ደህና፣ ወይም ያ ለአንድ መታወቂያ የተለየ ይዘት ይኖረዋል። ስለዚህ, ፍለጋው እንዲሰራ እና ውጤቶቹ እንዲመለሱ, በመላው ክላስተር ላይ ወጥነት ያለው ፍላጎት ነበረው. ወጥነትን እንዴት እንደምንቆጣጠር ከዚህ በታች እነግራችኋለሁ።

ፍለጋው ራሱ እንደሚከተለው ተዋቅሯል፡ የፍለጋ ጥያቄ ወደ ማንኛውም ስምንቱ አገልጋዮች ሊመጣ ይችላል። እሱ ወደ አገልጋይ መጣ እንበል 1. ይህ አገልጋይ ሁሉንም ክርክሮች ያስኬዳል እና ምን እና እንዴት መፈለግ እንዳለበት ይረዳል። በመጪው ጥያቄ ላይ በመመስረት አገልጋዩ አስፈላጊውን መረጃ ለማግኘት ለውጭ አገልግሎቶች ተጨማሪ ጥያቄዎችን ማድረግ ይችላል። አንድ ጥያቄ እስከ አስር የውጭ አገልግሎቶች ጥያቄዎችን መከተል ይችላል።

አስፈላጊውን መረጃ ከተሰበሰበ በኋላ ፍለጋው በአቅርቦት ዳታቤዝ ውስጥ ይጀምራል። ይህንን ለማድረግ በክላስተር ውስጥ ላሉ ስምንቱ አገልጋዮች ንዑስ መጠይቆች ተደርገዋል።

ምላሾቹ ከተቀበሉ በኋላ ውጤቶቹ ይጣመራሉ. በመጨረሻ፣ ውጤቶቹን ለማመንጨት ብዙ ተጨማሪ የቅንጣቢ አገልጋይ መጠይቆች ያስፈልጉ ይሆናል።

በክላስተር ውስጥ ያሉ የፍለጋ ጥያቄዎች ይህንን ይመስላሉ፡- /shard1?text=የተናደደ+ድመት. በተጨማሪም፣ የቅጹ ንዑስ መጠይቆች በሰከንድ አንድ ጊዜ በክላስተር ውስጥ ባሉ ሁሉም አገልጋዮች መካከል በቋሚነት ይከናወናሉ፡ / ሁኔታ.

ጥያቄ / ሁኔታ አገልጋዩ የማይገኝበትን ሁኔታ ያውቃል።

እንዲሁም የፍለጋ ኢንጂን ስሪት እና የመረጃ ጠቋሚው ስሪት በሁሉም አገልጋዮች ላይ አንድ አይነት መሆናቸውን ይቆጣጠራል፣ አለበለዚያ በክላስተር ውስጥ ወጥ ያልሆነ መረጃ ይኖራል።

ምንም እንኳን አንድ ቅንጣቢ አገልጋይ ከስምንት የፍለጋ ፕሮግራሞች የሚቀርብ ጥያቄን የሚያስኬድ ቢሆንም ፕሮሰሰሩ በጣም በትንሹ ተጭኗል። ስለዚህ፣ አሁን ቅንጣቢውን መረጃ ወደተለየ አገልግሎት እያስተላለፍን ነው።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

መረጃን ለማስተላለፍ፣ ለሰነዶች ሁለንተናዊ ቁልፎችን አስተዋውቀናል። አሁን ከሌላ ሰነድ ይዘት አንድ ቁልፍ በመጠቀም የተመለሰበት ሁኔታ የማይቻል ነው።

ግን ወደ ሌላ አርክቴክቸር የሚደረገው ሽግግር ገና አልተጠናቀቀም. አሁን የተወሰነውን ቅንጣቢ አገልጋይ ማስወገድ እንፈልጋለን። እና ከዚያ ከጥቅል መዋቅር ሙሉ በሙሉ ይራቁ። ይህ በቀላሉ መመዘን እንድንቀጥል ያስችለናል። ተጨማሪ ጉርሻ ከፍተኛ የብረት ቁጠባ ነው.

እና አሁን አስደሳች መጨረሻ ያላቸው አስፈሪ ታሪኮች። የአገልጋይ አለመገኘት በርካታ ጉዳዮችን እንመልከት።

አንድ አስፈሪ ነገር ተከስቷል፡ አንድ አገልጋይ አይገኝም

አንድ አገልጋይ የለም እንበል። ከዚያ በክላስተር ውስጥ ያሉት የቀሩት አገልጋዮች ምላሽ መስጠታቸውን ሊቀጥሉ ይችላሉ, ነገር ግን የፍለጋ ውጤቶቹ ያልተሟሉ ይሆናሉ.

በሁኔታ ማረጋገጫ በኩል / ሁኔታ ጎረቤት አገልጋዮች አንዱ እንደማይገኝ ይገነዘባሉ። ስለዚህ፣ ሙሉነትን ለመጠበቅ፣ በክላስተር ውስጥ ያሉ ሁሉም አገልጋዮች በጥያቄ /ፒንግ እነሱም አይገኙም ለሚለው ሚዛኑ ምላሽ መስጠት ይጀምራሉ። በክላስተር ውስጥ ያሉት ሁሉም አገልጋዮች ሞተዋል (ይህ እውነት አይደለም)። ይህ የክላስተር እቅዳችን ዋነኛው መሰናክል ነው - ለዛ ነው ከእሱ መራቅ የምንፈልገው።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

ከስህተት ጋር ያልተሳኩ ጥያቄዎች በሌሎች አገልጋዮች ላይ ባለው ሚዛን ሰጪው ይላካሉ።
ሚዛኑ የተጠቃሚውን ትራፊክ ለሞቱ አገልጋዮች መላክ ያቆማል፣ነገር ግን ሁኔታቸውን መፈተሽ ይቀጥላል።

አገልጋዩ ሲገኝ ምላሽ መስጠት ይጀምራል /ፒንግ. ከሟች አገልጋዮች ለፒንግ መደበኛ ምላሾች መምጣት ሲጀምሩ፣ሚዛን ሰጪዎች የተጠቃሚ ትራፊክ ወደዚያ መላክ ይጀምራሉ። የክላስተር ስራ ወደነበረበት ተመልሷል፣ ቸኩይ።

ይባስ ብሎ፡ ብዙ አገልጋዮች አይገኙም።

በመረጃ ማእከሉ ውስጥ ያሉት የአገልጋዮች ጉልህ ክፍል ተቆርጠዋል። ምን ማድረግ, የት መሮጥ? ሚዛኑ እንደገና ለማዳን ይመጣል። እያንዳንዱ ሚዛን የአሁኑን የቀጥታ አገልጋዮች ብዛት በማስታወስ ውስጥ ያከማቻል። የአሁኑ የመረጃ ማእከል ሊሰራ የሚችለውን ከፍተኛውን የትራፊክ መጠን ያለማቋረጥ ያሰላል።

በመረጃ ማእከል ውስጥ ያሉ ብዙ አገልጋዮች ሲወርዱ፣ ሚዛኑ ይህ የመረጃ ማዕከል ሁሉንም ትራፊክ ማካሄድ እንደማይችል ይገነዘባል።

ከዚያ ትርፍ ትራፊክ በዘፈቀደ ወደ ሌሎች የመረጃ ማእከሎች መሰራጨት ይጀምራል። ሁሉም ነገር ይሰራል, ሁሉም ደስተኛ ነው.

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

እንዴት እንደምናደርገው: ልቀቶችን ማተም

አሁን በአገልግሎቱ ላይ የተደረጉ ለውጦችን እንዴት እንደምናተም እንነጋገር. እዚህ የማቃለል ሂደቶችን ወስደናል፡ አዲስ ልቀት ሙሉ በሙሉ በራስ ሰር የሚሰራ ነው።
በፕሮጀክቱ ውስጥ የተወሰኑ ለውጦች ሲከማቹ, አዲስ ልቀት በራስ-ሰር ይፈጠራል እና ግንባታው ይጀምራል.

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

ከዚያም አገልግሎቱ ለሙከራ ተዘርግቷል, የአሠራሩ መረጋጋት የሚረጋገጥበት.

በተመሳሳይ ጊዜ, ራስ-ሰር የአፈፃፀም ሙከራ ተጀምሯል. ይህ በልዩ አገልግሎት የተያዘ ነው. ስለ እሱ አሁን አልናገርም - መግለጫው ለተለየ ጽሑፍ ብቁ ነው።

በሙከራ ላይ መታተም ከተሳካ፣ የተለቀቀው በፕሪስታብል ህትመቱ በራስ-ሰር ይጀምራል። Prestable መደበኛ የተጠቃሚ ትራፊክ የሚመራበት ልዩ ስብስብ ነው። ስህተት ከመለሰ፣ ሚዛኑ ወደ ምርት በድጋሚ ጥያቄ ያቀርባል።

በቅድመ ሁኔታ፣ የምላሽ ጊዜዎች ይለካሉ እና በምርት ውስጥ ካለፈው ልቀት ጋር ይነጻጸራሉ። ሁሉም ነገር ጥሩ ከሆነ, አንድ ሰው ይገናኛል: ግራፎችን እና የጭነት መፈተሻ ውጤቶችን ይፈትሹ እና ከዚያም ወደ ምርት መልቀቅ ይጀምራል.

መልካሙ ሁሉ ለተጠቃሚው ይሄዳል፡ A/B ሙከራ

በአገልግሎት ላይ የተደረጉ ለውጦች እውነተኛ ጥቅሞችን ያስገኙ እንደሆነ ሁልጊዜ ግልጽ አይደለም. የለውጦችን ጠቃሚነት ለመለካት ሰዎች የA/B ሙከራን ይዘው መጡ። በ Yandex.Market ፍለጋ ውስጥ እንዴት እንደሚሰራ ትንሽ እነግርዎታለሁ.

ይህ ሁሉ የሚጀምረው አዲስ ተግባርን የሚያስችለውን አዲስ የCGI መለኪያ በማከል ነው። የእኛ ግቤት ይሁን፡- የገበያ_አዲስ_ተግባራዊነት=1. ከዚያ በኮዱ ውስጥ ባንዲራ ካለ ይህንን ተግባር እናነቃለን፡-

If (cgi.experiments.market_new_functionality) {
// enable new functionality
}

አዲስ ተግባር ወደ ምርት በመልቀቅ ላይ ነው።

የA/B ሙከራን በራስ ሰር ለመስራት ዝርዝር መረጃ የሚሰጥ ልዩ አገልግሎት አለ። እዚህ ተብራርቷል. በአገልግሎቱ ውስጥ ሙከራ ተፈጥሯል. የትራፊክ ድርሻው ተዘጋጅቷል፣ ለምሳሌ 15% መቶኛ የተዘጋጀው ለጥያቄዎች ሳይሆን ለተጠቃሚዎች ነው። የሙከራው ቆይታም ይገለጻል, ለምሳሌ, አንድ ሳምንት.

ብዙ ሙከራዎችን በአንድ ጊዜ ማካሄድ ይቻላል. በቅንብሮች ውስጥ ከሌሎች ሙከራዎች ጋር መገናኘት ይቻል እንደሆነ መግለጽ ይችላሉ።

በውጤቱም, አገልግሎቱ በራስ-ሰር ክርክር ይጨምራል የገበያ_አዲስ_ተግባራዊነት=1 ወደ 15% ተጠቃሚዎች። እንዲሁም የተመረጡትን መለኪያዎች በራስ-ሰር ያሰላል. ሙከራው ከተጠናቀቀ በኋላ ተንታኞች ውጤቱን ይመለከታሉ እና መደምደሚያዎችን ይሳሉ. በግኝቶቹ ላይ በመመስረት ወደ ምርት ወይም ማሻሻያ ለማውጣት ውሳኔ ተወስኗል.

የገበያ እጅ: በምርት ውስጥ መሞከር

ብዙውን ጊዜ በምርት ውስጥ አዲስ ተግባርን መሞከር ያስፈልግዎታል ፣ ግን በከባድ ጭነት ውስጥ “በመዋጋት” ሁኔታዎች ውስጥ እንዴት እንደሚሠራ እርግጠኛ አይደሉም።

አንድ መፍትሄ አለ: በ CGI መለኪያዎች ውስጥ ያሉ ባንዲራዎች ለ A / B ሙከራ ብቻ ሳይሆን አዲስ ተግባራትን ለመፈተሽም ሊያገለግሉ ይችላሉ.

አገልግሎቱን ለአደጋዎች ሳያሳዩ በሺዎች በሚቆጠሩ አገልጋዮች ላይ ውቅረትን በፍጥነት እንዲቀይሩ የሚያስችል መሣሪያ ሠርተናል። ቶፕ ታፕ ይባላል። ዋናው ሀሳብ አንዳንድ ተግባራትን ያለ አቀማመጥ በፍጥነት ማሰናከል መቻል ነበር። ከዚያም መሳሪያው ተዘርግቶ የበለጠ ውስብስብ ሆነ.

የአገልግሎት ፍሰት ንድፍ ከዚህ በታች ቀርቧል።

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

የሰንደቅ ዓላማዎች በኤፒአይ በኩል ተቀናብረዋል። የአስተዳደር አገልግሎት እነዚህን እሴቶች በመረጃ ቋቱ ውስጥ ያከማቻል። ሁሉም አገልጋዮች በየአስር ሰከንድ አንድ ጊዜ ወደ ዳታቤዝ ይሄዳሉ፣ ባንዲራ እሴቶችን አውጥተው ለእያንዳንዱ ጥያቄ እነዚህን እሴቶች ይተግብሩ።

በማቆም መታ ማድረግ ሁለት አይነት እሴቶችን ማዘጋጀት ይችላሉ፡-

1) ሁኔታዊ መግለጫዎች. ከዋጋዎቹ ውስጥ አንዱ እውነት ሲሆን ያመልክቱ። ለምሳሌ:

{
	"condition":"IS_DC1",
	"value":"3",
}, 
{
	"condition": "CLUSTER==2 and IS_BERU", 
	"value": "4!" 
}

ጥያቄው በዲሲ3 አካባቢ ሲካሄድ የ"1" እሴት ተግባራዊ ይሆናል። እና ለ beru.ru ጣቢያው ጥያቄው በሁለተኛው ክላስተር ላይ ሲካሄድ እሴቱ "4" ነው.

2) ቅድመ ሁኔታ የሌላቸው እሴቶች. ማናቸውም ሁኔታዎች ካልተሟሉ በነባሪነት ያመልክቱ። ለምሳሌ:

ዋጋ ፣ እሴት!

አንድ እሴት በቃለ አጋኖ የሚያልቅ ከሆነ ቅድሚያ የሚሰጠው ከፍተኛ ነው።

የCGI መለኪያው ተንታኝ ዩአርኤሉን ይተነትናል። ከዚያ እሴቶቹን ከStop Tap ላይ ይተገበራል።

ከሚከተሉት ቅድሚያዎች ጋር ዋጋዎች ይተገበራሉ:

  1. ከStop Tap (የቃለ አጋኖ) ቅድሚያ በጨመረ።
  2. ዋጋ ከጥያቄ።
  3. ከመንካት አቁም ነባሪ እሴት።
  4. በኮድ ውስጥ ያለው ነባሪ እሴት።

በሁኔታዊ እሴቶች ውስጥ የሚጠቁሙ ብዙ ባንዲራዎች አሉ - ለእኛ ለሚታወቁ ሁሉም ሁኔታዎች በቂ ናቸው-

  • የውሂብ ማዕከል.
  • አካባቢ: ምርት, ሙከራ, ጥላ.
  • ቦታ: ገበያ, beru.
  • የክላስተር ቁጥር።

በዚህ መሣሪያ አማካኝነት በተወሰኑ የአገልጋዮች ቡድን ላይ (ለምሳሌ በአንድ የውሂብ ማዕከል ውስጥ) አዲስ ተግባርን ማንቃት እና የዚህን ተግባር አሠራር ለጠቅላላው አገልግሎት ያለ ምንም ልዩ አደጋ መሞከር ይችላሉ። የሆነ ቦታ ላይ ከባድ ስህተት ቢሰሩም ሁሉም ነገር መውደቅ ጀምሯል እና አጠቃላይ የመረጃ ማእከል ወድቋል፣ሚዛን ሰጪዎች ጥያቄዎችን ወደ ሌላ የውሂብ ማእከሎች ያዞራሉ። የመጨረሻ ተጠቃሚዎች ምንም ነገር አያስተውሉም።

አንድ ችግር ካስተዋሉ ባንዲራውን ወዲያውኑ ወደ ቀድሞው ዋጋ መመለስ ይችላሉ እና ለውጦቹ ይመለሳሉ።

ይህ አገልግሎት እንዲሁ አሉታዊ ጎኖች አሉት-ገንቢዎቹ በጣም ይወዳሉ እና ብዙውን ጊዜ ሁሉንም ለውጦች ወደ Stop Tap ለመጫን ይሞክራሉ። አላግባብ መጠቀምን ለመዋጋት እየሞከርን ነው።

ለምርት ለመለቀቅ የተዘጋጀ የተረጋጋ ኮድ ሲኖርዎት የStop Tap አካሄድ በደንብ ይሰራል። በተመሳሳይ ጊዜ, አሁንም ጥርጣሬዎች አሉዎት, እና በ "ውጊያ" ሁኔታዎች ውስጥ ኮዱን ማረጋገጥ ይፈልጋሉ.

ነገር ግን በልማት ወቅት ቶፕ መታ ማድረግ ለሙከራ ተስማሚ አይደለም። ለገንቢዎች የተለየ “የጥላ ክላስተር” የሚባል አለ።

ሚስጥራዊ ሙከራ፡ የጥላ ክላስተር

ከአንዱ ዘለላዎች የመጡ ጥያቄዎች ወደ ጥላ ዘለላ ይባዛሉ። ነገር ግን ሚዛኑ ከዚህ ዘለላ የሚመጡትን ምላሾች ሙሉ በሙሉ ችላ ይላል። የሥራው ንድፍ ከዚህ በታች ቀርቧል.

የ Yandex.Market ፍለጋ እንዴት እንደሚሰራ እና ከአገልጋዮቹ አንዱ ካልተሳካ ምን ይከሰታል

በእውነተኛ "ውጊያ" ሁኔታዎች ውስጥ ያለ የሙከራ ክላስተር እናገኛለን. መደበኛ የተጠቃሚ ትራፊክ ወደዚያ ይሄዳል። በሁለቱም ስብስቦች ውስጥ ያለው ሃርድዌር ተመሳሳይ ነው, ስለዚህ አፈጻጸም እና ስህተቶች ሊነፃፀሩ ይችላሉ.

እና ሚዛኑ ምላሾችን ሙሉ በሙሉ ችላ ስለሚል፣ ዋና ተጠቃሚዎች ከጥላ ስብስብ ምላሾችን አያዩም። ስለዚህ, ስህተት ለመስራት አስፈሪ አይደለም.

ግኝቶች

ስለዚህ የገበያ ፍለጋን እንዴት ገነባን?

ሁሉም ነገር በተቃና ሁኔታ እንዲሄድ ለማድረግ፣ ተግባርን ወደ ተለያዩ አገልግሎቶች እንለያለን። በዚህ መንገድ የምንፈልጋቸውን ክፍሎች ብቻ መመዘን እና ክፍሎቹን ቀላል ማድረግ እንችላለን። የተለየ አካል ለሌላ ቡድን መመደብ እና በእሱ ላይ ለመስራት ሃላፊነቶችን ማጋራት ቀላል ነው። እና በዚህ አቀራረብ በብረት ውስጥ ጉልህ የሆነ ቁጠባዎች ግልጽ የሆነ ተጨማሪ ነገር ነው.

የጥላ ክላስተርም ይረዳናል፡ አገልግሎቶችን ማዳበር፣ በሂደቱ ውስጥ ልንፈትናቸው እና ተጠቃሚውን አንረብሽም።

ደህና, በምርት ውስጥ መሞከር, በእርግጥ. በሺዎች በሚቆጠሩ አገልጋዮች ላይ ውቅረት መቀየር ይፈልጋሉ? ቀላል፣ ቶፕ መታ ያድርጉ። በዚህ መንገድ ወዲያውኑ ዝግጁ የሆነ ውስብስብ መፍትሄን ማውጣት እና ችግሮች ከተፈጠሩ ወደ የተረጋጋ ስሪት መመለስ ይችላሉ.

ከጊዜ ወደ ጊዜ እያደገ ባለው የቅናሾች መሠረት ገበያውን ፈጣን እና የተረጋጋ እንዴት እንደምናደርገው ለማሳየት እንደቻልኩ ተስፋ አደርጋለሁ። የአገልጋይ ችግሮችን እንዴት እንደምንፈታ ፣ እጅግ በጣም ብዙ ጥያቄዎችን እንደምናስተናግድ ፣ የአገልግሎቱን ተለዋዋጭነት ማሻሻል እና የስራ ሂደቶችን ሳናቋርጥ ይህንን እናደርጋለን።

ምንጭ: hab.com

አስተያየት ያክሉ