ããã€ã«ã»ãµãã·ã³ïŒä»¥äžãMSïŒïŒ - ããã«ã¡ã¯ãã¿ããªïŒ ç§ã®ååã¯ãã€ã±ã«ã§ãã ç§ã¯ MC2 Software ã§ããã¯ãšã³ãéçºè ãšããŠåããŠãããLook+ ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã®ããã¯ãšã³ãã§ã® Go ã®äœ¿çšã«ã€ããŠã話ããŸãã
ããã«ããã±ãŒã奜ããªäººã¯ããŸããïŒ
ãããªãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ããªãã®ããã§ãã Android ãš iOS çšã§ãããŸããŸãªã¹ããŒã ã€ãã³ãã®æŸéããªã³ã©ã€ã³ã§èŠèŽãããé²ç»ãããããããã«äœ¿çšãããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããŸããŸãªçµ±èšãããã¹ããããŒããã£ã¹ããã«ã³ãã¡ã¬ã³ã¹ãããŒãã¡ã³ãã®ããŒãã«ãããã³ãã¡ã³ã«ãšã£ãŠåœ¹ç«ã€ãã®ä»ã®æ
å ±ãå«ãŸããŠããŸãã
ãŸããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããªã¢ãŒã¡ã³ãã®ãããªãã®ããããŸããã€ãŸããè©Šåã®æãéèŠãªç¬éïŒãŽãŒã«ãæŠããã·ã¥ãŒãã¢ãŠããªã©ïŒãèŠãããšãã§ããŸãã æŸéå
šäœãèŠèŽããããªãå Žåã¯ãæãèå³æ·±ããã®ã ããèŠèŽããããšãã§ããŸãã
éçºã§ã¯äœã䜿çšããŸããã?
äž»èŠéšå㯠Go ã§æžãããŠããŸãã ã¢ãã€ã« ã¯ã©ã€ã¢ã³ããéä¿¡ãã API 㯠Go ã§æžãããŠããŸããã æºåž¯é»è©±ã«ããã·ã¥éç¥ãéä¿¡ãããµãŒãã¹ã Go ã§äœæãããŸããã ãŸããç¬èªã® ORM ãäœæããå¿ èŠããããŸããããããã«ã€ããŠã¯ãã€ãã話ããããããããŸããã ããã§ãããããã€ãã®å°ããªãµãŒãã¹ã¯ Go ã§æžãããŠããŸã: ãšãã£ã¿ãŒçšã®ç»åã®ãµã€ãºå€æŽãšèªã¿èŸŒã¿ã§ã...
ããŒã¿ããŒã¹ãšããŠPostgreSQLã䜿çšããŸããã ãšãã£ã¿ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãActiveAdmin gem ã䜿çšã㊠Ruby on Rails ã§äœæãããŸããã çµ±èšãããã€ããŒããã®çµ±èšã®ã€ã³ããŒãã Ruby ã§èšè¿°ãããŸãã
ã·ã¹ãã API ãã¹ãã«ã¯ãPython ã® Unittest ã䜿çšããŸããã Memcached 㯠API æ¯æãåŒã³åºãã®èª¿æŽã«äœ¿çšããããChefãã¯æ§æã®å¶åŸ¡ã«äœ¿çšãããZabbix ã¯å éšã·ã¹ãã çµ±èšã®åéãšç£èŠã«äœ¿çšãããŸãã Graylog2 ã¯ãã°åéçšã§ãSlate ã¯ã¯ã©ã€ã¢ã³ãçšã® API ããã¥ã¡ã³ãã§ãã
ãããã³ã«ã®éžæ
ç§ãã¡ãééããæåã®åé¡: 以äžã®ç¹ã«åºã¥ããŠãããã¯ãšã³ããšã¢ãã€ã« ã¯ã©ã€ã¢ã³ãéã®å¯Ÿè©±çšã®ãããã³ã«ãéžæããå¿ èŠããããŸãã...
- æãéèŠãªèŠä»¶: ã¯ã©ã€ã¢ã³ãäžã®ããŒã¿ã¯ãªã¢ã«ã¿ã€ã ã§æŽæ°ãããå¿ èŠããããŸãã ã€ãŸããçŸåšãããŒããã£ã¹ããèŠèŽããŠããå šå¡ããã»ãŒç¬æã«æŽæ°æ å ±ãåä¿¡ããå¿ èŠããããŸãã
- 話ãåçŽåããããã«ãã¯ã©ã€ã¢ã³ããšåæãããããŒã¿ã¯åé€ããããç¹å¥ãªãã©ã°ã䜿çšããŠé衚瀺ã«ãªããšä»®å®ããŸããã
- ããããçš®é¡ã®ãŸããªãªã¯ãšã¹ã (çµ±èšãããŒã æ§æãããŒã çµ±èšãªã©) ã¯ãéåžžã® GET ãªã¯ãšã¹ãã«ãã£ãŠååŸãããŸãã
- ããã«ãã·ã¹ãã ã¯åæã« 100 äžäººã®ãŠãŒã¶ãŒãç°¡åã«ãµããŒãããå¿ èŠããããŸããã
ããã«åºã¥ããŠã次㮠XNUMX ã€ã®ãããã³ã« ãªãã·ã§ã³ããããŸããã
- ãŠã§ããœã±ããã ããããã¯ã©ã€ã¢ã³ããããµãŒããŒãžã®ãã£ãã«ã¯å¿ èŠãããŸããã§ããã ãµãŒããŒããã¯ã©ã€ã¢ã³ãã«æŽæ°ãéä¿¡ããã ãã§ãããããWebSocket ã¯åé·ãªãã·ã§ã³ã§ãã
- Server-Sent Events (SSE) ãæ£ããç»å ŽããŸããã ããã¯éåžžã«ã·ã³ãã«ã§ãåºæ¬çã«å¿ èŠãªãã®ããã¹ãŠæºãããŠããŸãã
ãµãŒããŒéä¿¡ã€ãã³ã
ãããã©ã®ããã«æ©èœãããã«ã€ããŠå°ã説æããŸã...
ãã㯠http æ¥ç¶äžã§å®è¡ãããŸãã ã¯ã©ã€ã¢ã³ãããªã¯ãšã¹ããéä¿¡ãããšããµãŒããŒã¯ Content-Type: text/event-stream ã§å¿çããã¯ã©ã€ã¢ã³ããšã®æ¥ç¶ãéããã«ãæ¥ç¶ãžã®ããŒã¿ã®æžã蟌ã¿ãç¶ããŸãã
ããŒã¿ã¯ã¯ã©ã€ã¢ã³ããšåæãã圢åŒã§éä¿¡ã§ããŸãã ç§ãã¡ã®å Žåã¯ã次ã®åœ¢åŒã§éä¿¡ããŸãããå€æŽãããæ§é ã®åå (人ããã¬ãŒã€ãŒ) ãã€ãã³ã ãã£ãŒã«ãã«éä¿¡ããããã¬ãŒã€ãŒã®æ°ããå€æŽããããã£ãŒã«ããå«ã JSON ãããŒã¿ ãã£ãŒã«ãã«éä¿¡ãããŸããã
次ã«ãã€ã³ã¿ã©ã¯ã·ã§ã³èªäœãã©ã®ããã«æ©èœãããã«ã€ããŠè©±ããŸãããã
- ã¯ã©ã€ã¢ã³ããæåã«è¡ãããšã¯ããµãŒãã¹ãšã®åæãæåŸã«å®è¡ãããæå»ãå€æããããšã§ããã¯ã©ã€ã¢ã³ãã¯ãããŒã«ã« ããŒã¿ããŒã¹ãåç §ããŠãã¯ã©ã€ã¢ã³ãã«ãã£ãŠèšé²ãããæåŸã®å€æŽã®æ¥ä»ãå€æããŸãã
- ãã®æ¥ä»ãæå®ããŠãªã¯ãšã¹ããéä¿¡ããŸãã
- ããã«å¿ããŠããã®æ¥ä»¥éã«çºçãããã¹ãŠã®æŽæ°æ å ±ã圌ã«éä¿¡ããŸãã
- ãã®åŸãã©ã€ã ãã£ãã«ã«æ¥ç¶ãã次ã®æŽæ°ãå¿ èŠã«ãªããŸã§éããŸããã
ç§ãã¡ã¯åœŒã«å€æŽã®ãªã¹ããéä¿¡ããŸãã誰ãããŽãŒã«ã決ããå Žåã¯è©Šåã®ã¹ã³ã¢ãå€æŽãã圌ãæªæãããå Žåã¯ããããªã¢ã«ã¿ã€ã ã§éä¿¡ããŸãã ãããã£ãŠãã¯ã©ã€ã¢ã³ãã¯è©Šåã€ãã³ã ãã£ãŒãã§ææ°ã®ããŒã¿ãå³åº§ã«åãåããŸãã ãµãŒããŒãåæ¢ããŠããªãããšããµãŒããŒã«äœãèµ·ãã£ãŠããªãããšãã¯ã©ã€ã¢ã³ããç解ã§ããããã«ãå®æçã« 15 ç§ããšã«ã¿ã€ã ã¹ã¿ã³ããéä¿¡ããŸããããã«ããããã¹ãŠãæ£åžžã§åæ¥ç¶ããå¿
èŠããªãããšãã¯ã©ã€ã¢ã³ãã«èªèãããŸãã
ã©ã€ãæ¥ç¶ã¯ã©ã®ããã«æäŸãããŸãã?
- ãŸãæåã«ããããã¡ãªã³ã°ãããæŽæ°ãåä¿¡ãããã£ãã«ãäœæããŸãã
- ãã®åŸããã®ãã£ã³ãã«ã賌èªããŠæŽæ°æ å ±ãåãåããŸãã
- ã¯ã©ã€ã¢ã³ãããã¹ãŠãæ£åžžã§ããããšãèªèã§ããããã«ãæ£ããããããŒãèšå®ããŸãã
- æåã® ping ãéä¿¡ããŸãã çŸåšã®æ¥ç¶ã¿ã€ã ã¹ã¿ã³ããèšé²ããã ãã§ãã
- ãã®åŸãæŽæ°ãã£ãã«ãéãããããŸã§ã«ãŒãã§ãã£ãã«ããèªã¿åããŸãã ãã£ãã«ã¯ãçŸåšã®ã¿ã€ã ã¹ã¿ã³ãããŸãã¯æ¥ç¶ãéãããã«æ¢ã«æžã蟌ãŸããŠããå€æŽãå®æçã«åä¿¡ããŸãã
ç§ãã¡ãæåã«ééããåé¡ã¯æ¬¡ã®ãããªãã®ã§ãããã¯ã©ã€ã¢ã³ããšéããæ¥ç¶ããšã«ã15 ç§ããšã«å»ãã¿ã€ããŒãäœæããŸããã6 å°ã®ãã·ã³ (6 ã€ã® API ãµãŒããŒ) 㧠XNUMX åã®æ¥ç¶ãéããå ŽåãXNUMX åã®æ¥ç¶ãéããŠããããšãããããŸãããåã®ã¿ã€ããŒãäœæãããŸããã ããã«ãããæ©æ¢°ãå¿
èŠãªè·éãä¿æã§ããªããªããŸããã åé¡ã¯ç§ãã¡ã«ãšã£ãŠããã»ã©æããã§ã¯ãããŸããã§ããããå°ãã®å©ããåŸãŠä¿®æ£ããŸããã
ãã®çµæãping ã¯ã¢ããããŒãã®éä¿¡å ãšåããã£ãã«ããéä¿¡ãããããã«ãªããŸããã
ãããã£ãŠã15 ç§ããšã« XNUMX åäœåããã¿ã€ããŒã¯ XNUMX ã€ã ãã§ãã
ããã«ã¯ãããããŒãpingãæ§é èªäœã®éä¿¡ãªã©ãããã€ãã®è£å©æ©èœããããŸãã ã€ãŸããããŒãã«ã®åå (人ç©ãè©Šåãå£ç¯) ãšãã®ãšã³ããªã«é¢ããæ å ±ãããã«éä¿¡ãããŸãã
æŽæ°æ å ±ãéä¿¡ããã¡ã«ããºã
ããã§ãå€æŽãã©ãããæ¥ãã®ãã«ã€ããŠå°ã説æããŸãã ãªã¢ã«ã¿ã€ã ã§æŸéãèŠãŠããç·šéè ãäœäººãããŸãã 圌ãã¯ãã¹ãŠã®åºæ¥äºãäœãåºããŸãïŒèª°ããéå Žã«ãªãã誰ããè² å·ããäœããã®äº€ä»£ãè¡ãããŸãã...
CMS ã䜿çšããŠãããŒã¿ãããŒã¿ããŒã¹ã«å ¥åãããŸãã ãã®åŸãããŒã¿ããŒã¹ã¯ Listen/Notify ã¡ã«ããºã ã䜿çšããŠãããã«ã€ã㊠API ãµãŒããŒã«éç¥ããŸãã API ãµãŒããŒã¯ãã®æ å ±ããã§ã«ã¯ã©ã€ã¢ã³ãã«éä¿¡ããŠããŸãã ãããã£ãŠãåºæ¬çã«ããŒã¿ããŒã¹ã«æ¥ç¶ãããŠãããµãŒããŒã¯å°æ°ã§ãããã¯ã©ã€ã¢ã³ãã¯ãããªã圢ã§ãããŒã¿ããŒã¹ãšçŽæ¥å¯Ÿè©±ããªããããããŒã¿ããŒã¹ã«ç¹å¥ãªè² è·ã¯ããããŸããã
PostgreSQL: ãªãã¹ã³/éç¥
Postgres ã® Listen/Notify ã¡ã«ããºã ã䜿çšãããšãã€ãã³ã ãµãã¹ã¯ã©ã€ããŒã«ã€ãã³ããå€æŽãããããšãã€ãŸãããŒã¿ããŒã¹ã«ã¬ã³ãŒããäœæãããããšãéç¥ã§ããŸãã ãããè¡ãããã«ãç°¡åãªããªã¬ãŒãšé¢æ°ãäœæããŸããã
ã¬ã³ãŒããæ¿å
¥ãŸãã¯å€æŽãããšãã¯ãdata_updates ãã£ãã«ã§éç¥é¢æ°ãåŒã³åºããããã«ããŒãã«ã®ååãšãå€æŽãŸãã¯æ¿å
¥ãããã¬ã³ãŒãã®èå¥åãæž¡ããŸãã
ã¯ã©ã€ã¢ã³ããšåæããå¿
èŠããããã¹ãŠã®ããŒãã«ã«å¯ŸããŠãã¬ã³ãŒãã®å€æŽ/æŽæ°åŸã«ãäžã®ã¹ã©ã€ãã«ç€ºãããŠããé¢æ°ãåŒã³åºãããªã¬ãŒãå®çŸ©ããŸãã
API ã¯ãããã®å€æŽãã©ã®ããã«ãµãã¹ã¯ã©ã€ãããã®ã§ãããã?
ãã¡ã³ã¢ãŠã ã¡ã«ããºã ãäœæãããã¡ãã»ãŒãžãã¯ã©ã€ã¢ã³ãã«éä¿¡ãããŸãã ãã¹ãŠã®é¡§å®¢ãã£ãã«ãåéãã次ã®ãã£ãã«ãéããŠåä¿¡ããæŽæ°æ å ±ãéä¿¡ããŸãã
ããã§ã¯ãæšæºã® pq ã©ã€ãã©ãªãããŒã¿ããŒã¹ã«æ¥ç¶ãããã£ãã« (data_updates) ããªãã¹ã³ãããããšãéç¥ããæ¥ç¶ãéããŠããŠãã¹ãŠãæ£åžžã§ããããšã確èªããŸãã ã¹ããŒã¹ãç¯çŽããããã«ãšã©ãŒãã§ãã¯ãçç¥ããŠããŸãïŒãã§ãã¯ããªããšå±éºã§ãïŒã
次ã«ã15 ç§ããšã« ping ãéä¿¡ãã Ticker ãéåæã«èšå®ãããµãã¹ã¯ã©ã€ããããã£ãã«ã®ãªã¹ãã³ã°ãéå§ããŸãã ping ãåä¿¡ããå Žåã¯ããã® ping ãå ¬éããŸãã äœããã®ãšã³ããªãŒãåãåã£ãå Žåããã®ãšã³ããªãŒããã®ãã¡ã³ã¢ãŠãã®ãã¹ãŠã®è³Œèªè ã«å ¬éããŸãã
ãã¡ã³ã¢ãŠãã¯ã©ã®ããã«æ©èœããŸãã?
ãã·ã¢èªã§ã¯ãããã¯ãã¹ããªãã¿ãŒããšèš³ãããŸãã æŽæ°ã®åä¿¡ãåžæãã賌èªè ãç»é²ãããªããžã§ã¯ãã XNUMX ã€ãããŸãã ãããŠããã®ãªããžã§ã¯ãã«æŽæ°ãå°çãããšããã«ããã®æŽæ°ããã¹ãŠã®ãµãã¹ã¯ã©ã€ããŒã«é åžããŸãã éåžžã«ç°¡åã§ã:
Go ã§ã®å®è£
æ¹æ³:
æ§é ãããããã¥ãŒããã¯ã¹ã䜿çšããŠåæãããŸãã ããã«ã¯ãããŒã¿ããŒã¹ãžã® Fanout ã®æ¥ç¶ã®ç¶æ
ãä¿åãããã£ãŒã«ã (ã€ãŸããçŸåšãªãã¹ã³ããŠãããæŽæ°ãåä¿¡ããäºå®) ãšãå©çšå¯èœãªãã¹ãŠã®ãã£ãã«ã®ãªã¹ã (ããã) ãããããã®ããŒã¯æ¬¡ã®åœ¢åŒã®ãã£ãã«ãšæ§é äœã§ããå€ïŒæ¬è³ªçã«ã¯ãããªã圢ã§ã䜿çšãããŸããïŒã
Connected ãš Disconnected ã® XNUMX ã€ã®ã¡ãœããã䜿çšãããšãããŒã¹ãžã®æ¥ç¶ãããããšãæ¥ç¶ã衚瀺ãããããšãããã³ããŒã¹ãžã®æ¥ç¶ãåæãããããšã Fanout ã«äŒããããšãã§ããŸãã XNUMX çªç®ã®ã±ãŒã¹ã§ã¯ããã¹ãŠã®ã¯ã©ã€ã¢ã³ããåæããã¯ã©ã€ã¢ã³ããžã®æ¥ç¶ãéãããããããããäœãèãããšãã§ãããåæ¥ç¶ããããšãäŒããå¿ èŠããããŸãã
ãã£ã³ãã«ãããªã¹ããŒãã«è¿œå ãã Subscribe ã¡ãœããããããŸãã
ã¯ã©ã€ã¢ã³ããåæãããå Žåã«ãªã¹ããŒãããã£ã³ãã«ãåé€ãã Unsubscribe ã¡ãœãããšããã¹ãŠã®ãµãã¹ã¯ã©ã€ããŒã«ã¡ãã»ãŒãžãéä¿¡ã§ãã Publish ã¡ãœããããããŸãã
質åïŒ â ãã®ãã£ãã«ãéããŠäœãéä¿¡ãããŸãã?
MSïŒ â å€æŽãããã¢ãã«ãŸã㯠ping ãéä¿¡ãããŸã (åºæ¬çã«ã¯åãªãæ°å€ãæŽæ°)ã
MSïŒ â ãããããã®ãéä¿¡ããä»»æã®æ§é ãéä¿¡ããå ¬éããããšãã§ããŸãããã㯠JSON ã«å€æãããã ãã§ãã
MSïŒ â Postgres ããéç¥ãåãåããŸã â ããã«ã¯ããŒãã«åãšèå¥åãå«ãŸããŠããŸãã ããŒãã«åãšèå¥åã«åºã¥ããŠãå¿ èŠãªã¬ã³ãŒããååŸãããã®æ§é ãå ¬éã®ããã«éä¿¡ããŸãã
ã€ã³ãã©
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®èŠ³ç¹ããããã¯ã©ã®ããã«èŠããã§ãããã? åœç€Ÿã«ã¯ 7 å°ã®ããŒããŠã§ã¢ ãµãŒããŒãããããã®ãã¡ã® 6 å°ã¯å®å šã«ããŒã¿ããŒã¹å°çšã§ãä»ã® XNUMX å°ã¯ä»®æ³ãã·ã³ãå®è¡ããŸãã API ã®ã³ããŒã¯ XNUMX ã€ãããŸããAPI ãåããåä»®æ³ãã·ã³ã¯å¥ã®ããŒããŠã§ã¢ ãµãŒããŒäžã§å®è¡ãããŸããããã¯ä¿¡é Œæ§ã®ããã§ãã
ã¢ã¯ã»ã·ããªãã£ãåäžãããããã«ãKeepalived ãã€ã³ã¹ããŒã«ããã XNUMX ã€ã®ããã³ããšã³ãããããäœããèµ·ãã£ãå Žåã«äžæ¹ã®ããã³ããšã³ããããäžæ¹ã®ããã³ããšã³ãã«çœ®ãæãããŸãã ãŸããCMS ã®ã³ããŒã XNUMX ã€ãããŸãã
çµ±èšã€ã³ããŒã¿ãŒããããŸãã å®æçã«ããã¯ã¢ãããäœæããã DB ã¹ã¬ãŒãããããŸãã Pigeon Pusher ãšããã¯ã©ã€ã¢ã³ãã«ããã·ã¥éç¥ãéä¿¡ããã¢ããªã±ãŒã·ã§ã³ããZabbixãGraylog2ãChef ãšãã£ãã€ã³ãã©ã¹ãã©ã¯ãã£é¢é£ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã
å®éãããå°ãªããµãŒããŒã§ 100 äžä»¶ã«å¯Ÿå¿ã§ããããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯åé·åãããŠããŸãã ããããéã¯ãããŸãã - ç§ãã¡ã¯ããã䜿ããŸããïŒãããå¯èœã§ãããšèšãããŸãã - ãªã䜿ããªãã®ã§ããïŒã
å²ç¢ã®é·æ
ãã®ã¢ããªã±ãŒã·ã§ã³ã«åãçµãã åŸãGo ã®ãã®ãããªæçœãªå©ç¹ãæããã«ãªããŸããã
- ã¯ãŒã«ãª http ã©ã€ãã©ãªã ããã䜿çšãããšãããã«ããŸããŸãªãã®ãäœæã§ããŸãã
- ããã«ããã£ãã«ã«ãããã¯ã©ã€ã¢ã³ãã«éç¥ãéä¿¡ããã¡ã«ããºã ãéåžžã«ç°¡åã«å®è£ ã§ããããã«ãªããŸããã
- çŽ æŽãããã®ã¯ãRace detecter ã®ãããã§ãããã€ãã®é倧ãªãã° (ã¹ããŒãžã³ã° ã€ã³ãã©ã¹ãã©ã¯ãã£) ãæé€ã§ããããšã§ãã ã¹ããŒãžã³ã°ã§åäœãããã®ã¯ãã¹ãŠèµ·åãããRace ããŒã§ã³ã³ãã€ã«ãããŸãã ãããã£ãŠãã¹ããŒãžã³ã° ã€ã³ãã©ã¹ãã©ã¯ãã£ã調ã¹ãŠãã©ã®ãããªæœåšçãªåé¡ããããã確èªã§ããŸãã
- ããããªãºã ãšèšèã®ã·ã³ãã«ãã
éçºè
ãåéããŠããŸãïŒ æ¬²ãã人ãããããé¡ãããŸãã
質å
èŽè¡ããã®è³ªå (以äžãB): â ãã¡ã³ã¢ãŠãã«é¢ããéèŠãªç¹ã XNUMX ã€æããŠããããã«æããŸãã ã¯ã©ã€ã¢ã³ãã«å¿çãéä¿¡ãããšããã¯ã©ã€ã¢ã³ããèªã¿ãããªãå Žåã¯ãããã¯ãããšããç解ã§æ£ããã§ãã?
MSïŒ - ãããããããã¯ããŠããŸããã ãŸããnginx ã®èåŸã«ã¯ããããã¹ãŠãåãã£ãŠããŸããã€ãŸããã¯ã©ã€ã¢ã³ããé ãå Žåã§ãåé¡ã¯ãããŸããã 次ã«ãã¯ã©ã€ã¢ã³ãã«ã¯ãããã¡ä»ãã®ãã£ãã«ããããŸããå®éãããã«æ倧 XNUMX 件ã®æŽæ°ã眮ãããšãã§ããŸãããã£ãã«ã«æžã蟌ãããšãã§ããªãå Žåããã£ãã«ã¯åé€ãããŸãã ãã£ãã«ããããã¯ãããŠããããšãããã£ããããã£ãã«ãéããã ãã§ããåé¡ãçºçããå Žåãã¯ã©ã€ã¢ã³ãã¯åæ¥ç¶ããŸãã ãããã£ãŠãååãšããŠãããã§ã¯ãããã¯ã¯ãããŸããã
ã§ïŒ â èå¥åããŒãã«ã§ã¯ãªããã¬ã³ãŒããããã« Listen/Notify ã«éä¿¡ããããšã¯ã§ããªãã§ãããã?
MSïŒ â Listen/Notify ã«ã¯ãéä¿¡ããããªããŒãã« 8 ãã€ãã®å¶éããããŸãã å°éã®ããŒã¿ã§ããã°åºæ¬çã«ã¯éä¿¡å¯èœã§ãããåçŽã«ãã¡ãã®æ¹ã確å®ãªæ°ãããŸãã å¶é㯠Postgres èªäœã«ãããŸãã
ã§ïŒ â 顧客ã¯èå³ã®ãªãè©Šåã«é¢ããææ°æ å ±ãåãåããŸãã?
MSïŒ - äžè¬çã«ã¯ããã§ãã ååãšããŠã2 ïœ 3 è©Šåã䞊è¡ããŠè¡ãããŸãããããã§ã䞊è¡ããŠé²è¡ããããšã¯éåžžã«ãŸãã§ãã ã¯ã©ã€ã¢ã³ããäœããèŠãŠããå Žåãéåžžã¯è¡ãããŠããè©ŠåãèŠãŠããŸãã ãã®åŸãã¯ã©ã€ã¢ã³ãã¯ããããã¹ãŠã®æŽæ°ãåèšãããããŒã«ã« ããŒã¿ããŒã¹ãæã¡ãã€ã³ã¿ãŒãããæ¥ç¶ããªããŠããã¯ã©ã€ã¢ã³ãã¯æŽæ°ããããã¹ãŠã®éå»ã®è©Šåã衚瀺ã§ããŸãã åºæ¬çã«ãã¯ã©ã€ã¢ã³ãããªãã©ã€ã³ã§äœæ¥ã§ããããã«ããµãŒããŒäžã®ããŒã¿ããŒã¹ãšã¯ã©ã€ã¢ã³ãã®ããŒã«ã« ããŒã¿ããŒã¹ãåæããŸãã
ã§ïŒ âãªãç¬èªã®ORMãäœã£ãã®ã§ããïŒ
Alexey (Look+ éçºè ã® XNUMX 人): â åœæ (XNUMX 幎åã§ã)ãORM ã¯çŸåšãããå°ãªããORM ã¯éåžžã«ãããããããŸããã äžã«ããã»ãšãã©ã® ORM ã§ç§ãæ°ã«å ¥ã£ãŠããç¹ã¯ããã®ã»ãšãã©ã空ã®ã€ã³ã¿ãŒãã§ã€ã¹ã§å®è¡ãããããšã§ãã ã€ãŸãããããã® ORM ã®ã¡ãœããã¯ãæ§é äœãæ§ââé äœãã€ã³ã¿ãŒãæ°å€ããŸã£ããç¡é¢ä¿ãªãã®ãªã©ããããããã®ãåãå ¥ããæºåãã§ããŠããŸãã
åœç€Ÿã® ORM ã¯ããŒã¿ ã¢ãã«ã«åºã¥ããŠæ§é ãçæããŸãã èªåèªèº«ã ãããã£ãŠããã¹ãŠã®ã¡ãœããã¯å ·äœçã§ããããªãã¬ã¯ã·ã§ã³ãªã©ã䜿çšããŸãããã¡ãœããã¯æ§é ãåãå ¥ãããããã®æ§é ã䜿çšããããšãæåŸ ããŠããŸãã
ã§ïŒ âäœåãããåå ãããŸãããïŒ
MSïŒ â åæ段éã§ã¯XNUMXåãåå ããŠããŸããã XNUMXæãããã«çæããŠãXNUMXæã«ã¯æ¬ç·šïŒåçïŒãå®æããŸããã XNUMXæã«ãªãªãŒã¹ããããŸããã
ã§ïŒ â SSE ãèšè¿°ããå Žåãã¿ã€ã ã¢ãŠãã¯äœ¿çšããŸããã äœæ ã§ããïŒ
MSïŒ â æ£çŽã«èšããšãSSE ã¯äŸç¶ãšã㊠html5 ãããã³ã«ã§ããç§ãç解ããŠããéããSSE æšæºã¯ãã©ãŠã¶ãŒãšéä¿¡ããããã«èšèšãããŠããŸãã ãã©ãŠã¶ãŒãåæ¥ç¶ (ãªã©) ã§ããããã«ããè¿œå æ©èœããããŸãããæ¥ç¶ããŠæ
å ±ãåä¿¡ããããã®ããžãã¯ãå®è£
ã§ããã¯ã©ã€ã¢ã³ãããã£ãããããããã¯å¿
èŠãããŸããã ç§ãã¡ã¯ SSE ãäœæããã®ã§ã¯ãªããSSE ã«äŒŒããã®ãäœæããŸããã ããã¯ãããã³ã«ãã®ãã®ã§ã¯ãããŸããã
å¿
èŠã¯ãããŸããã§ããã ç§ã®ç解ããéããã¯ã©ã€ã¢ã³ãã¯æ¥ç¶ã¡ã«ããºã ãã»ãŒãŒãããå®è£
ããŸããã 圌ãã¯ç¹ã«æ°ã«ããŸããã§ããã
ã§ïŒ â ãã®ä»ã«ã©ã®ãããªãŠãŒãã£ãªãã£ã䜿çšããŸããã?
MSïŒ â ã¹ã¿ã€ã«ãçµ±äžããããã«ãgofmt ã ãã§ãªããgovet ãš golint ãæãç©æ¥µçã«äœ¿çšããŸããã ä»ã«ã¯äœã䜿çšãããŸããã§ããã
ã§ïŒ â ãããã°ã«ã¯äœã䜿çšããŸããã?
MSïŒ â ãããã°ã¯äž»ã«ãã¹ãã䜿çšããŠå®è¡ãããŸããã ãããã¬ã GOP ã¯äœ¿çšããŸããã§ããã
ã§ïŒ â Publishæ©èœãå®è£ ããã¹ã©ã€ããè¿åŽããŠããããŸããïŒ å€æ°åã XNUMX æåã ãšæ··ä¹±ããŸããã?
MSïŒ - ãããã å¯èŠç¯å²ã¯ããªããçããã§ãã ãããã¯ãã以å€ã§ã¯äœ¿çšããã (ãã®ã¯ã©ã¹ã®å éšãé€ã)ãéåžžã«ã³ã³ãã¯ãã§ããå¿ èŠãªè¡æ°ã¯ããã 7 è¡ã§ãã
ã§ïŒ â ã©ãããããããŸã çŽæçã§ã¯ãããŸãã...
MSïŒ - ããããããããããã¯æ¬ç©ã®ã³ãŒãã§ãã ããã¯ã¹ã¿ã€ã«ã®åé¡ã§ã¯ãããŸããã ããã¯éåžžã«å®çšçãªãéåžžã«å°ããªã¯ã©ã¹ã§ã - ã¯ã©ã¹å ã®ãã£ãŒã«ã㯠3 ã€ã ãã§ã...
MSïŒ â æŠããŠãã¯ã©ã€ã¢ã³ã (ã·ãŒãºã³ã®è©Šåãéžæ) ãšåæããããã¹ãŠã®ããŒã¿ã¯å€æŽãããŸããã 倧ãŸãã«èšãã°ãè©Šåãå€æŽããå¿
èŠãããå¥ã®ã¹ããŒããäœæããå Žåãæ°ããããŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ãã§ãã¹ãŠãèæ
®ãããã ãã§ãå€ãããŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ãã¯çŠæ¢ãããŸãã
ã§ïŒ â ãµãŒãããŒãã£ã®äŸåé¢ä¿ç®¡çããã±ãŒãžã¯ãããŸãã?
MSïŒ â go dep ã䜿çšããŸããã
ã§ïŒ â å ±åæžã®ããŒãã«ãããªã«é¢ãããã®ããããŸããããå ±åæžã«ã¯ãããªã«é¢ããèšè¿°ã¯ãããŸããã§ããã
MSïŒ â ãããããããªã«é¢ãã話é¡ã¯äœããããŸããã ããã¯ãLook+ããšåŒã°ãããã®ã§ããããã¢ããªã±ãŒã·ã§ã³ã®ååã§ãã
ã§ïŒ â ã¯ã©ã€ã¢ã³ãã«ã¹ããªãŒãã³ã°ããããšãã£ããããŸããã...
MSïŒ â ç§ãã¡ã¯ã¹ããªãŒãã³ã°ãããªã«ã¯é¢äžããŠããŸããã§ããã ããã¯ãã¹ãŠ Megafon ã«ãã£ãŠè¡ãããŸããã ã¯ããã¢ããªã±ãŒã·ã§ã³ã MegaFon ã§ãããšã¯èšããŸããã§ããã
MSïŒ â Go â ã¹ã³ã¢ãè©Šåã€ãã³ããçµ±èšãªã©ã®ãã¹ãŠã®ããŒã¿ãéä¿¡ããŸããGo ã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã¯ãšã³ãå šäœã§ãã ãŠãŒã¶ãŒãè©ŠåãèŠèŽã§ããããã«ãã¯ã©ã€ã¢ã³ãã¯ãã¬ãŒã€ãŒã«ã©ã®ãªã³ã¯ã䜿çšããããã©ããããç¥ã£ãŠããå¿ èŠããããŸãã çšæããããããªãã¹ããªãŒã ãžã®ãªã³ã¯ããããŸãã
ããã€ãã®åºå ð
ãã€ãã宿æ³ããã ãããããšãããããŸãã ç§ãã¡ã®èšäºãæ°ã«å
¥ã£ãŠããŸãã? ãã£ãšèå³æ·±ãã³ã³ãã³ããèŠããã§ãã? 泚æããããå人ã«å§ãããããŠç§ãã¡ããµããŒãããŠãã ããã
ã¢ã ã¹ãã«ãã ã®ãšã¯ã€ãã¯ã¹ Tier IV ããŒã¿ã»ã³ã¿ãŒã§ã¯ Dell R730xd ã 2 åå®ã? ããã ã
åºæïŒ habr.com