StormÊÇÒ»¸öÃâ·Ñ¡¢¿ªÔ´µÄ·Ö²¼Ê½ÊµÊ±¼ÆËãϵͳ¡£´ÓStormµÄÓÉÀ´µ½µÚÒ»¸ö°æ±¾µÄµ®Éú£»´ÓÀ뿪Twitterµ½×ªÍ¶Apache»³±§£¬StormÊÇÈçºÎ´ÓÁã·¢Õ¹µ½¶¥¼¶ÏîÄ¿µÄ£¬ÇÒÌýStorm¹¤³ÌʦNathan MarzµÄÉî¶È½â¶Á¡£
Apache StormÊÇÒ»¸öÃâ·Ñ¡¢¿ªÔ´µÄ·Ö²¼Ê½ÊµÊ±¼ÆËãϵͳ¡£³ýÁËÓÃÓÚʵʱ·ÖÎöÍ⣬StormÒ²¿ÉÓÃÓÚÔÚÏß»úÆ÷ѧϰ¡¢³ÖÐø¼ÆËã¡¢·Ö²¼Ê½Ô¶³Ìµ÷ÓúÍETLµÈÁìÓò¡£Storm¼òµ¥Ò×Óã¬Ö§³Ö¶àÖÖ±à³ÌÓïÑÔ¡£StormÒ²ÊÇÉÙÓеöʹÓÃClojure±àдµÄ¿ªÔ´ÏîĿ֮һ£¬ClojureÊÇÒ»¸öÔÚJVMƽ̨ÔËÐеĶ¯Ì¬º¯Êýʽ±à³ÌÓïÑÔ¡£¹úÄڵö¹«Ë¾Ò²ÔÚ´ó¹æÄ£Ê¹ÓÃStorm£¬±ÈÈç°Ù¶È¡¢ÌÔ±¦£¬ÔÚStormµÄ¹ÙÍøÒ²ÄÜ¿´µ½ËûÃǵÄÉ̱ꡣ

ÔÚStormÉý¼¶ÎªApache»ù½ð»á¶¥¼¶ÏîÄ¿ºó£¬StormÖ÷¹¤³ÌʦNathan Marz¾ÍStormµÄÓÉÀ´ºÍÏîÄ¿ÐĵÃ׫дÁ˱¾ÎÄ¡£Nathan Marz±íʾ£¬StormµÄ³É¹¦Àë²»¿ª¿ªÔ´£¬´òÔìÒ»¸ö³É¹¦µÄÏîÄ¿²»½öÊÇÄܰïÖúÈËÃǽâ¾öʵ¼ÊÎÊÌ⣬»¹±ØÐè¼æ¹ËÎĵµ£¬Íƹ㣬֧³ÖÉçÇøµÈ·½·½ÃæÃæ¡£
ÒëÎÄÈçÏ£º
StormµÄÓÉÀ´
Ê×ÏÈ£¬Èκγɹ¦µÄÏîÄ¿ÐèÒª×öµ½Á½µã£º
- ³É¹¦½â¾öÁËÒ»¸öʵ¼ÊÎÊÌâ
- Äܹ»Ëµ·þ´óÁ¿µÄÓû§Ê¹ÓÃÄãµÄÏîÄ¿£¬Ö¤Ã÷ÄãµÄÏîÄ¿ÊÇËûÃǵÄ×î¼Ñ½â¾ö·½°¸¡£
ÎÒÏ룬µÚ¶þµãÊÇ¿ª·¢ÕßÔÚÏîÄ¿¹¤×÷ÖÐÆÕ±éºöÂÔµÄÒ»µã£¬µ«ÆäʵÕâ¹ØÏµµ½ÏîÄ¿µÄ³É°Ü£¬ÎÒÏ£ÍûÏÂÊöµÄStormÀúÊ·Äܹ»Ê¹´ó¼Ò¶Ô´ËÒýÆð×ã¹»µÄÖØÊÓ¡£
StormµÄǰÉíÊÇBackYype£¬ÓÃÀ´°ïÖúÉ̼ҷÖÎöºÍÑо¿ËûÃǵIJúÆ·ÔÚÉç½»ÍøÂçÖеÄÓ°ÏìÁ¦£¬¿ÉÒÔ´¦ÀíÀúÊ·»òʵʱµÄÊý¾Ý¡£Ê¹Óõķ½·¨ÊDZê×¼¶ÓÁкÍÏß³Ì(worker)·½·¨£¬µ«ÊÇÕâ¸ö·½°¸²»Ì«ÁîÈËÂúÒâ¡£Ê×ÏÈËü²¢²»ÓѺã¬ËùÓеĶÓÁкÍÏ̶߳¼±ØÐëÈ·±£¿ÉÓã¬ÕâÑùÏà¶ÔÀ´ËµÏÔµÃÈß³¤¡£´ó²¿·ÖÂß¼´¦ÀíÓÃÓÚ½øÐÐÊÕ·¢ºÍÐòÁÐ/·´ÐòÁÐÏûÏ¢£¬Ò»¸öÓ¦ÓõÄij¸öÂß¼½«»á±é¼°ËùÓÐÏ̡߳£
ÔÚ2010Äê12Ô£¬ÎÒÏëµ½ÁË“Á÷(Stream)”µÄ·Ö²¼Ê½³éÈ¡·½·¨£¬×îºóÑݱäΪ“Åç×ì(spout)”ºÍ“bolts(ÂÝË©)”µÄ˼Ïë¡£ÕâÁ½¸ö¸ÅÄîµÄÌØµãÊÇÄÚÔÚ²¢Ðд¦ÀíµÄ£¬ÀàËÆÓÚHadoop¡£Bolts¶ÔÓÚÐèÒª´¦ÀíµÄÁ÷½øÐж©ÔÄ£¬È»ºóÖ¸³öÖ®ºóµÄÁ÷¸ÃÈçºÎ½øÐзÖÇø´¦Àí¡£½øÐÐÒ»·¬Êµ¼ùºó£¬ÎÒ¾ö¶¨ÔÚÕâ»ù´¡ÉϽøÐнøÒ»²½¸Ä½ø£¬ÓÚÊÇÎÒÔÚÍÆÌØÉÏ·¢²¼ÁËÐµĹ¹½¨Ë¼Â·--Storm£¬½á¹û·´Ó¦·Ç³£ÈÈÁÒ¡£
Ëæºó£¬¶ÔÖмäÏûÏ¢µÄÒÀÀµÈÃÎÒ¾õµÃ£¬Èç¹ûÓиö¸üºÃµÄ°ì·¨£¬Ïû³ý¶ÔÖмäÏûÏ¢´«µÝµÄÒÀÀµ£¬»á¸üÄÜÌá¸ß¹¤×÷ЧÂÊ¡£ÓÚÊÇÎÒ³¢ÊÔʹÓÃÒ»ÖÖ»ùÓÚËæ»úÊýºÍÒì»òÂß¼µÄËã·¨£¬Ëü½öÐèÒª20¸ö×ֽڵij¤¶ÈÀ´¸ú×Ùÿ¸öspoutÊý×é¡£ÖÁ´Ë£¬StormµÄ³ûÐλù±¾³ÉÐÍ£¬ÎÒÒþÔ¼¸Ð¾õÕ⽫ÊÇÒ»Ïîΰ´óµÄ¹¤³Ì¡£
µÚÒ»¸ö°æ±¾
½ÓÏÂÀ´µÄ5¸öÔÂʱ¼äÀStormµÄµÚÒ»¸ö°æ±¾µ®ÉúÁË¡£´ÓÒ»¿ªÊ¼£¬¿ªÔ´ÊÇÎÒ¾õµÃÓ¦¸ÃÈ¥×öµÄÊÂÇé¡£ÎÒÓÃJava½øÐÐStorm APIµÄ±àд£¬¶ø²¿Êð¶ËʹÓÃClojure¡£ÊÂʵ֤Ã÷£¬Õâ»á´øÀ´¸ü¸ßµÄÈí¼þÉú²úÁ¦ºÍ¹¤×÷ЧÂÊ¡£´ËÍ⣬¿¼Âǵ½¼æÈÝÐԺͱãÀûÐÔ£¬ÎÒÏ£ÍûStormƽ̨ÊÇÄÜÓëÖ÷Á÷±à³ÌÓïÑÔÎ޷칤×÷µÄ£¬ÕâÑùÈËÃÇʹÓÃStormʱ£¬¿ÉÒÔʹÓÃ×Ô¼ºÊìϤµÄÓïÑÔ£¬¶ø²»±ØÖØÐ´´úÂë¡£
×÷ΪHadopµÄÖØ¶ÈʹÓÃÕߣ¬HadoopµÄ½©Ê¬workerģʽ»áÀ˷Ѳ»ÉÙ×ÊÔ´¡£ÓÚÊÇ£¬ÔÚStormÉè¼ÆÖУ¬ÎÒ°ÑÀÛ׸µÄʹÓÃÍê±ÏµÄworkerÔÚÆäÊ״γöÏֵĵط½¾ÍÖ±½ÓÏú»Ù¡£ÁíÍ⣬һµ©HadoopµÄJobTracker³öÏÖÎÊÌ⣬ÕýÔÚÔËÐеÄ×÷Òµ½«»á±»ÖÕÖ¹¡£Èç¹ûÓÐÒ»Ïî×÷ÒµÒѾÔËÐÐÁ˶àÌìÈ´Òò´Ë¶ø±»ÆÈÖÕÖ¹£¬ÕâÎÞÒÉÊǷdz£ÁîÈ˾ÚÉ¥µÄ¡£ËùÒÔÔÚStormÖÐÎÒÒýÈëÁË“process fault-tolerant(½ø³ÌÈÝ´í)”»úÖÆ£¬¼òµ¥Ëµ£¬¾ÍÊǼ´Ê¹StormÊØ»¤½ø³Ì±»Ïú»Ù£¬ÖØÆô¸Ã½ø³Ì²»»á¶ÔÕýÔÚÔËÐеÄÍØÆË²úÉúÓ°Ïì¡£
ÔÚJason JacksonµÄ°ïÖúÏ£¬ÔÚAWSÉÏÎÒÃÇ´´½¨ÁËStorm×Ô¶¯²¿Êð»ú£¬Õâ¶ÔStormµÄ¿ª·¢¹ý³Ì´øÀ´¼«ºÃµÄ°ïÖú£¬Í¬Ê±Ê¹µÃÎÒ¿ÉÒÔÔÚ²»Í¬´óСºÍÅäÖõĻúÆ÷¼¯ÈºÖнøÐвâÊÔ¡£
¿ªÔ´Storm
2011Äê7Ô£¬ÓëTwitter¾ÍÊÕ¹ºÊÂÒË´ï³ÉÒ»Ö£¬ÎÒÃÇÕýʽ¼ÓÈëTwitterÕâ¸ö´óÆ·ÅÆ¡£Í¬Ê±£¬ÎÒÂíÉÏ×ÅÊÖÍÆ³öStorm¡£

ÒªÏë³É¹¦·¢²¼¿ªÔ´Èí¼þ£¬·½·¨ÓÐÁ½¸ö¡£Ò»ÊǰÑÊÂÇ铸ã´ó”£¬¾¡¿ÉÄܵØÔö¼Ó×÷Æ·µÄÆØ¹â¶ÈÓë¹Ø×¢¶È£¬²»¹ýȱµãÊÇÒ»µ©ÓëÈËÃÇÔ¤ÆÚ²»·ûºÏ£¬½øÒ»²½ºÏ×÷ÒâÔ¸¿ÉÄÜ´Ó´ËÏûʧ¡£¶þÊǾ²ÇÄÇĵط¢²¼£¬ÂýÂýµØÅàÑøÓû§Èº£¬²»×ãÖ®´¦ÊÇÈç¹ûÈËÃÇ·¢ÏÖ²»¹ýÈç´Ë£¬ºÜ¿ÉÄܴӴ˲»ÔÙ¹Ø×¢¡£¶ÔÕâÁ½µã½øÐзÖÎöÂÛÖ¤ºó£¬ÎÒ¾ö¶¨Í¸¹ý¿ª½»Á÷»áµÄ·½Ê½½øÐÐÐû´«ºÍ·¢²¼¡£ÊºóÖ¤Ã÷£¬ÕâÊÇÕýÈ·µÄ×ö·¨¡£ÔÚÕýʽ·¢²¼µ±Ì죬GithubÉϵÄä¯ÀÀºÍ¹Ø×¢ÊýºÜ¿ì¾Í³¬¹ýÁË1000´Î£¬Í¬Ê±³ÉΪHacker NewÉÏÅÅÃûÊ×λµÄÏîÄ¿¡£
StormµÄ¼¼ÊõÑݱä
³õ´´ÆóÒµµÄÐèÇóÓë´óÐͳÉÊìÆóÒµµÄÐèÇó½ØÈ»²»Í¬£¬¼ÓÈëTwitterºó£¬ÎÒÃǶԴËÓÐÔ½À´Ô½Éî¿ÌµÄÈÏʶ¡£ÔÚTwitterÖУ¬ÈËÃÇÏ£ÍûÄܹ»Ö±½ÓʹÓÃStorm£¬¶ø°ÑÆäËûµÄÔËÓª¹¤×÷½»¸ø±ðÈË¡£ÕâÒâζ×Å£¬ÎÒÃÇÐèÒª´òÔìÒ»¸ö´óÐ͵Ĺ²Ïí¼¯Èº£¬Äܹ»¶ÀÁ¢ÔËÐдóÁ¿µÄ³ÌÐò£¬²¢È·±£³ÌÐò¼ä²»»á³ÉΪ±Ë´ËµÄ×ÊÔ´Õù¶áÕߣ¬ÕâÒ»°ã±»³ÆÎª“¶àÓû§¼Ü¹¹”¡£
ÓÉÓÚ¹²ÏíµÄÐÔÖÊ£¬ÎÒÃÇ·¢ÏÖÈËÃÇϲ»¶»ñÈ¡×î´ó³Ì¶ÈµÄ×ÊÔ´À´ÔËÐгÌÐò£¬¶øÊµ¼ÊÉϺܶàʱºòÊǹ©´óÓÚÇó¡£ÓÚÊÇ£¬ÎÒ¿ª·¢ÁË“isolation scheduler(·ÖÀëµ÷¶È±í)”¡£Õâ¸ö»úÖÆÒ»À´¹ÄÀøÈËÃǸüÓÐЧµØÊ¹ÓÃ×ÊÔ´£¬¶þÀ´ÔÊÐíµ¥¸ö¼¯Èº¹²Ïí¸ºÔØÁ¿¡£
Ëæ×ÅTwitterƽ̨µÄ·¢Á¦£¬Ô½À´Ô½¶àµÄ¿ª·¢Õß³ÉΪStormµÄÓû§¡£³öÓÚ¶ÔϵͳÐÔÄÜ¼à¿ØÐèÇóµÄ¿¼ÂÇ£¬ÎÒÃÇÌṩÁËÏàÓ¦µÄÖ¸±êAPI£¬·½±ãÈËÃǰÑÏà¹ØÖ¸±êÊý¾ÝÓë×Ô¼ºÏ²ºÃµÄ¼à¿ØÏµÍ³½øÐÐÕûºÏ¡£
ÁíÍâÒ»¸ö½Ï´óµÄ¼¼Êõ½ø²½ÊÇ¿ª·¢ÁËTrident(Èý²æêª)£¬Ò»¸ö»ùÓÚStormµÄ΢Åú´¦ÀíAPI£¬ÌṩÁ˾«È·µÄÒ»´ÎÐÔÓïÒå´¦ÀíÄÜÁ¦£¬Ìá¸ßÁ˶ÔÐÂÓÃÀýµÄ´¦ÀíÄÜÁ¦¡£
À뿪Twitter£¬Í¶ÈëApache»³±§
ÔÚ2013Ä꣬ÎÒÀ뿪Twitter·¢Õ¹×Ô¼ºµÄ´´Òµ¹«Ë¾£¬µ«¶ÔÓÚStorm£¬ÎÒʼÖÕÊÇ¿ª·¢»·½ÚºÍ·¢Õ¹µÄÖÐÐÄ¡£½ÓÏÂÀ´µÄÊýÔÂÀÔÚÔÙ´ÎÈÏʶÒÔ¸öÈËΪÖÐÐÄģʽµÄÖÖÖÖ²»×ãºó£¬ÎÒÏëÊÇʱºò²ÉÓù²Ê¶Çý¶¯µÄ¿ª·¢Ä£Ê½ÁË¡£ÎÒÏ£ÍûStormÄܳÉΪһÏ¾ÃµÄÓлîÁ¦µÄ¹¤³Ì¡£ÕùÈ¡Apache»ù½ð»áµÄ°ïÖú£¬Í¶ÈëApacheµÄ»³±§£¬ÊǷdz£ºÏÊʵÄÑ¡Ôñ¡£ApacheÓÐ×ã¹»µÄÆ·ÅÆÓ°ÏìÁ¦£¬ÊǸöÇ¿´óµÄºÏ·¨µÄ»ù½ð»á£¬×î¹Ø¼üµÄÊÇÄÜ×î´ó³Ì¶È°ïÖúStorm¹ý¶Éµ½¹²Ê¶Çý¶¯Ä£Ê½¡£Ëæ×ÅÎÒ×÷Ϊ·¢Õ¹Æ¿¾±µÄÎÊÌâÍêÃÀ½â¾öºó£¬StormÊ»Èë·¢Õ¹µÄ¿ì³µµÀ¡£Storm¿ª·¢ÉçÇø»îÔ¾¶ÈÓëÈÕ¾ãÔö£¬Ô½¶àÔ½¶àµÄÐÂÏë·¨ÐÂ˼·±»·¢¾ò±»²ÉÄÉ£¬ÔÚÆäÍÛÍÛ×¹µØµÄÈýÄêºó£¬ÔÚ2014Äê9Ô³ÉΪ¹Ù·½µÄ¶¥¼¶ÏîÄ¿£¬Õâ¾ÍÊÇȺÖÚµÄÁ¦Á¿¡£
дÔÚ×îºó
StormµÄ³É¹¦ÈÃÎÒÉî¿ÌÈÏʶµ½£¬´òÔìÒ»¸ö³É¹¦µÄÏîÄ¿²»½ö½öÒªÄܰïÖúÈËÃǽâ¾öʵ¼ÊÎÊÌ⣬»¹±ØÐè¼æ¹ËÎĵµ£¬Íƹ㣬֧³ÖÉçÇøµÈ·½·½ÃæÃæ¡£ÌØ±ðÊÇÏîÄ¿³õÆÚ£¬ÎÒÃÇÐèÒªÓÐ×Ô¼ºµÄ´´ÔìÐÔ˼ά£¬À´È·±£ÏîÄ¿±»³É¹¦Íƹ㡣´ËÍ⣬×Ô¼ºÒ²ÐèÒª³ä·ÖÀûÓÃʱ¼ä£¬À´ÎªÈËÃǽâ´ðÒÉÄÑ£¬±àд֧³ÖÎĵµ£¬ÐγÉÁ¼ºÃµÄ½»Á÷·ÕΧ¡£×îºó£¬ÎÒÃÇÓÐʱºòÐèÒª×ö¸öÇåÐѵÄÅÔ¹ÛÕߣ¬¿´ÓÐʲô»áÖÆÔ¼ÏîÄ¿·¢Õ¹£¬ÔÚÊʵ±µÄʱºò×ö³ö¹û¶ÏµÄÑ¡Ôñ£¬¸Ã³éÀë¾Í³éÀ룬ȺÖÚµÄÁ¦Á¿×ܱÈÒ»¸öÈËÕ½¶·À´µÃ¸ßЧ³¤Ð§¡£
|