እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

ሀሎ! ስሜ አሌክሲ ፒያንኮቭ ነው፣ እኔ በስፖርትማስተር ኩባንያ ገንቢ ነኝ። በዚህ ውስጥ ልጥፍ በ 2012 በስፖርትማስተር ድረ-ገጽ ላይ ሥራ እንዴት እንደጀመረ፣ ምን አይነት ተነሳሽነትን "ለመግፋት" እንደቻልን እና በተቃራኒው ምን አይነት መሰቅሰቂያ እንደሰበሰብን ነገርኩ።

ዛሬ ሌላ ርዕስ የሚከተሉ ሀሳቦችን ማካፈል እፈልጋለሁ - በጣቢያ አስተዳዳሪ አካባቢ ውስጥ ለጃቫ ጀርባ መሸጎጫ ስርዓት መምረጥ። ይህ ሴራ ለእኔ ልዩ ትርጉም አለው - ምንም እንኳን ታሪኩ ለ 2 ወራት ብቻ ቢገለጽም, በእነዚህ 60 ቀናት ውስጥ ከ12-16 ሰአታት እና ያለ አንድ ቀን እረፍት ሰርተናል. ይህን ያህል ጠንክሮ መሥራት እንደሚቻል አስቤም አስቤም አላውቅም ነበር።

ስለዚህ, ጽሑፉን ሙሉ በሙሉ ላለመጫን በ 2 ክፍሎች እከፍላለሁ. በተቃራኒው, የመጀመሪያው ክፍል በጣም ቀላል ይሆናል - ዝግጅት, መግቢያ, መሸጎጥ ምን እንደሆነ አንዳንድ ሃሳቦች. ቀደም ሲል ልምድ ያለው ገንቢ ከሆንክ ወይም በመሸጎጫዎች የሰራህ ከሆነ ከቴክኒካል ጎኑ በዚህ ጽሁፍ ውስጥ ምንም አዲስ ነገር ላይኖር ይችላል። ነገር ግን ለታዳጊ ልጅ እንዲህ ዓይነቱ ትንሽ ግምገማ እራሱን በእንደዚህ መስቀለኛ መንገድ ላይ ካገኘ የትኛውን አቅጣጫ እንደሚመለከት ሊነግረው ይችላል.

እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

አዲሱ የSportmaster ድረ-ገጽ ወደ ምርት ሲገባ፣ ውሂቡ የተቀበለው በቀላል ለመናገር፣ በጣም ምቹ ባልሆነ መንገድ ነው። መሰረቱ ለቀደመው የጣቢያው ስሪት (ቢትሪክስ) የተዘጋጁ ሰንጠረዦች ወደ ኢቲኤል መጎተት፣ ወደ አዲስ ቅፅ ማምጣት እና ከአስር ተጨማሪ ስርዓቶች በተለያዩ ትንንሽ ነገሮች የበለፀጉ ናቸው። አዲስ ምስል ወይም የምርት መግለጫ በጣቢያው ላይ እንዲታይ, እስከሚቀጥለው ቀን ድረስ መጠበቅ አለብዎት - ዝማኔዎች በምሽት ብቻ, በቀን አንድ ጊዜ.

በመጀመሪያ፣ ወደ ምርት ከገባ ከመጀመሪያዎቹ ሳምንታት ጀምሮ ብዙ ጭንቀቶች ስለነበሩ ለይዘት አስተዳዳሪዎች እንደዚህ ያሉ ችግሮች ቀላል ነበሩ። ነገር ግን ሁሉም ነገር እንደተስተካከለ የፕሮጀክቱ እድገት ቀጥሏል - ከጥቂት ወራት በኋላ በ 2015 መጀመሪያ ላይ የአስተዳዳሪ ፓነልን በንቃት ማዘጋጀት ጀመርን. እ.ኤ.አ. በ 2015 እና 2016 ሁሉም ነገር በጥሩ ሁኔታ እየሄደ ነው ፣ በመደበኛነት እንለቃለን ፣ የአስተዳዳሪው ፓነል ብዙ እና ብዙ የመረጃ ዝግጅትን ይሸፍናል ፣ እና በቅርቡ ቡድናችን በጣም አስፈላጊ እና ውስብስብ የሆነውን ነገር - ምርቱን በአደራ እንደሚሰጥ በመዘጋጀት ላይ ነን። ወረዳ (በሁሉም ምርቶች ላይ የውሂብ ሙሉ ዝግጅት እና ጥገና). ነገር ግን በ 2017 የበጋ ወቅት, የሸቀጦች ወረዳው ከመጀመሩ በፊት, ፕሮጀክቱ እራሱን በጣም አስቸጋሪ በሆነ ሁኔታ ውስጥ ያገኛል - በትክክል በመሸጎጫ ችግሮች ምክንያት. በዚህ ባለ ሁለት ክፍል ሕትመት ሁለተኛ ክፍል ውስጥ ስለዚህ ክፍል ማውራት እፈልጋለሁ።

ግን በዚህ ጽሑፍ ውስጥ ከሩቅ እጀምራለሁ ፣ አንዳንድ ሀሳቦችን አቀርባለሁ - ስለ መሸጎጫ ሀሳቦች ፣ ይህም ከትልቅ ፕሮጀክት በፊት ለማሸብለል ጥሩ እርምጃ ነው።

የመሸጎጫ ተግባር ሲከሰት

የመሸጎጫ ስራው ዝም ብሎ አይታይም። እኛ ገንቢዎች ነን፣ የሶፍትዌር ምርት እየጻፍን እና ተፈላጊ እንዲሆን እንፈልጋለን። ምርቱ በፍላጎት እና ስኬታማ ከሆነ ተጠቃሚዎች ይመጣሉ. እና ተጨማሪ እና ተጨማሪ ይመጣሉ. እና ከዚያ ብዙ ተጠቃሚዎች አሉ እና ከዚያም ምርቱ በከፍተኛ ሁኔታ ይጫናል.

በመጀመሪያ ደረጃዎች ስለ ማመቻቸት እና ኮድ አፈፃፀም አናስብም. ዋናው ነገር ተግባራዊነት ነው, አብራሪውን በፍጥነት በማዞር እና መላምቶችን መሞከር. እና ጭነቱ ከጨመረ, ብረቱን እናስገባዋለን. ሁለት ወይም ሶስት ጊዜ, አምስት ጊዜ, ምናልባትም 10 ጊዜ እንጨምራለን. እዚህ የሆነ ቦታ - ፋይናንስ ከአሁን በኋላ አይፈቅድም. የተጠቃሚዎች ቁጥር ስንት ጊዜ ይጨምራል? እንደ 2-5-10 አይሆንም, ከተሳካ ግን ከ 100-1000 እስከ 100 ሺህ ጊዜ ይሆናል. ማለትም ፈጥኖም ይሁን ዘግይቶ ማመቻቸትን ማድረግ ይኖርብዎታል።

አንዳንድ የኮዱ ክፍል (ይህን ክፍል ተግባር ብለን እንጠራው) አግባብ ያልሆነ ረጅም ጊዜ ይወስዳል እንበል እና የማስፈጸሚያ ጊዜን መቀነስ እንፈልጋለን። አንድ ተግባር የውሂብ ጎታ መዳረሻ ሊሆን ይችላል, ወይም አንዳንድ ውስብስብ ሎጂክ አፈጻጸም ሊሆን ይችላል - ዋናው ነገር ለማጠናቀቅ ረጅም ጊዜ ይወስዳል. የማስፈጸሚያ ጊዜን ምን ያህል መቀነስ ይችላሉ? በገደቡ ውስጥ, ወደ ዜሮ መቀነስ ይችላሉ, ምንም ተጨማሪ. የማስፈጸሚያ ጊዜን ወደ ዜሮ እንዴት መቀነስ ይችላሉ? መልስ፡ አፈፃፀምን ሙሉ በሙሉ አስወግድ። ይልቁንስ ውጤቱን ወዲያውኑ ይመልሱ. ውጤቱን እንዴት ማወቅ ይችላሉ? መልስ፡ ወይ አስላ ወይም የሆነ ቦታ ተመልከት። ለማስላት ረጅም ጊዜ ይወስዳል. እና ለመሰለል, ለምሳሌ, ተግባሩ ከተመሳሳይ መለኪያዎች ጋር ሲጠራ ለመጨረሻ ጊዜ ያስከተለውን ውጤት ማስታወስ ነው.

ማለትም የተግባሩ ትግበራ ለእኛ አስፈላጊ አይደለም. ውጤቱ በምን አይነት መለኪያዎች ላይ እንደሚወሰን ማወቅ ብቻ በቂ ነው. ከዚያ ፣ የመለኪያ እሴቶቹ በአንዳንድ ማከማቻ ውስጥ እንደ ቁልፍ ሊያገለግል በሚችል ዕቃ መልክ ከተወከሉ ፣ ከዚያ የስሌቱ ውጤት ሊቀመጥ እና በሚቀጥለው ጊዜ ሲደረስ ማንበብ ይችላል። ይህ የውጤቱ መፃፍ እና ማንበብ ተግባሩን ከመፈፀም የበለጠ ፈጣን ከሆነ ከፍጥነት አንፃር ትርፍ እናገኛለን። የትርፍ መጠኑ 100, 1000 እና 100 ሺህ ጊዜ ሊደርስ ይችላል (10 ^ 5 ለየት ያለ ነው, ነገር ግን በትክክል የዘገየ መሠረት ከሆነ, በጣም ይቻላል).

ለመሸጎጫ ስርዓት መሰረታዊ መስፈርቶች

ለመሸጎጫ ስርዓት የመጀመሪያ መስፈርት ሊሆን የሚችለው ፈጣን የማንበብ ፍጥነት እና በመጠኑ ባነሰ መጠን የፍጥነት መፃፍ ነው። ይህ እውነት ነው፣ ግን ስርዓቱን ወደ ምርት እስክንዘረጋ ድረስ ብቻ ነው።

ይህንን ጉዳይ እንጫወት።

አሁን ያለውን ጭነት በሃርድዌር አቅርበነዋል እና አሁን ቀስ በቀስ መሸጎጫ እያስተዋወቅን ነው እንበል። የተጠቃሚዎች ቁጥር ትንሽ ያድጋል, ጭነቱ እየጨመረ ይሄዳል - ትንሽ መሸጎጫዎችን እንጨምራለን, እዚህ እና እዚያ ውስጥ እንጨፍረው. ይህ ለተወሰነ ጊዜ ይቀጥላል, እና አሁን ከባድ ተግባራት በተግባር አይጠሩም - ዋናው ጭነት በመሸጎጫው ላይ ይወርዳል. በዚህ ጊዜ የተጠቃሚዎች ብዛት N ጊዜ ጨምሯል።

እና የመጀመርያው የሃርድዌር አቅርቦት ከ2-5 ጊዜ ሊሆን ከቻለ፣ በመሸጎጫው እገዛ አፈፃፀሙን በ10 እጥፍ ወይም በጥሩ ሁኔታ በ100 እጥፍ ማሻሻል እንችላለን፣ በአንዳንድ ቦታዎች ምናልባትም በተወሰነ ደረጃ። የ 1000. ማለትም በተመሳሳይ ሃርድዌር ላይ - 100 እጥፍ ተጨማሪ ጥያቄዎችን እናስኬዳለን. በጣም ጥሩ፣ የዝንጅብል ዳቦ ይገባሃል!

አሁን ግን፣ በአንድ ጥሩ ጊዜ፣ በአጋጣሚ፣ ስርዓቱ ተበላሽቷል እና መሸጎጫው ወድቋል። ምንም ልዩ ነገር የለም - ከሁሉም በላይ ፣ መሸጎጫው የተመረጠው “ከፍተኛ የማንበብ እና የመፃፍ ፍጥነት ፣ የተቀረው ምንም ችግር የለውም” በሚለው መስፈርት መሠረት ነው ።

ከመጀመሪያው ጭነት አንጻር, የእኛ የብረት ክምችት 2-5 ጊዜ ነበር, እና በዚህ ጊዜ ውስጥ ያለው ጭነት ከ10-100 ጊዜ ጨምሯል. መሸጎጫውን በመጠቀም ለከባድ ተግባራት ጥሪዎችን አስወግደናል እና ስለዚህ ሁሉም ነገር ሠርቷል። እና አሁን፣ ያለ መሸጎጫ፣ ስርዓታችን ስንት ጊዜ ይቀንሳል? ምን ይደርስብናል? ስርዓቱ ይወድቃል።

ምንም እንኳን የእኛ መሸጎጫ ባይወድቅም ፣ ግን ለተወሰነ ጊዜ ብቻ ከተጸዳ ፣ መሞቅ አለበት ፣ እና ይህ የተወሰነ ጊዜ ይወስዳል። እናም በዚህ ጊዜ ውስጥ ዋናው ሸክም በተግባራዊነት ላይ ይወርዳል.

ማጠቃለያ: በጣም የተጫኑ የምርት ፕሮጀክቶች ከፍተኛ የማንበብ እና የመፃፍ ፍጥነት እንዲኖራቸው ብቻ ሳይሆን የውሂብ ደህንነትን እና ውድቀቶችን ለመቋቋም የመሸጎጫ ስርዓት ያስፈልጋቸዋል.

የምርጫ ዱቄት

የአስተዳዳሪ ፓነል ባለው ፕሮጀክት ውስጥ ምርጫው እንደዚህ ነበር-መጀመሪያ Hazelcast ን ጫንን ፣ ምክንያቱም ይህንን ምርት ከዋናው ጣቢያ ልምድ አስቀድመን አውቀናል. ግን እዚህ ይህ ምርጫ አልተሳካም - በእኛ ጭነት መገለጫ ፣ Hazelcast ቀርፋፋ ብቻ ሳይሆን በጣም ቀርፋፋ ነው። እና በዚያን ጊዜ እኛ የሚለቀቅበትን ቀን አስቀድመን ተመዝግበናል።

አጭበርባሪ፡- ሁኔታዎቹ እንዴት በትክክል እንደተፈጠሩ፣ ይህን ያህል ትልቅ ነገር እንዳጣን እና በአስጨናቂ እና አስጨናቂ ሁኔታ እንዳበቃን - በሁለተኛው ክፍል እነግርዎታለሁ - እና እንዴት እንደጨረስን እና እንዴት እንደወጣን ። ግን አሁን - ብዙ ጭንቀት ነበር እናገራለሁ እና “ለማሰብ - በሆነ መንገድ ማሰብ አልችልም ፣ ጠርሙሱን እየነቀነቀን ነው። "ጠርሙሱን መንቀጥቀጥ" እንዲሁ አጥፊ ነው ፣ ከዚያ በኋላ የበለጠ።

ያደረግነው፡-

  1. Google እና StackOverflow የሚጠቁሙትን ሁሉንም ስርዓቶች ዝርዝር እንሰራለን። ከ30 ትንሽ በላይ
  2. ለምርት የተለመደ ሸክም ፈተናዎችን እንጽፋለን። ይህንን ለማድረግ በአምራች አካባቢ ውስጥ በሲስተሙ ውስጥ የሚያልፍ መረጃን መዝግበናል - በአውታረ መረቡ ላይ ሳይሆን በስርዓቱ ውስጥ ለመረጃ የሚሆን አነፍናፊ ዓይነት። በትክክል ይህ ውሂብ በፈተናዎች ውስጥ ጥቅም ላይ ውሏል።
  3. ከጠቅላላው ቡድን ጋር ሁሉም ሰው ቀጣዩን ስርዓት ከዝርዝሩ ውስጥ ይመርጣል, ያዋቅረዋል እና ሙከራዎችን ያካሂዳል. ፈተናውን አያልፍም, ሸክሙን አይሸከምም - እንጥላለን እና ወደ ቀጣዩ መስመር እንቀጥላለን.
  4. በ 17 ኛው ስርዓት ሁሉም ነገር ተስፋ ቢስ እንደሆነ ግልጽ ሆነ. ጠርሙሱን መንቀጥቀጥ ያቁሙ ፣ በቁም ነገር ለማሰብ ጊዜው አሁን ነው።

ነገር ግን አስቀድሞ በተዘጋጁ ሙከራዎች ውስጥ "በፍጥነት ውስጥ የሚያልፍ" ስርዓት መምረጥ ሲያስፈልግ ይህ አማራጭ ነው. እስካሁን እንደዚህ አይነት ሙከራዎች ከሌሉ እና በፍጥነት መምረጥ ቢፈልጉስ?

ይህንን አማራጭ እንቅረፅ (መካከለኛ + ገንቢ ባዶ ቦታ ውስጥ እንደሚኖር መገመት ከባድ ነው ፣ እና በምርጫ ወቅት የትኛውን ምርት መጀመሪያ መሞከር እንዳለበት ምርጫውን እስካሁን አላደረገም - ስለሆነም ፣ ተጨማሪ ምክንያት ከቲዎሪስት / ፍልስፍና / የበለጠ ነው ። ስለ አንድ ጁኒየር)።

መስፈርቶቹን ከወሰንን በኋላ ከሳጥኑ ውስጥ አንድ መፍትሄ መምረጥ እንጀምራለን. መንኮራኩሩን ለምን እንደገና ማደስ፡ እንሄዳለን እና ዝግጁ የሆነ የመሸጎጫ ስርዓት እንወስዳለን።

ገና ከጀመርክ እና ጎግል ካደረግክ ትዕዛዙን ስጡ ወይም ውሰድ፣ ግን በአጠቃላይ መመሪያው እንደዚህ ይሆናል። በመጀመሪያ ደረጃ ሬዲስን ታገኛላችሁ, በሁሉም ቦታ ይሰማል. ከዚያ EhCache በጣም ጥንታዊ እና በጣም የተረጋገጠ ስርዓት መሆኑን ይገነዘባሉ. በመቀጠል ስለ ታራንቶል እንጽፋለን, የመፍትሄው ልዩ ገጽታ ስላለው የሀገር ውስጥ እድገት. እና ደግሞ Ignite, ምክንያቱም አሁን በታዋቂነት እየጨመረ በመምጣቱ እና በ SberTech ድጋፍ ይደሰታል. በመጨረሻም Hazelcast አለ, ምክንያቱም በድርጅቱ ዓለም ውስጥ ብዙ ጊዜ በትላልቅ ኩባንያዎች ውስጥ ይታያል.

ዝርዝሩ የተሟላ አይደለም፤ በደርዘን የሚቆጠሩ ስርዓቶች አሉ። እና አንድ ነገር ብቻ እንጨምራለን. ለ “ውበት ውድድር” የተመረጡትን 5 ሥርዓቶች እንውሰድና እንመርጥ። አሸናፊው ማን ይሆን?

Redis

በይፋዊው ድር ጣቢያ ላይ የሚጽፉትን እናነባለን.
Redis - ክፍት ምንጭ ፕሮጀክት. የማህደረ ትውስታ መረጃ ማከማቻ፣ በዲስክ ላይ የመቆጠብ ችሎታ፣ ራስ-መከፋፈል፣ ከፍተኛ ተገኝነት እና ከአውታረ መረብ መቆራረጥ መልሶ ማግኘትን ያቀርባል።

ሁሉም ነገር ደህና የሆነ ይመስላል, ወስደህ ማሽከርከር ትችላለህ - የሚያስፈልግህን ሁሉ ያደርጋል. ግን ለመዝናናት ብቻ, ሌሎች እጩዎችን እንይ.

EhCache

EhCache - "ለጃቫ በብዛት ጥቅም ላይ የዋለው መሸጎጫ" (የመፈክር ትርጉም ከኦፊሴላዊው ድር ጣቢያ)። እንዲሁም ክፍት ምንጭ። እና ከዚያ Redis ለጃቫ ሳይሆን አጠቃላይ መሆኑን እንረዳለን እና ከእሱ ጋር ለመገናኘት መጠቅለያ ያስፈልግዎታል። እና EhCache የበለጠ አመቺ ይሆናል. ስርዓቱ ሌላ ምን ቃል ገብቷል? አስተማማኝነት, የተረጋገጠ, ሙሉ ተግባር. ደህና, እሱ ደግሞ በጣም የተለመደ ነው. እና ቴራባይት የውሂብ መሸጎጫ።

ሬዲስ ተረስቷል፣ EhCache ን ለመምረጥ ዝግጁ ነኝ።

ግን የሀገር ፍቅር ስሜት ስለ Tarantool ጥሩ የሆነውን እንድመለከት ይገፋፋኛል።

ታራንቶል

ታራንቶል - "በእውነተኛ ጊዜ የውሂብ ውህደት መድረክ" የሚለውን ስያሜ ያሟላል. በጣም የተወሳሰበ ይመስላል፣ ስለዚህ ገጹን በዝርዝር እናነባለን እና “100% ውሂቡን በ RAM ውስጥ መሸጎጫ” የሚል ከፍተኛ መግለጫ እናገኛለን። ይህ ጥያቄዎችን ሊያስነሳ ይገባል - ከሁሉም በላይ, ከማህደረ ትውስታ የበለጠ ብዙ ውሂብ ሊኖር ይችላል. ማብራሪያው ታራንቶል መረጃን ከማስታወሻ ወደ ዲስክ ለመፃፍ ተከታታይነት አያካሂድም ማለት ነው. በምትኩ, ማህደረ ትውስታ በቀላሉ በጣም ጥሩ I / O አፈጻጸም ባለው የፋይል ስርዓት ላይ ሲገለበጥ, የስርዓቱ ዝቅተኛ ባህሪያትን ይጠቀማል. በአጠቃላይ አንድ አስደናቂ እና አሪፍ ነገር አድርገዋል።

አተገባበሩን እንይ፡ Mail.ru ኮርፖሬት ሀይዌይ፣ አቪቶ፣ ቢላይን፣ ሜጋፎን፣ አልፋ-ባንክ፣ ጋዝፕሮም...

ስለ Tarantool አሁንም ጥርጣሬዎች ካሉ ፣በማስተርካርድ ላይ ያለው የትግበራ ጉዳይ ያጠናቅቀኛል። Tarantool እወስዳለሁ.

ግን ለማንኛውም…

ለኰሰ

… ሌላም አለ። ለኰሰ፣ “በማህደረ ትውስታ ውስጥ ማስላት መድረክ...የማህደረ ትውስታ ፍጥነቶች በፔታባይት ዳታ” ተብሎ ይከፈላል። እንዲሁም እዚህ ብዙ ጥቅሞች አሉ-በማህደረ ትውስታ ውስጥ የተከፋፈለ, በጣም ፈጣኑ የቁልፍ እሴት ማከማቻ እና መሸጎጫ, አግድም ልኬት, ከፍተኛ ተገኝነት, ጥብቅ ታማኝነት. በአጠቃላይ በጣም ፈጣኑ Ignite ነው.

ትግበራዎች: Sberbank, የአሜሪካ አየር መንገድ, ያሁ! ጃፓን. እና ከዚያ Ignite በ Sberbank ውስጥ ብቻ የተተገበረ እንዳልሆነ ተረድቻለሁ, ነገር ግን የ SberTech ቡድን ምርቱን ለማጣራት ህዝቡን ወደ Ignite ቡድን እራሱ ይልካል. ይህ ሙሉ በሙሉ ይማርካል እና Ignite ን ለመውሰድ ዝግጁ ነኝ።

ለምን እንደሆነ ሙሉ በሙሉ ግልጽ አይደለም, አምስተኛውን ነጥብ እየተመለከትኩ ነው.

hazelcast

ወደ ጣቢያው እሄዳለሁ hazelcast, ማንበብ. እና ለተሰራጨው መሸጎጫ በጣም ፈጣኑ መፍትሄ Hazelcast ነው። ከሌሎቹ መፍትሄዎች በበለጠ ፍጥነት ያለው ትዕዛዞች እና በአጠቃላይ በማህደረ ትውስታ መረጃ ፍርግርግ መስክ መሪ ነው. ከዚህ ዳራ አንጻር፣ ሌላ ነገር መውሰድ ራስን ማክበር አይደለም። እንዲሁም ያለመረጃ መጥፋት ለክላስተር ቀጣይነት ያለው ስራ ተደጋጋሚ የመረጃ ማከማቻ ይጠቀማል።

ያ ነው፣ ሃዘልካስትን ለመውሰድ ዝግጁ ነኝ።

ንጽጽር

ነገር ግን ከተመለከቱ, ሁሉም አምስት እጩዎች እያንዳንዳቸው ምርጥ እንዲሆኑ በሚያስችል መልኩ ተገልጸዋል. እንዴት መምረጥ ይቻላል? የትኛው በጣም ተወዳጅ እንደሆነ እናያለን, ንጽጽሮችን ይፈልጉ እና ራስ ምታት ይጠፋል.

እንደዚህ አይነት እናገኛለን ግምገማ, የእኛን 5 ስርዓቶች ይምረጡ.

እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

እዚህ የተደረደሩ ናቸው፡ Redis ከላይ ነው፣ Hazelcast በሁለተኛ ደረጃ ላይ ይገኛል፣ Tarantool እና Ignite ተወዳጅነትን እያገኙ ነው፣ EhCache የነበረ እና አሁንም ተመሳሳይ ነው።

ግን እንይ ስሌት ዘዴወደ ድረ-ገጾች አገናኞች, በስርዓቱ ላይ አጠቃላይ ፍላጎት, የሥራ ቅናሾች - በጣም ጥሩ! ማለትም፣ ስርዓቴ ሲወድቅ፣ “አይ፣ አስተማማኝ ነው! ብዙ የሥራ ቅናሾች አሉ ... " እንዲህ ዓይነቱ ቀላል ንጽጽር አይሰራም.

እነዚህ ሁሉ ስርዓቶች መሸጎጫ ስርዓቶች ብቻ አይደሉም. በተጨማሪም ብዙ ተግባራት አሏቸው, ይህም ውሂብ ለደንበኛው እንዲሰራ በማይደረግበት ጊዜ, ነገር ግን በተቃራኒው: በመረጃው ላይ መፈፀም ያለበት ኮድ ወደ አገልጋዩ ይንቀሳቀሳል, እዚያ ይፈጸማል, ውጤቱም ይመለሳል. እና ብዙ ጊዜ ለመሸጎጫ እንደ የተለየ ስርዓት አይቆጠሩም።

እሺ ተስፋ አንቆርጥም የስርዓቶቹን ቀጥታ ንፅፅር እንፈልግ። ዋናዎቹን ሁለት አማራጮች እንውሰድ - Redis እና Hazelcast. የፍጥነት ፍላጎት አለን, እና በዚህ ግቤት ላይ በመመስረት እናነፃፅራቸዋለን.

Hz vs Redis

ይህንን እናገኛለን ንጽጽር:
እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

ሰማያዊ Redis ነው, ቀይ Hazelcast ነው. Hazelcast በሁሉም ቦታ ያሸንፋል, እና ለዚህ ምክንያቱ አለ: ባለብዙ-ክር ነው, በጣም የተመቻቸ ነው, እያንዳንዱ ክር ከራሱ ክፋይ ጋር ይሰራል, ስለዚህ ምንም እገዳዎች የሉም. እና ሬዲስ ነጠላ-ክር ነው ፣ ከዘመናዊ ባለብዙ-ኮር ሲፒዩዎች አይጠቀምም። Hazelcast ያልተመሳሰለ I/O አለው፣ Redis-Jedis እገዳዎች አሉት። ደግሞም Hazelcast የሁለትዮሽ ፕሮቶኮልን ይጠቀማል፣ እና Redis ጽሑፍን ያማከለ ነው፣ ይህ ማለት ውጤታማ አይደለም ማለት ነው።

እንደዚያ ከሆነ፣ ወደ ሌላ የንፅፅር ምንጭ እንሸጋገር። ምን ያሳየናል?

Redis vs Hz

ሌላ ንጽጽር:
እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

እዚህ, በተቃራኒው, ቀይ ሬዲስ ነው. ማለትም፣ Redis በአፈጻጸም ረገድ Hazelcastን ይበልጣል። Hazelcast የመጀመሪያውን ንጽጽር አሸንፏል, Redis ሁለተኛውን አሸንፏል. እዚህ ጋ Hazelcast የቀደመውን ንጽጽር ያሸነፈበትን ምክንያት በትክክል አብራርቷል።

የመጀመሪያው ውጤት በእውነቱ ተጭበረበረ፡ ሬዲስ በመሠረት ሳጥን ውስጥ ተወስዷል፣ እና Hazelcast ለሙከራ ጉዳይ ተዘጋጅቷል። ከዚያ በኋላ ይሆናል: በመጀመሪያ, ማንንም ማመን አንችልም, እና ሁለተኛ, በመጨረሻም ስርዓትን ስንመርጥ, አሁንም በትክክል ማዋቀር አለብን. እነዚህ ቅንብሮች በደርዘን የሚቆጠሩ፣ በመቶዎች የሚቆጠሩ መለኪያዎችን ያካትታሉ።

ጠርሙሱን መንቀጥቀጥ

እና አሁን ያደረግነውን አጠቃላይ ሂደት በሚከተለው ዘይቤ ማብራራት እችላለሁ፡- “ጠርሙሱን መንቀጥቀጥ። ያም ማለት አሁን ፕሮግራም ማድረግ አያስፈልግዎትም, አሁን ዋናው ነገር የተደራረበ ፍሰትን ማንበብ መቻል ነው. እና እኔ በቡድኔ ውስጥ አንድ ሰው አለኝ ፣ ባለሙያ ፣ እንደዚህ ባሉ ወሳኝ ጊዜያት በትክክል የሚሰራ።

ምን እያደረገ ነው? እሱ የተሰበረ ነገር አይቷል ፣ የተቆለለ ዱካ አይቷል ፣ አንዳንድ ቃላትን ከሱ ይወስዳል (በፕሮግራሙ ውስጥ ያለው ችሎታው) ፣ ጎግል ላይ ይፈልጋል ፣ ከመልሶቹ መካከል የተደራረበ ፍሰትን ያገኛል። ሳያነብ ፣ ሳያስብ ፣ ለጥያቄው መልሶች መካከል ፣ “ይህን እና ያንን አድርግ” ከሚለው ዓረፍተ ነገር ጋር በጣም ተመሳሳይ የሆነ ነገር ይመርጣል (እንዲህ ዓይነቱን መልስ መምረጥ ችሎታው ነው ፣ ምክንያቱም ብዙ መውደዶችን ያገኘው ሁል ጊዜ መልስ አይደለም) ይተገበራል ፣ ይመስላል: የሆነ ነገር ከተለወጠ ፣ ከዚያ በጣም ጥሩ። ካልተቀየረ መልሰው ያንከባለሉት። እና ማስጀመር-ቼክ-ፍለጋን ይድገሙት። እና በዚህ ሊታወቅ የሚችል መንገድ, ኮዱ ከተወሰነ ጊዜ በኋላ እንደሚሰራ ያረጋግጣል. ለምን እንደሆነ አያውቅም፣ ያደረገውን አያውቅም፣ ማስረዳትም አይችልም። ግን! ይህ ኢንፌክሽን ይሠራል. እና "እሳቱ ጠፍቷል" አሁን ያደረግነውን እንወቅ። መርሃግብሩ በሚሰራበት ጊዜ, የክብደት ቅደም ተከተል ቀላል ነው. እና ብዙ ጊዜ ይቆጥባል.

ይህ ዘዴ ከዚህ ምሳሌ ጋር በደንብ ተብራርቷል.

በአንድ ጠርሙስ ውስጥ የመርከብ ጀልባ መሰብሰብ በጣም ተወዳጅ ነበር. በተመሳሳይ ጊዜ የመርከብ ጀልባው ትልቅ እና ደካማ ነው, እና የጠርሙሱ አንገት በጣም ጠባብ ነው, ወደ ውስጥ ለመግባት የማይቻል ነው. እንዴት መሰብሰብ ይቻላል?

እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

በጣም ፈጣን እና በጣም ውጤታማ የሆነ እንዲህ አይነት ዘዴ አለ.

መርከቧ ብዙ ጥቃቅን ነገሮችን ያካትታል: እንጨቶች, ገመዶች, ሸራዎች, ሙጫዎች. ይህንን ሁሉ በጠርሙስ ውስጥ እናስቀምጠዋለን.
ጠርሙሱን በሁለቱም እጆች እንወስዳለን እና መንቀጥቀጥ እንጀምራለን. እኛ አናውጣታለን እና እንቀጠቅጣታለን። እና ብዙውን ጊዜ በእርግጥ ሙሉ በሙሉ ቆሻሻ ይሆናል። ግን አንዳንድ ጊዜ. አንዳንድ ጊዜ መርከብ ይሆናል! የበለጠ በትክክል ፣ ከመርከብ ጋር ተመሳሳይ የሆነ ነገር።

ይህንን ለአንድ ሰው እናሳያለን፡ “ሰርዮጋ፣ አየህ!?” እና በእርግጥ, ከሩቅ መርከብ ይመስላል. ግን ይህ እንዲቀጥል መፍቀድ አይቻልም።

ሌላ መንገድ አለ. እንደ ጠላፊዎች ባሉ በጣም የላቁ ወንዶች ይጠቀማሉ።

ለዚህ ሰው አንድ ተግባር ሰጠሁት, ሁሉንም ነገር አድርጓል እና ሄደ. እና እርስዎ ይመለከታሉ - የተሰራ ይመስላል። እና ከጥቂት ጊዜ በኋላ, ኮዱ ማጠናቀቅ ሲያስፈልግ, ይህ የሚጀምረው በእሱ ምክንያት ነው ... እሱ ቀድሞውኑ ሩቅ መሮጥ መቻሉ ጥሩ ነው. እነዚህ ሰዎች የጠርሙስ ምሳሌን በመጠቀም ይህንን የሚያደርጉ ናቸው-አየህ ፣ የታችኛው ክፍል ባለበት ፣ መስታወቱ ይታጠፈ። እና ግልጽነት ወይም አለመሆኑ ሙሉ በሙሉ ግልጽ አይደለም. ከዚያም "ጠላፊዎች" ይህን ታች ቆርጠው, እዚያ መርከብ አስገባ, ከዚያም የታችኛውን ክፍል እንደገና አጣብቅ, እና ልክ እንደዚያ መሆን አለበት.

ችግሩን ከማቀናበር አንጻር ሁሉም ነገር ትክክል ይመስላል. ነገር ግን መርከቦችን እንደ ምሳሌ በመጠቀም፡ ይህን መርከብ ለምን ጨርሶ ሠራው፣ ለማንኛውም ማን ያስፈልገዋል? ምንም አይነት ተግባር አይሰጥም። ብዙውን ጊዜ እንዲህ ያሉ መርከቦች በጣም ከፍተኛ ደረጃ ላላቸው ሰዎች ስጦታዎች ናቸው, እነሱም በላያቸው ላይ መደርደሪያ ላይ ያስቀምጧቸዋል, እንደ ምልክት ምልክት, ምልክት. እና እንደዚህ አይነት ሰው፣ የትልቅ የንግድ ስራ ሃላፊ ወይም ከፍተኛ ባለስልጣን ከሆነ አንገት የተቆረጠበት ባንዲራ እንዴት ይቆማል? ስለ ጉዳዩ ፈጽሞ ባያውቅ ይሻላል. ታዲያ እነዚህን መርከቦች ለአንድ አስፈላጊ ሰው ሊሰጡ የሚችሉት እንዴት ነው?

ምንም ማድረግ የማትችለው ብቸኛው ቁልፍ ቦታ አካል ነው። እና የመርከቧ ቅርፊት ወደ አንገቱ በትክክል ይጣጣማል. መርከቧ ከጠርሙሱ ውጭ ተሰብስቦ ሳለ. ነገር ግን መርከብ መሰብሰብ ብቻ ሳይሆን እውነተኛ የጌጣጌጥ ሥራ ነው. ልዩ ማንሻዎች ወደ ክፍሎቹ ተጨምረዋል, ከዚያም እንዲነሱ ያስችላቸዋል. ለምሳሌ, ሸራዎቹ ተጣጥፈው በጥንቃቄ ወደ ውስጥ ይገባሉ, ከዚያም በቲማዎች እርዳታ በትክክል ይጎትቱ እና በትክክል ይነሳሉ. ውጤቱም ንፁህ ህሊና እና ኩራት ሊሰጥ የሚችል የጥበብ ስራ ነው።

እና ፕሮጀክቱ ስኬታማ እንዲሆን ከፈለግን በቡድኑ ውስጥ ቢያንስ አንድ ጌጣጌጥ ሊኖር ይገባል. ስለ ምርቱ ጥራት የሚያስብ እና ሁሉንም ገፅታዎች ከግምት ውስጥ የሚያስገባ ሰው ምንም ነገር ሳይከፍል፣ በጭንቀት ጊዜም ቢሆን፣ ሁኔታዎች በአስፈላጊው ወጪ አስቸኳይ ማድረግ ሲፈልጉ። ሁሉም የተሳካላቸው፣ ዘላቂነት ያላቸው፣ በጊዜ ፈተና የቆሙ፣ በዚህ መርህ ላይ የተገነቡ ናቸው። ስለእነሱ በጣም ትክክለኛ እና ልዩ የሆነ ነገር አለ፣ ሁሉንም ያሉትን እድሎች የሚጠቀም። በጠርሙሱ ውስጥ ካለው መርከቧ ጋር ባለው ምሳሌ, የመርከቧው ሽፋን በአንገቱ ውስጥ የሚያልፍበት እውነታ ተጫውቷል.

ወደ መሸጎጫ ሰርቨር የመምረጥ ስራ ስንመለስ ይህ ዘዴ እንዴት ሊተገበር ይችላል? ካሉት ስርዓቶች ሁሉ የመምረጥ ይህንን አማራጭ አቀርባለሁ - ጠርሙሱን አያናውጥ ፣ አይምረጡ ፣ ግን በመርህ ደረጃ ያላቸውን ነገር ይመልከቱ ፣ ስርዓትን በሚመርጡበት ጊዜ ምን መፈለግ እንዳለበት።

የጠርሙስ አንገት የት እንደሚፈለግ

ጠርሙሱን ላለማወዛወዝ እንሞክር, እዚያ ያለውን ሁሉንም ነገር አንድ በአንድ እንዳንሄድ, ነገር ግን በድንገት, ለተግባራችን, እንዲህ አይነት ስርዓት እራሳችንን ካዘጋጀን ምን ችግሮች እንደሚፈጠሩ እንይ. እርግጥ ነው, ብስክሌቱን አንሰበስብም, ነገር ግን በምርት መግለጫዎች ውስጥ የትኞቹን ነጥቦች ትኩረት መስጠት እንዳለብን ለማወቅ እንዲረዳን ይህንን ንድፍ እንጠቀማለን. እስቲ እንዲህ ዓይነቱን ንድፍ እንየው.

እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

ስርዓቱ ከተሰራጨ ብዙ አገልጋዮች ይኖሩናል (6)። አራት አሉ እንበል (በሥዕሉ ላይ ለማስቀመጥ አመቺ ነው, ግን በእርግጥ, የፈለጉትን ያህል ሊሆኑ ይችላሉ). አገልጋዮቹ በተለያዩ ኖዶች ላይ ከሆኑ፣ ሁሉም እነዚህ አንጓዎች ክላስተር እንዲፈጠሩ እና መቆራረጥ በሚከሰትበት ጊዜ እርስ በርስ እንዲገናኙ እና እንዲተዋወቁ ኃላፊነት ያለው የተወሰነ ኮድ ያስኬዳሉ ማለት ነው።

ኮድ አመክንዮ (2) ያስፈልገናል፣ እሱም በእውነቱ መሸጎጫ ነው። ደንበኞች በአንዳንድ ኤፒአይ በኩል ከዚህ ኮድ ጋር ይገናኛሉ። የደንበኛ ኮድ (1) በተመሳሳዩ JVM ውስጥ ሊሆን ይችላል ወይም በአውታረ መረቡ ላይ መድረስ ይችላል። በውስጡ የተተገበረው አመክንዮ የየትኞቹ ነገሮች በመሸጎጫ ውስጥ እንዲለቁ እና የትኛውን እንደሚጥሉ ውሳኔ ነው. መሸጎጫውን ለማከማቸት ማህደረ ትውስታ (3) እንጠቀማለን, አስፈላጊ ከሆነ ግን አንዳንድ መረጃዎችን በዲስክ (4) ላይ ማስቀመጥ እንችላለን.

ጭነቱ በየትኛው ክፍሎች ውስጥ እንደሚከሰት እንይ. በእውነቱ እያንዳንዱ ቀስት እና እያንዳንዱ መስቀለኛ መንገድ ይጫናሉ። በመጀመሪያ ፣ በደንበኛው ኮድ እና በኤፒአይ መካከል ፣ ይህ የአውታረ መረብ ግንኙነት ከሆነ ፣ ድጎማው በደንብ ሊታወቅ ይችላል። በሁለተኛ ደረጃ ፣ በኤፒአይ እራሱ ማዕቀፍ ውስጥ - ውስብስብ በሆነ አመክንዮ ከመጠን በላይ ከወሰድን ፣ በሲፒዩ ላይ ችግሮች ሊያጋጥሙን ይችላሉ። እና ሎጂክ በማስታወስ ላይ ጊዜ ባያጠፋ ጥሩ ይሆናል. እና ከፋይል ስርዓቱ ጋር መስተጋብር ይቀራል - በተለመደው ስሪት ይህ ተከታታይ / ወደነበረበት መመለስ እና መጻፍ / ማንበብ ነው።

ቀጣዩ ከክላስተር ጋር መስተጋብር ነው። ብዙውን ጊዜ, በተመሳሳይ ስርዓት ውስጥ ሊሆን ይችላል, ግን በተናጥል ሊሆን ይችላል. እዚህ በተጨማሪ የውሂብ ማስተላለፍን, የውሂብ ተከታታይነት ፍጥነት እና በክላስተር መካከል ያለውን ግንኙነት ግምት ውስጥ ማስገባት አለብዎት.

አሁን፣ በአንድ በኩል፣ ከኮዳችን የሚቀርቡ ጥያቄዎችን በምንሰራበት ጊዜ በመሸጎጫ ስርዓቱ ውስጥ “ምን ጊርስ እንደሚዞር” መገመት እንችላለን፣ በሌላ በኩል ደግሞ ኮድ ለዚህ ስርዓት ምን እና ምን ያህል ጥያቄዎችን እንደሚያመጣ መገመት እንችላለን። ይህ ብዙ ወይም ያነሰ ጨዋነት ያለው ምርጫ ለማድረግ በቂ ነው - ለአጠቃቀማችን ጉዳይ ስርዓትን ለመምረጥ።

hazelcast

ይህንን ብስባሽ ወደ ዝርዝራችን እንዴት እንደሚተገበር እንይ። ለምሳሌ, Hazelcast.

ከ Hazelcast ውሂብን ለማስቀመጥ/ ለመውሰድ የደንበኛው ኮድ (1) ኤፒአይን ይደርሳል። Hz አገልጋዩን እንደ ተካተተው እንዲያሄዱ ይፈቅድልዎታል፣ እና በዚህ አጋጣሚ ኤፒአይን ማግኘት በጄቪኤም ውስጥ ያለ ዘዴ ጥሪ ነው፣ ይህም እንደ ነፃ ሊቆጠር ይችላል።

በ(2) ውስጥ ያለው አመክንዮ እንዲሰራ፣ Hz የተመካው በተከታታዩ ቁልፍ ባይት ድርድር ሃሽ ላይ ነው - ማለትም ቁልፉ በማንኛውም ሁኔታ ተከታታይ ይሆናል። ለ Hz ይህ የማይቀር ነው።
የማስወጣት ስልቶች በጥሩ ሁኔታ ተተግብረዋል, ነገር ግን ለየት ያሉ ጉዳዮች የራስዎን ማከል ይችላሉ. ስለዚህ ክፍል መጨነቅ አያስፈልግዎትም።

ማከማቻ (4) ሊገናኝ ይችላል። በጣም ጥሩ. መስተጋብር (5) ለተከተተ ፈጣን ተደርጎ ሊወሰድ ይችላል። በክላስተር (6) ውስጥ ባሉ አንጓዎች መካከል የውሂብ ልውውጥ - አዎ፣ አለ። ይህ የፍጥነት ወጪን በስህተት መቻቻል ላይ የሚደረግ ኢንቨስትመንት ነው። የ Hz ባህሪ ቅርብ-መሸጎጫ ዋጋውን እንዲቀንሱ ይፈቅድልዎታል - በክላስተር ውስጥ ካሉ ሌሎች አንጓዎች የተቀበሉት መረጃዎች ይዘጋሉ።

ፍጥነትን ለመጨመር በእንደዚህ ዓይነት ሁኔታዎች ውስጥ ምን ማድረግ ይቻላል?

ለምሳሌ፣ በ (2) ውስጥ ያለውን ቁልፍ ተከታታይነት ላለማድረግ - ሌላ መሸጎጫ በ Hazelcast አናት ላይ ያያይዙ፣ ለሞቃታማው መረጃ። Sportmaster ለዚህ ዓላማ ካፌይን መረጠ.

በደረጃ (6) ለመጠምዘዝ፣ Hz ሁለት አይነት ማከማቻዎችን ያቀርባል፡ IMap እና ReplicatedMap።
እኛ Sportmaster እንዴት መሸጎጫ ሥርዓት መረጠ. ክፍል 1

Hazelcast ወደ Sportmaster የቴክኖሎጂ ቁልል እንዴት እንደገባ መጥቀስ ተገቢ ነው።

እ.ኤ.አ. በ 2012 ፣ የወደፊቱን ጣቢያ የመጀመሪያ አብራሪ ላይ በምንሰራበት ጊዜ ፣ ​​የፍለጋ ፕሮግራሙ የተመለሰው Hazelcast ነበር ። መተዋወቅ የጀመረው “የመጀመሪያው ጊዜ” ነው - ከሁለት ሰዓታት በኋላ Hz ወደ ስርዓቱ ውስጥ ስንገባ መስራቱ ተማርከን። እና በጥሩ ሁኔታ ሰርቷል. በቀኑ መገባደጃ ላይ ብዙ ፈተናዎችን ጨርሰን ደስተኛ ነበርን። እናም ይህ የጥንካሬ መጠባበቂያ Hz በጊዜ ሂደት የጣለውን አስገራሚ ነገር ለማሸነፍ በቂ ነበር። አሁን የSportmaster ቡድን Hazelcastን ለመተው ምንም ምክንያት የለውም።

ነገር ግን እንደ "በፍለጋ ሞተር ውስጥ የመጀመሪያው አገናኝ" እና "ሄሎዎልድ በፍጥነት ተሰብስቦ ነበር" ያሉ ክርክሮች እርግጥ ነው, ልዩ እና ምርጫው የተካሄደበት ጊዜ ባህሪያት ናቸው. ለተመረጠው ስርዓት እውነተኛ ሙከራዎች የሚጀምሩት ወደ ምርት በሚለቀቅበት ጊዜ ነው, እና በዚህ ደረጃ ላይ መሸጎጫ ጨምሮ ማንኛውንም ስርዓት በሚመርጡበት ጊዜ ትኩረት መስጠት አለብዎት. በእውነቱ ፣ በእኛ ሁኔታ Hazelcastን በአጋጣሚ እንደመረጥን መናገር እንችላለን ፣ ግን ከዚያ በትክክል እንደመረጥን ተረጋገጠ።

ለምርት, በጣም አስፈላጊ: ክትትል, በግለሰብ አንጓዎች ላይ አለመሳካቶችን ማስተናገድ, የውሂብ ማባዛት, የመጠን ዋጋ. ማለትም ፣ በስርዓቱ ጥገና ወቅት ለሚነሱት ተግባራት ትኩረት መስጠት ተገቢ ነው - ጭነቱ ከታቀደው በአስር እጥፍ ከፍ ያለ ፣ በአጋጣሚ የሆነ ነገር በተሳሳተ ቦታ ላይ ስንሰቅል ፣ አዲስ ስሪት መልቀቅ ሲያስፈልገን ከኮዱ, ውሂብን ይተኩ እና ለደንበኞች ሳይስተዋል ያድርጉት.

ለእነዚህ ሁሉ መስፈርቶች Hazelcast በእርግጠኝነት ሂሳቡን ያሟላል።

እንዲቀጥል

ነገር ግን Hazelcast መድሃኒት አይደለም. እ.ኤ.አ. በ2017፣ በቀላሉ ካለፈው ልምድ ጥሩ ግንዛቤዎችን መሰረት በማድረግ Hazelcast ን ለአስተዳዳሪው መሸጎጫ መረጥን። ይህ በጣም ጨካኝ በሆነ ቀልድ ውስጥ ቁልፍ ሚና ተጫውቷል, በዚህ ምክንያት እራሳችንን በአስቸጋሪ ሁኔታ ውስጥ አገኘን እና "በጀግንነት" ለ 60 ቀናት ወጣን. ግን ስለዚህ ጉዳይ በሚቀጥለው ክፍል.

እስከዚያው... መልካም አዲስ ኮድ!

ምንጭ: hab.com

አስተያየት ያክሉ