HighLoad ++ã®åŸã«åŒæ°ãåãåºããé廿°å¹Žéã®æé«ã®ã¬ããŒããå
¬éãç¶ããŠããŸãã HighLoad ++ã¯çŽ æŽãããçµæããããããçµç¹ã®æ¹åã®æ°ã¯ããããçã«æ°ãã補ååè³ªã«æé·ããŸããã ã¡ãªã¿ã«ãHabrã¯äŒè°ã®ããã¹ãæŸéã宿œããŸããïŒ
1æ¥
ç® ã
2æ¥
ç® ïŒã

ããã«ã¡ã¯ãååã®çããïŒ ç§ã®ã¬ããŒãã¯ãHighLoadãããžã§ã¯ãã§ã¯äžå¯èœãªããšã«ã€ããŠã§ãããã¥ãŒãµãŒããŒã«ã€ããŠã§ããæéãããã°ãããã¯ã«ã€ããŠèª¬æããŸãïŒåŸ©å·åæ©èœã«æ³šæããŠãã ããã

ã¬ããŒãã®å
容ã¯äœã§ããïŒ ãã¥ãŒã®äœ¿çšå Žæãšäœ¿ç𿹿³ãããããã¹ãŠãå¿
èŠãªçç±ãããã³ãããã³ã«ã«ã€ããŠå°ã説æããŸãã

ãªããªã ç§ãã¡ã®äŒè°ã¯HighLoad JuniorãåŒã³åºããŸããç§ã¯Juniorãããžã§ã¯ãããè¡ããããšæããŸãã å
žåçãªãžã¥ãã¢ãããžã§ã¯ãããããŸã-ããã¯ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããçš®ã®ãŠã§ãããŒãžã§ãã ãã¶ããããã¯é»åã¹ãã¢ãããã«ããäœãã§ãããã ããã§ããŠãŒã¶ãŒã¯ç§ãã¡ã®ãšããã«è¡ããŸããããããæ®µéã§ãšã©ãŒãçºçããŸããïŒå¥ã®ãšã©ãŒãããããŸããïŒïŒ

ç§ãã¡ã¯ãªã³ã©ã€ã³ã«ãªããã¹ã±ãŒãªã³ã°ã®æ¹æ³ãæ¢ãå§ããããã¯ãšã³ããååŸããããšã«ããŸããã

ããå€ãã®ãŠãŒã¶ãŒãè¡ããããå€ãã®ãŠãŒã¶ãŒãè¡ããŸããããå¥ã®ééãããããŸããã

次ã«ããã°ã調ã¹ãŠãSQLãµãŒããŒãæ¡åŒµããæ¹æ³ãæ€èšããŸããã è€è£œãèŠã€ããŠäœæããŸããã

ããããããMySQLã§ã¯ãšã©ãŒãçºçããŸããïŒ

ããŠãããã§æ¯figçã«ç€ºããããã«ããšã©ãŒã¯ããåçŽãªæ§æã§çºçããå¯èœæ§ããããŸãã
ãããŠãã®ç¬éãããç§ãã¡ã¯å»ºç¯ã«ã€ããŠèãå§ããŸãã

ãé¡åŸ®é¡äžãã§ã¢ãŒããã¯ãã£ã調ã¹ã2ã€ã®ããšã匷調ããŸãã

1ã€ç®ã¯ãå®è¡ããå¿
èŠãããããžãã¯ã®éèŠãªèŠçŽ ã§ãã 2çªç®-é
ããŸã§å»¶æã§ãããé
ããŠäžå¿
èŠãªãã®ã ãããŠããã®ã¢ãŒããã¯ãã£ãåé¢ããããšããŠããŸãïŒ

ããã2ã€ã®éšåã«åããŸããã
1ã€ã®ãµãŒããŒã«1ã€ã®ããŒããé
眮ããå¥ã®ãµãŒããŒã«å¥ã®ããŒããé
眮ããããšããŸãã ãã®ãã¿ãŒã³ããcãªåŠçããšåŒã³ãŸãã

圌ã¯ãã€ãŠããããèŠããããŸããã圌ã¯äž¡èŠªã«ç§ããã§ã«ã¬ãã¹ã³ãçµããŠæ£æ©ã«åºãããããšãäŒããç¿æ¥ãããã®ã¬ãã¹ã³ãã¯ã©ã¹ã®åã«èªã¿ã2åã§æåž«ã«è©±ããŸããã
ãã®ãã¿ãŒã³ã«ã¯ãããç§åŠçãªååããããŸãã

ãããŠæçµçã«ãWebãµãŒããŒãšããã¯ãšã³ããµãŒããŒããããã®ã¢ãŒããã¯ãã£ã«å°éããŸãã

圌ãã¯ã©ãããããã圌ãèªèº«ã®éã§æ¥ç¶ãããå¿
èŠããããŸãã ãããã2ã€ã®ãµãŒããŒã§ããå Žåãããã¯ç°¡åã«ãªããŸãã è€æ°ããå Žåã¯ãããå°ãè€éã§ãã ãããŠãããããã©ã®ããã«æ¥ç¶ããã®ã§ããããïŒ ãããŠããããã®ãµãŒããŒéã®éä¿¡ã®ãœãªã¥ãŒã·ã§ã³ã®1ã€ã¯ãã¥ãŒã§ãã

ãã¥ãŒãšã¯äœã§ããïŒ ãã¥ãŒã¯ãªã¹ãã§ãã

é·ããŠéå±ãªãã®ããããŸãããããã¯èŠçŽ ãèšè¿°ããããããèªã¿åã£ãŠæ¶ããå®è¡ããã ãã®ãªã¹ãã§ãã ãªã¹ããç¶ããèŠçŽ ãæžãããã¥ãŒãéåžžã«èŠå¶ãããŸãã
2çªç®ã®éšåã«ç§»ããŸã-ã©ãã§ãã©ã®ããã«äœ¿çšãããŸããïŒ ç§ã¯ãã€ãŠãã®ãããªãããžã§ã¯ãã§åããŠããŸããïŒ

Yandex.Marketã®ãã®ã¢ããã°ã ãã®ãããžã§ã¯ãã§ã¯ãããŸããŸãªãµãŒãã¹ãå転ããŠããŸãã ãããŠããããã®ãµãŒãã¹ã¯ã©ããããããåæããå¿
èŠããããŸããã ããŒã¿ããŒã¹ãéããŠåæãããŸããã

ãã¥ãŒã¯ããŒã¿ããŒã¹ã«ã©ã®ããã«åºã¥ããŠããŸããïŒ

äžå®ã®ã«ãŠã³ã¿ãŒããããŸã-MySQLã§ã¯èªåã€ã³ã¯ãªã¡ã³ãã§ãPostgressã§ã¯ãµã€ã±ã³ãéããŠå®è£
ãããŸãã ããã€ãã®ããŒã¿ããããŸãã
ããŒã¿ãæžã蟌ã¿ãŸãïŒ

ããŒã¿ãèªãïŒ

ãã¥ãŒããåé€ããŸãããå®å
šã«å¹žçŠã«ããã«ã¯ããã¯ãå¿
èŠã§ãã

ããã¯è¯ãã§ããæªãã§ããïŒ
é
ãã§ãã ããã«å¯Ÿããç§ã®äžãããããã¿ãŒã³ã¯ååšããŸããããå Žåã«ãã£ãŠã¯å€ãã®äººãããŒã¿ããŒã¹ãä»ããŠãã¥ãŒãäœæããŸãã

ãŸããããŒã¿ããŒã¹ãä»ããŠå±¥æŽãä¿åã§ããŸãã æ¬¡ã«ãåé€ããããã£ãŒã«ãã远å ããããã©ã°ãšæžã蟌ã¿ã¿ã€ã ã¹ã¿ã³ãã®äž¡æ¹ã«ãªããŸãã ç§ã®ååã¯ãé çªã«ãã¢ãã£ãªãšã€ããããã¯ãŒã¯ãä»ããŠéä¿¡ãè¡ãããããŒãèšé²ããŸããã¯ãªãã¯æ°ãèšé²ããVertikaã®åæã§ã¯ã©ã¹ã¿ãŒãèŠã€ããã©ã®ãŠãŒã¶ãŒã°ã«ãŒããã©ã®ãããŒã«ããã«å¿çããŸãã
ããã«ã¯MongoDbã䜿çšããŸãã

ååãšããŠããã¹ãŠãåãã§ãããäžéšã®ã³ã¬ã¯ã·ã§ã³ã®ã¿ã䜿çšãããŸãã ãã®ã³ã¬ã¯ã·ã§ã³ã«æžã蟌ã¿ããã®ã³ã¬ã¯ã·ã§ã³ããèªã¿åããŸãã åé€-ã¢ã€ãã ãèªã¿åããèªåçã«åé€ããŸãã

ãŸããäœéã§ãããDBãããé«éã§ãã å¿
èŠã«å¿ããŠãçµ±èšã§ããã䜿çšããŸããããã¯æ£åžžã§ãã
ããã«ãç§ã¯ãã®ãããªãããžã§ã¯ãã§åããŠããŸãããããã¯ç€ŸäŒçãªããã¡ãã§ãã-ãçè
ã®çè³ãïŒ

ãã¿ã³ãæŒããšããã©ã ãå転ããå¶ç¶ã®äžèŽããªããªããŸãã ãã®ããã¡ãã¯PHPã§å®è£
ãããŸããããããŒã¿ããŒã¹ãåŠçã§ããªãããããªãã¡ã¯ã¿ãªã³ã°ããããã«é ŒãŸããŸããã

ããã«ã¯Tarantoolã䜿çšããŸããã ç°¡åã«èšãã°ãTarantoolã¯éèŠãªäŸ¡å€ã®ãããªããžããªã§ãããããã¥ã¡ã³ãæåã®ããŒã¿ããŒã¹ã«ããè¿ããªã£ãŠããŸãã Tarantoolã«éçšãã£ãã·ã¥ãå®è£
ããŸããããå°ããã圹ã«ç«ã¡ãŸããã§ããã ããããã¹ãŠããã¥ãŒã§æŽçããããšã«ããŸããã ãã¹ãŠãå®ç§ã«æ©èœããŸããããäžåºŠãã¹ãŠãèœã¡ãŸããã ããã¯ãšã³ããµãŒããŒãèœã¡ãŸããã ãŸããTarantoolã§ã¯ããã¥ãŒãèç©ããå§ãããŠãŒã¶ãŒããŒã¿ãèç©ãããã¡ã¢ãªã¯ã¡ã¢ãªã®ã¿ã®ã¹ãã¬ãŒãžã§ãããããã¡ã¢ãªããã£ã±ãã«ãªããŸããã

ã¡ã¢ãªããã£ã±ãã§ããã¹ãŠãèœã¡ããŠãŒã¶ãŒããŒã¿ã忥倱ãããŸããã ãŠãŒã¶ãŒã¯å°ãäžå¹žã§ãã©ããã§éãã ãã倱ã£ãããåã£ããããŸãã è² ãã人ã¯åã£ã圌ã«ãšã£ãŠã¯è¯ãããšã§ãã ã©ããªçµè«ïŒ ç£èŠãè¡ãå¿
èŠããããŸãã
ç£èŠãããã®ã¯äœã§ããïŒ ãã¥ãŒã®é·ãã å¹³åé·ã5åã10åã20åè¶
ããŠããããšãããã£ãå Žåã¯ãSMSãéä¿¡ããå¿
èŠããããŸãããã®ãããªãµãŒãã¹ã¯Telegramã§äœæãããŠããŸãã é»å ±ã¯ç¡æã§ãSMSã«ã¯ãŸã ãéã®äŸ¡å€ããããŸãã
Tarantoolã¯ä»ã«äœãæäŸããŠãããŸããïŒ Tarantoolã¯åªãããœãªã¥ãŒã·ã§ã³ã§ããããã«äœ¿ããã·ã£ãŒãã£ã³ã°ãããã«äœ¿ããã¬ããªã±ãŒã·ã§ã³ããããŸãã

Tarantoolã«ã¯çŽ æŽãããQueueããã±ãŒãžããããŸãã

ç§ãå®è£
ããã®ã¯ãŸã 4ã5幎åã§ããã®ãããªããã±ãŒãžã¯ãŸã ãããŸããã§ããã éåžžã«åªããTarantool APIãç»å ŽããŸãããPythonã䜿çšããŠãã人ã¯ãäžè¬çã«ãã¥ãŒã«åãããAPIãæã£ãŠããŸãã ç§èªèº«ã¯ã2002幎ãã15幎åããPHPã䜿çšããŠããŸãã ç§ã¯PHPã§Tarantoolã®ã¢ãžã¥ãŒã«ãéçºããã®ã§ãPHPã¯ç§ã«å°ãè¿ã¥ããŠããŸãã
ãã¥ãŒãžã®æžã蟌ã¿ãšãã¥ãŒããã®èªã¿åãã®2ã€ã®æäœããããŸãã ãã®æ°å€ïŒã¹ã©ã€ãäžã®éè²ã®0.1ïŒã«æ³šæãæããã-ãããã¿ã€ã ã¢ãŠãã§ãã ãŸããäžè¬ã«ããã¥ãŒãè§£æããããã¯ãšã³ãã¹ã¯ãªããã®äœæã«ã¢ãããŒãããå Žåãåæãšéåæã®2ã€ã®ã¢ãããŒãããããŸãã

åæã¢ãããŒããšã¯äœã§ããïŒ ããã¯ããã¥ãŒããèªã¿åããè¡ããããŒã¿ãããå Žåã¯ãããåŠçããããŒã¿ããªãå Žåã¯ããã¯ãååŸããŠãããŒã¿ãå°çãããŸã§åŸ
æ©ãããšãã§ãã ããŒã¿ãæ¥ãã®ã§ãããã«èªã¿ã«è¡ããŸããã

æãããªããã«ãéåæã¢ãããŒãã§ã¯ãããŒã¿ããªãå Žåãå¥ã®ãã¥ãŒããèªã¿åãããä»ã®æäœãå®è¡ããŸãã å¿
èŠã«å¿ããŠãåŸ
ã£ãŠãã ããã ãããŠåã³ããµã€ã¯ã«ã®å§ãŸãã«è¡ããŸãã 誰ããçè§£ããŠããããã¹ãŠãéåžžã«ç°¡åã§ãã

ã©ã®ãããªãã³ããã¥ãŒããã±ãŒãžãæäŸããŸããïŒ åªå
é äœã®ãããã¥ãŒããããŸãããä»ã®ãã¥ãŒãµãŒããŒã®äžã§ä»ã®ã©ãã«ãèŠãããŸããã ããã§ããã¥ãŒã®èŠçŽ ã«åœãå¹ã蟌ãããšãã§ããŸã-æã«ã¯éåžžã«äŸ¿å©ã§ãã é
é確èª-ããã ãã§ãã ç§ã¯åæãšéåæã«ã€ããŠè©±ããŸããã

ã¬ãã£ã¹ ããã¯ç§ãã¡ã®åç©åã§ãããå€ãã®ç°ãªãããŒã¿æ§é ããããŸãã ãã¥ãŒã¯ãªã¹ãã«å®è£
ãããŸãã è¯ããªã¹ããšã¯äœã§ããïŒ ãªã¹ãã®æåã®èŠçŽ ãŸãã¯æåŸã®èŠçŽ ãžã®ã¢ã¯ã»ã¹æéãäžå®æéã§çºçãããšããç¹ã§åªããŠããŸãã ãã¥ãŒã¯ã©ã®ããã«å®è£
ãããŸããïŒ ãªã¹ãã®å
é ããæžã蟌ã¿ããªã¹ãã®æ«å°Ÿããèªã¿åããŸãã ããªãã¯å察ãè¡ãããšãã§ããŸããããã¯åé¡ã§ã¯ãããŸããã

ç§ã¯ãã®ãããªããã¡ãã§åããŠããŸããã ãã®ããã¡ãã¯VKontakteã§æžãããŸããã åŸæ¥ã®å®è£
ã§ã¯ãããã¡ãã¯ããã«åäœãããã©ãã·ã¥ãã©ã€ãã¯WebãµãŒããŒãšéä¿¡ããŸããã

ãã¹ãŠãå®ç§ã§ããããäžããèšããããããçµ±èšã䜿ããŸããããããŒãããŒã¯ã賌å
¥ãããŠãããã®æ°ãæã賌å
¥ãããŠãããã®æ°ãæ®ã£ãŠããæ°ããŠãŒã¶ãŒã®ã¬ãã«ãªã©ãç¥ãããã§ããã ãããŠã圌ãã¯æã
ãè»èŒªãåçºæãããå€éšã®çµ±èšã¹ã¯ãªããã䜿çšããããšãææ¡ããã ãããŠãã¹ãŠãçŽ æŽãããã£ãã

ç§ã®ã¹ã¯ãªããã ãã50ããªç§åäœããå€éšã¹ã¯ãªããã«ç®ãåãããšãããçš®ã®ã¢ã¡ãªã«ããããå°ãªããšã250ããªç§ããŸãã¯2ç§ä»¥äžã®pingãããã«è¡ããŸããã ãããã£ãŠãããã¡ãå
šäœãã¯ã©ãã·ã¥ããŸããã
ãã®ã¹ããŒã ã䜿çšããŸããã

ãããŠããã¹ãŠãé 調ã§ããã¹ãŠãè¿
éã«æ©èœããŸããã ããããããæ¥ã管çè
ãäŒæã«åºãããŸããã 管çè
ã¯äŒæãåããæåã®1é±éã¯ãã¹ãŠé 調ã§ãããã1é±éåŸãRedisãæµããŠããããšãããããŸããã Redisã¯æµããŠããã管çè
ã¯ããŸãããååäžã«ã³ã³ãœãŒã«ãèŠãŸããã¹ã¯ããã®åã«æ®ã£ãŠããã¡ã¢ãªã®éãã¹ã¯ããã®åã«æ®ã£ãŠããã¡ã¢ãªã®éã調ã¹ãŸãã å€ãã®ãŠãŒã¶ãŒãéææ¥ã«æ¥ãŸãããç¹ã«æŒé£åŸãååãªèšæ¶ããããŸããã§ããã

çµè«ã¯ã¿ã©ã³ããŒã«ãšåãã§ãã å¥ã®ãããžã§ã¯ããééãã¯åãã§ãã ã¡ã¢ãªãç£èŠããå¿
èŠããããŸãã ãã¥ãŒã®é·ããç£èŠããå¿
èŠããããŸãã 誰ããç£èŠã«ã€ããŠå€ãã®ããšã話ããŸããç§ã¯ç¹°ãè¿ããŸããã

Redisã§ã¯ãããããã³ã°èªã¿åãæäœãšãã³ããããã³ã°èªã¿åãæäœã®äž¡æ¹ãå®è¡ããããšãã§ããŸãã ç£èŠã®ããã ãã«ã«ãŠã³ãæäœãå¿
èŠã§ãã
ã©ãããããããç§ã¯äººæ°ã®ãããããªãã¹ãã£ã³ã°ãµã€ããããããªãããŠã³ããŒããããããžã§ã¯ãã«ãªã¢ãŒãã§åãçµã¿ãŸããã

ãã®ãããžã§ã¯ãã®åé¡ã¯äœã§ããïŒ å®éããããªãã¢ããããŒããããšå€æãããŸããããããªãå°ãé·ããã°ãWebã¯ã©ã€ã¢ã³ãã¯èœã¡ãŸãã æ¬¡ã®ã¹ããŒã ã䜿çšããŸããã

ãã¹ãŠé 調ã§ãã ãã¡ã€ã«ãããŠã³ããŒãããŸããã ãããããã¥ãŒã¯äžæ¹åã§ã®ã¿æ©èœãããããWebã¹ã¯ãªããã«éç¥ããå¿
èŠããããŸãããã¡ã€ã«ã¯æ¢ã«ã¢ããããŒããããŠããŸãã

ããã¯ã©ã®ããã«è¡ãããŸããïŒ ããã«ã¯2ã€ã®æ¹æ³ããããŸãã




æåã«ãç¹å®ã®ã¿ã€ã ã¢ãŠãåŸã«ã¹ããŒã¿ã¹ã確èªããŸãã ã¹ããŒã¿ã¹ãšã¯äœã§ããïŒ ããã¯ããŒããªã¥ãŒãªããžããªã§ããåãRedisã䜿çšããããšããå§ãããŸãã ããŒã¯ãURLããMD5ããã·ã¥ãæäŸã§ããŸãã ãããŠã倿åŸãããŒå€ã«ã¹ããŒã¿ã¹ãæžã蟌ã¿ãŸãã ã¹ããŒã¿ã¹ã«ã¯ããå®äºããã倿æžã¿ãããèŠã€ãããŸããããªã©ããããŸãã 1ç§åŸãäžå®ã®æéã®åŸãã¹ã¯ãªããã¯ã¹ããŒã¿ã¹ãèŠæ±ããå®äºãããã©ããã確èªããã¯ã©ã€ã¢ã³ãã«ãã¹ãŠã衚瀺ããŸãã ãã¹ãŠãæç¢ºã§ãã ããã¯ãããŒãªã³ã°ã䜿çšããæåã®æ¹æ³ã§ãã
2ã€ç®ã¯Webãœã±ããã§ãã




ãã¡ã€ã«ãã¢ããããŒãããŸã-ããã2çªç®ã®æ¹æ³ã§ãã ããã¯ãµãã¹ã¯ãªãã·ã§ã³ã§ãã ããã§ã¯ãWebãœã±ããã䜿çšããŸããã
ããã¯ã©ã®ããã«è¡ãããŸããïŒ ããŠã³ããŒããéå§ãããšãããã«Redisã®ãã£ã³ãã«ã«ãµãã¹ã¯ã©ã€ãããŸãã ããšãã°ãmemcahedãªã©ã䜿çšã§ããå ŽåãRedisã䜿çšããªãã£ãå Žåã¯ãRedisã«é¢é£ä»ããããŠããŸãã ãã£ã³ãã«ããã£ã³ãã«åã賌èªããŸãã 倧ãŸãã«èšãã°ãURLããã®åãMD5ããã·ã¥ã§ãã
ãã¡ã€ã«ãããŠã³ããŒããããããã«ãã¹ããŒã¿ã¹ããcompletedããŸãã¯ã¹ããŒã¿ã¹ããnot foundãã®ãã£ãã«ãååŸããŠããã·ã¥ããŸãã ãããŠããã«ãããã«ç§ãã¡ãšäžç·ã«ãPushã¯ã¹ããŒã¿ã¹ãWebã¹ã¯ãªããã«äžããŸãã ãã®åŸããã¡ã€ã«ãèŠã€ãã£ããã¢ããããŒãããŸãã

çŽæ¥ã§ã¯ãªããã»ãŒãã®ãããªã¹ããŒã ã§ãã

ããã¯ã©ã®ããã«è¡ãããŸããïŒ ããŒã¿ã®ç¹å®ã®ãœãŒã¹ããããŸã-ç«å±±ã®æž©åºŠãNASAããéä¿¡ãããæé é¡ãéããŠèŠããæã®æ°ãç¹å®ã®æ ªã®ååŒã®æ°...ãã®ããŒã¿ãåãå
¥ãããã®ããŒã¿ãåãåã£ãããã¯ã°ã©ãŠã³ãã¹ã¯ãªããã¯ãããç¹å®ã®ãã£ãã«ã«ããã·ã¥ããŸãã éåžžãJSããŒãã䜿çšãããWebãœã±ãããä»ããWebã¹ã¯ãªããã¯ãç¹å®ã®ãã£ãã«ã«ãµãã¹ã¯ã©ã€ãããããã§ããŒã¿ãåä¿¡ããããšããã«ããã®ããŒã¿ãWebãœã±ãããä»ããŠã¯ã©ã€ã¢ã³ãã¹ã¯ãªããã«éä¿¡ããããã§è¡šç€ºãããŸãã

ãã®ãããªè§£æ±ºçããããŸã-MamecachedQã ããã¯ããªãå€ã解決çã§ããæåã®1ã€ãšæããŸãã MamecachedãšBerkeleyDbã䜿çšããŠçæããããæãåæã®ããŒããªã¥ãŒãªããžããªã®1ã€ã§ãã
ãã®æ±ºå®ã§æ³šç®ãã¹ãããšã¯äœã§ããïŒ Mamecachedãããã³ã«ã䜿çšãããŠãããšããäºå®ã

倧ããªãã€ãã¹ã¯äœã§ããïŒããã§ã¯ããã¥ãŒã®é·ããç£èŠããŸããã ç§ãèšã£ãããš-ç£èŠãå¿
èŠã§ããããã®ç£èŠã¯ããã«ãããŸããã
ãã¥ãŒã«ã€ããŠèšãã°ãZerro MQã«ã€ããŠã¯èšããŸããã

Zerro MQã¯åªããè¿
éãªãœãªã¥ãŒã·ã§ã³ã§ããããã¥ãŒãããŒã«ãŒã§ã¯ãªããããçè§£ããå¿
èŠããããŸãã ããã¯åãªãAPIãã€ãŸã 1ã€ã®ãã€ã³ããå¥ã®ãã€ã³ãã«æ¥ç¶ããŸãã ãŸãã¯ãå€ãã®ãã€ã³ããæã€1ã€ã®ãã€ã³ãã ãã ããããã«ã¯ãã¥ãŒããããŸããããã€ã³ãã®1ã€ãæ¶ãããšãäžéšã®ããŒã¿ã倱ãããŸãã ãã¡ãããåãZerro MQã«åããããŒã«ãŒãèšè¿°ããŠå®è£
ããããšãã§ããŸã...

Apache Kafkaã ã©ããããããç§ã¯ãã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããããšããŸããã ããã¯hadoopã¹ã¿ãã¯ã®ãœãªã¥ãŒã·ã§ã³ã§ãã ååãšããŠãåªãã髿§èœãœãªã¥ãŒã·ã§ã³ã§ããã倧éã®ããŒã¿ãããŒãããããããåŠçããå¿
èŠãããå Žåã«å¿
èŠã§ãã ãããŠãç§ã¯ããç°¡åãªãœãªã¥ãŒã·ã§ã³ã䜿çšããŸãã

éåžžã«é·ãæéèšå®ããZookepekãªã©ã§åæããå¿
èŠããããŸãã
ãããã³ã« ãããã³ã«ãšã¯äœã§ããïŒ

ããããçš®é¡ã®ãœãªã¥ãŒã·ã§ã³ã玹ä»ããŸããã ITã³ãã¥ããã£ã¯ããªãèªè»¢è»ãçºæããã®ããå
šäœãæšæºåãããããšèããŠèšã£ãã ãããŠããããã³ã«ãæãã€ããã æãåæã®ãããã³ã«ã®1ã€ã¯STOMPã§ãã

圌ã®èª¬æã¯ããã¥ãŒã§ã§ããããšããã¹ãŠç¶²çŸ
ããŠããŸãã
2çªç®ã®ãããã³ã«MQTTã¯ãMessage Queue Telemetry Transportãããã³ã«ã§ãã

STOMPãšã¯ç°ãªããSTOMPãšåããã¹ãŠã®æ©èœãååçã«ã«ããŒããŸããããã€ããªã§ãããšããäºå®ã«ãããSTOMPã¯ãã€ããªã§ãã
以äžã¯ããããã³ã«ãæäœãããã¥ãŒãããŒã«ãŒã®æãèåãªä»£è¡šè
ã§ãã

ActiveMQã¯ã3ã€ãã¹ãŠã®ãããã³ã«ã䜿çšãã4ã€ïŒãã1ã€ãããŸãïŒã䜿çšããŸãã RabbitMQã¯3ã€ã®ãããã³ã«ã䜿çšããŸãã Qpidã¯QãšPã䜿çšããŸãã
AMQP-Advanced Message Queuing Protocolã«ã€ããŠç°¡åã«èª¬æããŸãã

圌ã®ããšãé·ãé話ããããåœŒã®æ©èœã«ã€ããŠ1æéåã話ãããšãã§ããŸãã ç°¡åã«ã ãããŒã«ãŒãçæ³çãªã¡ãŒã«ãµãŒãã¹ãšããŠæç€ºããŸãã Exchange-ããã¯ãã¡ãã»ãŒãžãå°çããéä¿¡è
ã®ã¡ãŒã«ããã¯ã¹ã«ãªããŸãã

ãã®Exchangeã«ã¯ã¿ã€ãããããã£ããããŸãã

ããã§ã¯ãPHPã§å®£èšããæ¹æ³ã瀺ããŠããŸãã ãšããã§ããã®ãã©ã€ããŒãéçºããŸããã

éä¿¡è
ããã¯ã¹ãããã°ãåä¿¡è
ããã¯ã¹ãå¿
èŠã§ãã åä¿¡è
ã®ããã¯ã¹ã«ã¯ãåŒã³åºãããšã«1æåããåãåããªããšããæ©èœããããŸãã åä¿¡è
ã®ããã¯ã¹ã«ãååãšããããã£ããããŸãã æ¬¡ã®ãããªãã®ã宣èšããå¿
èŠããããŸãã

éä¿¡è
ã®ã¡ãŒã«ããã¯ã¹ãšåä¿¡è
ã®ã¡ãŒã«ããã¯ã¹ã®éã§ãéµäŸ¿é
éå¡ãèµ°ã£ãŠç§ãã¡ã®æçŽãéã¶ã«ãŒããäœæããå¿
èŠããããŸãã

ãã®ã«ãŒãã¯ãã«ãŒãã£ã³ã°ããŒã«ãã£ãŠæ±ºå®ãããŸãã

æ¥ç¶ã宣èšãããšããã«ãŒãã£ã³ã°ããŒãæå®ããå¿
èŠããããŸãã ããã¯ãæ¥ç¶ã宣èšãã1ã€ã®æ¹æ³ã§ãã
2çªç®ã®ã¢ãããŒãããããŸãã Exchangeã宣èšããŠããããããã¥ãŒã«ãã€ã³ãããããšãã§ããŸãã ãã®éã§ã-ãã¥ãŒããExchangeãžããŸãã¯Exchangeãããã¥ãŒãžã®æ¥ç¶ã確ç«ã§ããŸãããéãã¯ãããŸããã

ã¡ãã»ãŒãžããããŸãã ã¡ãã»ãŒãžã¯ãå¿
ãroutingKeyãã€ãŸã ããããéµäŸ¿é
éå¡ãã«ãŒããå®è¡ããããã®ããŒã§ãã

ç§ãã¡ã®éµäŸ¿é
éå¡ã«ã¯3ã€ã®ã¿ã€ãããããŸãïŒ

- æåã®ã¿ã€ãã¯ç²ç®ã®éµäŸ¿é
éå¡ã§ãã 圌ãã¯éµãèªãããšãã§ããã圌ããç§ãã¡ã®ããã«çœ®ããã«ãŒãã«æ²¿ã£ãŠèµ°ãã ãã§ãã ãããã®éµäŸ¿é
éå¡ã¯èµ°ã£ãŠããŠããã
æéã®éµäŸ¿é
éå¡ã
- 2çªç®ã®ã¿ã€ãã®éµäŸ¿é
éå¡ã¯å°ãèªãããšãã§ããŸãããæçŽã確èªããŸãããã©ã®ãããªãã®ãããããŸãã...圌ãã¯æçŽã確èªããŸããã
察å¿ãããã¹ãå®è¡ãããã®ãã¹ã«æ²¿ã£ãŠå®è¡ããŸãã ã€ãŸã ç§ãã¡ã®åä¿¡è
ã¯ãå¶ç¶ã®éµã«çŽç²ã«ãªããŸãã
- ãããŠã3çªç®ã®çš®é¡ã®éµäŸ¿é
éå¡ã¯ãããã¯ã§ãã ãã¹ã¯ãèšå®ã§ããŸãããã¹ã¯ã¯ãã¡ã€ã«ã·ã¹ãã ãšåãã§ãéµäŸ¿é
éå¡ã¯ãã®ãã¹ã¯ã§æçŽãæã¡ãŸãã
ã¡ãã»ãŒãžã®éä¿¡æ¹æ³ã®ããã«èŠããŸãïŒ

ç§ãã¡ã®å
žåçãªééãã¯äœã§ããïŒ

å
žåçãªééãã¯ãæ¥ç¶ã®å®çŸ©ãå¿ããããšãå€ãããšã§ãã 3çªç®ã®Rabbitã¯å€ããå°ãªãããWebã€ã³ã¿ãŒãã§ãŒã¹ãåããŠãããWebã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠãã¹ãŠãèŠãããšãã§ããŸãïŒèšãããšããã¥ãŒãã¿ã€ãã亀æã®çš®é¡ãæã£ãŠããã¿ã€ãã
2çªç®ã®å
žåçãªééãã ãã¥ãŒãŸãã¯äº€æã宣èšãããšãããã©ã«ãã§èªååé€ãããŸã-ã»ãã·ã§ã³ãçµäºãããã¥ãŒãåé€ãããŸããã ãããã£ãŠãæ¯ååã¢ããŠã³ã¹ããå¿
èŠããããŸãã ååãšããŠããããè¡ãããšã¯æãŸãããããŸããããæ°žç¶çãªãã¥ãŒãäœæããèä¹
æ§ãå²ãåœãŠãããšããå§ãããŸãã èä¹
æ§ã¯ãæ°žç¶ãã¥ãŒãããå ŽåãRabbitMQãåèµ·åããåŸããã®ãã¥ãŒãäžç·ã«ååšãããšããå
åã§ãã

RabbitMQã¯ã©ãã§ããïŒ ç®¡çããã®ã¯ããŸãå¿«é©ã§ã¯ãããŸããããErlangãç¥ã£ãŠããã°æ¡åŒµã§ããŸãã 圌ã¯èšæ¶ãéåžžã«èŠæ±ããŠããŸãã RabbitMQã¯Erlangçµã¿èŸŒã¿ãœãªã¥ãŒã·ã§ã³ã§åäœããŸããã倧éã®ã¡ã¢ãªãæ¶è²»ããŸãã ä»ã®ãªããžããªã§åäœãããã©ã°ã€ã³ãããã€ããããŸãããç§ã¯æ£çŽã«ãããã§åäœããŸããã§ããã

ãã®ãããªéèªãã·ã¹ãã 管çè
ãã§ãããµã³ãããã¯ã¹ã®ãããããšããèšäºãæžããŸãã-ååãšããŠãããã§èšã£ãããšãšåãã§ãã

ãŸãããã®èšäºã§ã¯ãRabbitMQã®äœ¿ç𿹿³ãããã§ãã¥ãŒã®ãªãã€ã¬ã¯ããå®è¡ã§ããæ¹æ³ãããšãã°ããã¥ââãŒãèªã¿åãããªãå Žåã«ãã®ããŒã¿ãå¥ã®ãã¥ãŒã«æžã蟌ãŸããããã«ããæ¹æ³ãªã©ãããè峿·±ããã¿ãŒã³ãæããŸãããå¥ã®ã¹ã¯ãªãããèªã¿ãŸãã å¯èœã§ããã°ãèªãã§ãã ããã
ããã¯

ç§ã¯æåã«ãã®ãããªãããžã§ã¯ãã«ã€ããŠè©±ããŸããã 仿¥ãã®ãããžã§ã¯ããè¡ã£ãå Žåããã€ã¯ããµãŒãã¹ã䜿çšããŸãã

ãŸãããã€ã¯ããµãŒãã¹ã§ã¯ãçžäºäœçšãšããŠåæãå¿
èŠã§ãã åæã«ã¯ãApache Zookeeperãªã©ã®ããŒã«ã䜿çšããŸãã

Apache Zookeeperã®å²åŠã¯znodeã«åºã¥ããŠããŸãã Znodeã¯ããã¡ã€ã«ã·ã¹ãã ã®èŠçŽ ãšåæ§ã«ãç¹å®ã®ãã¹ãæã£ãŠããŸãã ãŸããããŒãã®äœæãããŒãã®åã®äœæãåã®åä¿¡ãããŒã¿ã®åä¿¡ãããŒã¿ãžã®æžã蟌ã¿ãªã©ã®æäœããããŸãã
Znodeã«ã¯ãã·ã³ãã«ãšãšãã§ã¡ã©ã«ã®2çš®é¡ããããŸãã

äžæç-ãããã¯znodeã§ããããŠãŒã¶ãŒã»ãã·ã§ã³ãçµäºããå Žåãznodeã¯ç Žæ£ãããèªååé€ãããŸãã
ã·ãŒã±ã³ã¹ã¯zããŒãã®èªåã€ã³ã¯ãªã¡ã³ãã§ãã ãããã¯znodeã§ãããç¹å®ã®ååãšæ°å€ã®ãã¬ãã£ãã¯ã¹ãèªåã€ã³ã¯ãªã¡ã³ããããŸãã

èšå®äŸããªã³ã¶ãã©ã€ã§äœ¿çšããŠããã¹ãŠã®ä»çµã¿ã説æããŸãã ããã»ã¹ã°ã«ãŒãã«ã¯ãããã»ã¹ã°ã«ãŒãaãšããã»ã¹ã°ã«ãŒãbã®2ã€ã®ã°ã«ãŒãããããŸãã ããã»ã¹1ã¯ããã»ã¹2ã«æ¥ç¶ããäœããã®åœ¢ã§çžäºäœçšããŸãã ããã»ã¹2ã¯ãèµ·åããããšãZookeeperã«æ§æãæžã蟌ã¿ãŸãã

åããã»ã¹ã¯ç¬èªã®znodeãäœæããŸã-æåã®ããã»ã¹ã2çªç®ã3çªç®ã
ãããŠãããã»ã¹ã®1ã€ã忢ããããããšãã°éå§ããŸããã ããã§ãããã»ã¹ã忢ããäŸã«ã€ããŠã以äžã瀺ããŸããã

ããã»ã¹ã忢ããæ¥ç¶ãåæãããznodeãåé€ãããã€ãã³ããéä¿¡ãããŸãããã®znodeããªãã¹ã³ããŠããããšã1ã€ã®znodeãæ¬ èœããŠããããšã




ã€ãã³ããéä¿¡ãããæ§æãåã«ãŠã³ãããŸãã ãã¹ãŠãéåžžã«ããŸãæ©èœããŸãã

ãã®ãããªãã®ã¯ãã¹ãŠåæããŸãã 誰ããããã§ããã¯ã¢ãããšåæããæ¹æ³ã®ä»ã®äŸããããŸãã

ãã®æåŸã®ã¹ã©ã€ãã§ã¯ããã¥ãŒãµãŒããŒã®ãã¹ãŠã®æ©èœã玹ä»ããŸãã çå笊ãããã®ã¯ãè°è«ã®äœå°ãããããåã«ããŒã¿ããããŸããã§ããã , , ? , , , . ? , . . ActiveMQ . Redis â ACL , . , . Redis? , - , , .

:
- . , RabbitMQ ,
RabbitMQ Redis'.
- , . ? , . ,
â .
- , .
é£çµ¡å
»
akalend»
akalend@mail.ruâ HighLoad++ Junior .
- HighLoad.Guide â , , , . 30 . !
â " - ", , HighLoad++ Junior . , , , â :)