ÕªÒª£ºÈç½ñÊý¾Ý¹æÄ£±äµÃÔ½À´Ô½´ó£¬´«Í³µÄÈíÓ²¼þ¹¤¾ßÒѺÜÄÑÂú×ãÊý¾Ý´¦ÀíµÄÐèÇó¡£±¾ÎĽ«½áºÏÆû³µ×´Ì¬ÊµÊ±¼à¿ØÏµÍ³£¬½²ÊöÈçºÎÔÚ°¢ÀïÔÆÉÏʹÓÃKafkaºÍStorm´î½¨´ó¹æÄ£ÏûÏ¢·Ö·¢ºÍʵʱÊý¾ÝÁ÷´¦Àíϵͳ£¬¼°ÆäÖÐÓöµ½µÄÌôÕ½¡£
ÔÚ´óÊý¾Ýʱ´ú£¬Êý¾Ý¹æÄ£±äµÃÔ½À´Ô½´ó¡£ÓÉÓÚÊý¾ÝµÄÔö³¤ËٶȺͷǽṹ»¯µÄÌØÐÔ£¬³£ÓõÄÈíÓ²¼þ¹¤¾ßÒÑÎÞ·¨ÔÚÓû§¿ÉÈÝÈ̵Äʱ¼äÄÚ¶ÔÊý¾Ý½øÐвɼ¯¡¢¹ÜÀíºÍ´¦Àí¡£±¾ÎÄÖ÷Òª½éÉÜÈçºÎÔÚ°¢ÀïÔÆÉÏʹÓÃKafkaºÍStorm´î½¨´ó¹æÄ£ÏûÏ¢·Ö·¢ºÍʵʱÊý¾ÝÁ÷´¦Àíϵͳ£¬ÒÔ¼°Õâ¸ö¹ý³ÌÖÐÖ÷ÒªÔâÓöµÄһЩÌôÕ½¡£Êµ¼ùÖ÷ÒªÁ¢×㽨Á¢Ò»Ìׯû³µ×´Ì¬ÊµÊ±¼à¿ØÏµÍ³£¬¿ÉÒÔÔÚ°¢ÀïÔÆÉÏÁ¢¼´½øÐв¿Êð¡£
ʵʱ´óÊý¾Ý´¦ÀíÀûÆ÷¡ª¡ªStormºÍKafka
´óÊý¾Ýʱ´ú£¬Ëæ×ſɻñÈ¡Êý¾ÝµÄÇþµÀÔö¶à£¬±ÈÈç³£¼ûµÄµç×ÓÉÌÎñ¡¢ÍøÂç¡¢´«¸ÐÆ÷µÄÊý¾ÝÁ÷¡¢Ì«¿ÕÊý¾ÝµÈ£¬Êý¾Ý¹æÄ£Ò²±äµÃÔ½À´Ô½´ó£»Í¬Ê±£¬²»Í¬µÄÇþµÀÍùÍù²úÉú¸ü¶àµÄÊý¾ÝÀàÐÍ£¬ÕâЩÑÜÉúµÄÊý¾ÝÔö³¤·Ç³£Ö®¿ì£¬¹æÄ£·Ç³£Ö®´ó¡£´óÊý¾Ýʱ´ú¸÷¸ö»ú¹¹¿ÉνÊÇ×øÓµ½ðɽ£¬È»¶øÄ¿Ç°´óÊý¾Ý¼¼ÊõµÄÓ¦ÓÃÈ´ÈÔÈ»´æÔÚÖÚ¶àÌôÕ½£¬Ö÷Òª³öÏÖÔÚÊý¾ÝÊÕ¼¯¡¢´æ´¢¡¢´¦ÀíºÍ¿ÉÊÓ»¯¼¸¸ö¹ý³Ì¡£
1. Êý¾ÝÊÕ¼¯
GartnerµÄMerv Adrian¶Ô´óÊý¾ÝÓÐÕâÑùÒ»¸ö¶¨Òå:¡°´óÊý¾ÝÈó£ÓÃÓ²¼þÈí¼þ¹¤¾ßÎÞ·¨ÔÚÓû§¿ÉÈÝÈÌʱ¼äÄÚ¶ÔÊý¾Ý½øÐвɼ¯¡¢¹ÜÀíºÍ´¦Àí¡£¡±
[1] Âó¿ÏÎýÈ«ÇòÑо¿ÔºÔÚ2011Äê5ÔÂÒ²ÓÐÕâÑùÒ»¸ö¸ÅÄ¡°´óÊý¾ÝÊÇÖ¸³¬³öµäÐÍÊý¾Ý¿âÈí¼þ¹¤¾ß²É¼¯¡¢´æ´¢¡¢¹ÜÀíºÍ·ÖÎöÄÜÁ¦µÄÊý¾Ý¼¯¡£¡±
[2] ´ÓÉÏÃæµÄ¶¨Òå¿ÉÒÔ¿´³ö£¬´óÊý¾Ý×î´óµÄÌôÕ½ÔÚÓÚÈçºÎÔÚÓÐÏÞʱ¼äÄÚ¶ÔÊý¾Ý½øÐд¦ÀíºÍ·ÖÎö£¬²¢µÃµ½ÓÐÓÃÐÅÏ¢¡£
2. Êý¾Ý´¦Àí
´óÊý¾Ý´¦ÀíÖÐ×îÖøÃûµÄ¹¤¾ßÊÇHadoop£¬²»¹ýËü²¢²»ÊÇÒ»Ì×ʵʱϵͳ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬¼ÆËã»ú¹¤³ÌʦÃÇÓÖ¿ª·¢ÁËStormºÍKafka¡£Apache
StormÊÇÒ»Ì׿ªÔ´µÄ·Ö²¼Ê½ÊµÊ±¼ÆËãϵͳ¡£×îÔçÓÉNathan Marz [3] ¿ª·¢£¬ÔÚ±»TwitterÊÕ¹ººó¿ªÔ´£¬²¢ÔÚ2014Äê9ÔÂÆð³ÉΪApache¶¥¼¶¿ªÔ´ÏîÄ¿¡£Storm±»¹ã·ºÓÃÓÚ¸÷ÖÖÉÌÒµÍøÕ¾£¬°üÀ¨Twitter¡¢Yelp¡¢Groupon¡¢°Ù¶È¡¢ÌÔ±¦µÈ¡£StormµÄʹÓó¡¾°·Ç³£¹ã·º£¬ÀýÈçʵʱ·ÖÎö¡¢ÔÚÏß»úÆ÷ѧϰ¡¢Á¬Ðø¼ÆËã¡¢·Ö²¿ÊðRPC¡¢ET|µÈ¡£StormÓÐ×ŷdz£¿ìµÄ´¦ÀíËÙ¶È£¬µ¥½Úµã¿ÉÒÔ´ïµ½°ÙÍò¸öÔª×éÿÃ룬´ËÍâËü»¹¾ßÓиßÀ©Õ¹¡¢ÈÝ´í¡¢±£Ö¤Êý¾Ý´¦ÀíµÈÌØÐÔ¡£
ͼ1ÊÇStormµÄÒ»¸ö¼òµ¥µÄ¼Ü¹¹¡£

ͼ1 Storm¼Ü¹¹
Apache KafkaÒ²ÊÇÒ»¸ö¿ªÔ´µÄϵͳ£¬Ö¼ÔÚÌṩһ¸öͳһµÄ£¬¸ßÍÌÍ¡¢µÍÑӳٵķֲ¼Ê½ÏûÏ¢´¦ÀíÆ½Ì¨À´¶ÔʵʱÊý¾Ý½øÐд¦Àí¡£Ëü×îÔçÓÉLinkedIn¿ª·¢£¬¿ªÔ´ÓÚ2011Äê²¢±»¹±Ï׸øÁËApache¡£KafkaÇø±ðÓÚ´«Í³RabbitMQ¡¢Apache
ActiveMQµÈÏûϢϵͳµÄµØ·½Ö÷ÒªÔÚÓÚ£º·Ö²¼Ê½ÏµÍ³ÌØÐÔ£¬Ò×ÓÚÀ©Õ¹£»Îª·¢²¼ºÍ¶©ÔÄÌṩ¸ßÍÌÍÂÁ¿£»Ö§³Ö¶à¶©ÔÄ£¬¿ÉÒÔ×Ô¶¯Æ½ºâÏû·ÑÕߣ»¿ÉÒÔ½«ÏûÏ¢³Ö¾Ã»¯µ½´ÅÅÌ£¬¿ÉÒÔÓÃÓÚÅúÁ¿Ïû·Ñ£¬ÀýÈçETLµÈ¡£

ͼ2 Kafka¼Ü¹¹
ÔÚ°¢ÀïÔÆÉϲ¿ÊðStormºÍKafka
ÎÒÃÇÐèÒªÉè¼ÆÒ»¸öʵʱ³µÁ¾¼à¿ØÏµÍ³£¬Õâ¸öϵͳҪ½«Æû³µ¼ÝÊ»¹ý³ÌÖÐʵʱµÄλÖã¬ËÙ¶È£¬×ªËÙ£¬ÓͺÄÒÔ¼°×ªËÙ·¢Ë͵½ÏµÍ³ÖУ¬´Ó¶ø¿ÉÒÔʵʱ¼ÆËã³ö³µÁ÷Á¿ºÍÎÛȾÎïÅÅ·ÅÁ¿¡£¸ÃϵͳµÄÄ¿±êÊÇÒªÄÜͬÊÂÖ§³Ö10ÍòÁ¾³µÍ¬Ê±·¢ËÍÏûÏ¢£¬ÔÚ×î¸ß·åÄÜÂú×ã100ÍòÁ¾³µ¡£ÎªÁËʵÏÖÈç´Ë¹æÄ£µÄÏûÏ¢·Ö·¢ºÍÍÌÍ£¬ÎÒÃÇ»ùÓÚKafkaºÍStormÀ´Éè¼ÆÊµÏÖ¡£Í¬Ê±ÎªÁËÂú×ã¸ßÀ©Õ¹ÐÔ£¬ÎÒÃǽ«StormºÍKafka·Ö±ð²¿Êðµ½²»Í¬µÄ·þÎñÆ÷ÉÏ£¬Èç¹ûÐèÒª¸ü¶àµÄ¼ÆËãÄÜÁ¦£¬¿ÉÒÔËæÊ±Í¨¹ý´´½¨ÐµķþÎñÆ÷µÄ·½Ê½À´Íê³É¡£´ËÍâΪÁËÂú×ã¸ß¿ÉÓÃÐÔ£¬Ã¿Ì¨Ïàͬ¹¦ÄܵķþÎñÆ÷Ò²ÐèÒªÖÁÉÙ²¿Êð2̨£¬ÕâÑùÒ»µ©Ò»Ì¨·þÎñÆ÷³öÏÖÎÊÌ⣬ÁíÍâһ̨·þÎñÆ÷Ò²¿ÉÒÔ³ÖÐøÌṩ·þÎñ¡£
ÔÚʵÌå·þÎñÆ÷Éϲ¿ÊðStormºÍKafkaµÈÏµÍ³Éæ¼°µ½´óÁ¿·þÎñÆ÷¼¯ÈººÍÈí¼þµÄ°²×°²¿Êð£¬Õâ¸ö¹ý³ÌÐèÒª»¨·Ñ´óÁ¿Ê±¼ä£¬¶øÔƼÆËãÔòºÜºÃµÄÃÖ²¹ÁËÕâÒ»µã¡ª¡ªÌṩ¸÷ÖÖÐéÄâ·þÎñÆ÷ºÍ¾µÏñ¹¦ÄÜ£¬¼Ó¿ì»ù´¡ÉèÊ©ºÍÈí¼þµÄ²¿Êð¹ý³Ì¡£
»ùÓÚÔÆµÄ³µÁªÍø¼à¿ØÏµÍ³¼Ü¹¹

ͼ3 ³µÁªÍø¼à¿ØÏµÍ³¼Ü¹¹
ÎÒÃÇÐèÒª2̨·þÎñÆ÷À´¹¹½¨Kafka´úÀí·þÎñÆ÷£¬ÔÚStormÖл¹ÐèÒª2̨·þÎñÆ÷À´ÔËÐÐSpoutºÍ2¸öBolt£¬ÁíÍâÔÚRedis²ãÔòÐèÒª2̨·þÎñÆ÷À´²¿Ê𻺴棬ÔÙ¼ÓÉÏ2̨·þÎñÆ÷×÷ΪWeb·þÎñÆ÷¡£·þÎñÆ÷¼Ü¹¹Í¼Èçͼ4Ëùʾ¡£

ͼ4 ³µÁªÍø¼à¿ØÏµÍ³¼Ü¹¹
ÔÚ²¿Êð³µÁªÍø¼à¿ØÏµÍ³Ö®Ç°£¬ÎÒÃÇÊ×ÏÈÐèÒªÔÚÿ̨·þÎñÆ÷Éϲ¿ÊðÏàÓ¦µÄÈí¼þ£¬°üÀ¨Git¡¢Libzmq¡¢Java¡¢G++µÈ£¬ÓÃÓÚ´úÂë±àÒëºÍÏà¹ØÈí¼þ°²×°¡£¿ÉÒÔʹÓÃSSHÁ¬½Óµ½ÏàÓ¦µÄ»úÆ÷¡£Óû§ÃûÃÜÂëÔò»áÓɰ¢ÀïÔÆÒÔÓʼþ»òÕß¶ÌÏûÏ¢µÄ·½Ê½Ìṩ¡£
ÔÚ³µÁªÍøÊµÊ±¼à¿ØÏµÍ³ÖУ¬ÎÒÃÇÐèÒª²¿Êð4ÖÖ²»Í¬ÀàÐ͵ķþÎñÆ÷£¬·Ö±ðÊÇÍøÕ¾Ç°Ì¨·þÎñÆ÷¡¢Kafka·þÎñÆ÷¡¢Storm·þÎñÆ÷ºÍ»º´æ·þÎñÆ÷£¬ÒÔÂú×ãÉÏÃæÌáµ½µÄ¸ßÀ©Õ¹ÐÔµÄÒªÇó¡£ÔÚÿһÖÖÀàÐ͵ķþÎñÆ÷²¿ÊðÍê³ÉÖ®ºó£¬¶¼¿ÉÒÔͨ¹ý°¢ÀïÔÆ¾µÏñµÄ¹¦ÄÜ£¬´´½¨Ò»¸öÄÜËæÊ±Ê¹ÓõľµÏñ£¬ÕâÑùÔÚÀ©Õ¹·þÎñÆ÷µÄʱºò¾Í²»ÐèÒªÖØÐ°²×°Èí¼þ£¬Ö±½Óͨ¹ý¾µÏñ´´½¨·þÎñÆ÷¾Í¿ÉÒÔÁË¡£
ÒÔÏÂÃüÁîÐèÒªÔÚËùÓзþÎñÆ÷ÉÏÔËÐÐÒÔ°²×°ÏàÓ¦µÄÈí¼þ£º

ÒÔÏÂÃüÁî°²×°ÔÚ»º´æ·þÎñÆ÷ºÍKafka·þÎñÆ÷ÉÏ£º

ÁíÍ⣬ÎÒÃÇ»¹ÐèÒªÔÚStormµÄ·þÎñÆ÷°²×°mavenºÍleinÓÃÓÚ´úÂë±àÒ룺

ÔÚKafka·þÎñÆ÷Éϰ²×°Kafka£º

¶ÔÓÚStormºÍKafkaµÄ°²×°£¬µ½ÕâÒ»²½ÒÑ»ù±¾Íê³É£¬½ÓÏÂÈ¥ÐèÒª·Ö±ð´´½¨¾µÏñ¡£´´½¨¾µÏñµÄ·½·¨ÊÇÏÈ´´½¨°¢ÀïÔÆ¿ìÕÕ£¬È»ºóͨ¹ý½«¿ìÕÕת»»Îª¾µÏñµÄ·½Ê½Íê³É¡£¾ßÌå²½ÖèÈçÏÂ:
ÔÚ°¢ÀïÔÆµÄ¹ÜÀí½çÃæÑ¡ÔñÔÆ·þÎñÆ÷£¬ËæºóÑ¡Ôñ¸Ã·þÎñÆ÷µÄ´ÅÅÌÁÐ±í£¬µã»÷´´½¨¿ìÕÕ¡£
ÊäÈë¿ìÕÕÃû³Æ²¢È·ÈÏ¡£
°¢ÀïÔÆ»á×Ô¶¯ÎªÔÆ·þÎñÆ÷µÄϵͳÅÌ´´½¨¿ìÕÕ£¬µ±´´½¨Íê³ÉÒԺ󣬻á³öÏÖ¡°´´½¨×Ô¶¨Òå¾µÏñ¡±°´Å¥¡£
µã»÷¡°´´½¨×Ô¶¨Òå¾µÏñ¡±µÄ°´Å¥£¬°¢ÀïÔÆ¾Í»á½«Õâ¸ö¿ìÕÕת»»Îª¾µÏñ£¬¿ÉÒÔÔÚ°¢ÀïÔÆECS¹ÜÀí½çÃæµÄ×Ô¶¨Òå¾µÏñÀ¸Öп´µ½¡£

ͼ5 ×Ô¶¨ÒåµÄ¾µÏñ
½ÓÏÂÀ´£¬ÎÒÃÇͨ¹ý¾µÏñ¿ÉÒÔÖ±½Ó´´½¨ÏàͬÅäÖõÄECS·þÎñÆ÷¡£

ͼ6 ´Ó×Ô¶¨Òå¾µÏñÖд´½¨ÔÆ·þÎñÆ÷
µ±È»£¬ÔÚ×Ô¶¯À©Õ¹ÊµÏÖÉÏ£¬ÔÆ·þÎñ²¢²»ÐèÒªÓû§È¥ÊÖ¶¯Ö´ÐУ¬ÕâÀïÎÒÃÇʹÓð¢ÀïÔÆµÄECS
REST API×Ô¶¯Í¨¹ý¾µÏñ´´½¨»úÆ÷¡£¿ÉÒԲο¼ÒÔÏÂPython´úÂ룬×Ô¶¯´´½¨°¢ÀïÔÆECSÐéÄâ»ú£º

»ùÓÚStormºÍKafkaµÄ³µÁ¾ÐÅϢʵʱ¼à¿ØÏµÍ³´òÔì
½ÓÏÂÀ´×öµÄ¾ÍÊǽ«³µÁ¾ÐÅϢʵʱ¼à¿ØÏµÍ³²¿Êðµ½ÏµÍ³ÖС£Õâ¸öϵͳÑÝʾÁËÈçºÎ±àдһ¸öStormµÄTopology£¬´ÓKafkaÏûϢϵͳÖн«ÐÅÏ¢¶ÁÈ¡³öÀ´¡£ÎÒÃÇʹÓÃKafkaµÄ¿Í»§¶ËÄ£Äâ´ÓÊÀ½ç¸÷µØ·¢ËͳµÁ¾ÊµÊ±ÐÅÏ¢¸øKafka¼¯Èº£¬È»ºóStorm
Topology»á°ÑÕâЩÏûϢͨ¹ýBolts½«×ø±êת»»ÎªJson¶ÔÏ󣬲¢ÇÒʹÓÃGeoJSONÔÚBing MapÉÏÏÔʾ³µÁ¾µÄʵʱλÖá¢Î¶ȡ¢×ªËÙÒÔ¼°ËٶȵȵÈÐÅÏ¢¡£Topology»¹»á½«ÐÅϢдµ½Redis»º´æÖУ¬È»ºóNode.jsͨ¹ýsocket.io¶ÁÈ¡RedisÖеÄÐÅÏ¢£¬²¢ÇÒʹÓÃd3jsÏÔʾÔÚÒ³ÃæÉÏ¡£
Ê×ÏÈ£¬ÎÒÃÇÐèÒª±àдKafka Éú²úÕߵIJ¿·Ö´úÂ룬Ö÷ÒªÊÇÄ£Äâ¶ÁÈ¡Æû³µµÄʵʱÊý¾Ý²¢ÏòKafka¼¯Èº½øÐз¢ËÍ£¬ÎÒÃÇʵÏÖÁËÒ»¸öKafkaCarDataProducerÀ࣬ͨ¹ýÅäÖÃProducerConfigÀ´´´½¨Ò»¸öProducer¶ÔÏóÀ´·¢ËÍÊý¾Ý¡£Ëü¿ÉÒÔÓÃÀ´Á¬½Óµ½Zookeeper£¬»òÕßÖ±½ÓÊÇKafka
´úÀí¡£ÀýÈ磺kafkaclient.cloudapp.net:2181»òÕß0:kafkaclient.cloudapp.net:9092¡£´úÂëÖÐÎÒÃǸù¾Ý²»Í¬µÄÁ¬½Ó×Ö·û´®ÉèÖò»Í¬ÅäÖá£Î±´úÂëÈçÏ£º

È»ºó¾Í¿ÉÒÔÖ±½Óͨ¹ýÏÂÃæ´úÂëÀ´·¢ËÍÏûÏ¢£º

½ÓÏÂÀ´ÎÒÃÇÐèÒª±àд3¸öStormÀ࣬Ê×ÏÈÊÇ´´½¨StormµÄTopology£¬Õâ¸öÀà½ÐKafkaCarTopology£¬ÎÒÃÇ´´½¨ÁËÒ»¸ö½ÐcarµÄtopic£¬È»ºó¶¨Òå±¾»úÒ»¸öhostsºÍZookeeper
hosts£¬×îºó´´½¨Ò»¸öSpout£¬½Ð×öKafkaSpout£¬È»ºóÌí¼ÓParseCarDataBoltÁ¬½Óµ½KafkaSout£¬ÔÙ´´½¨Ò»¸öRedisCarBolt£¬ÓÃÓÚ½«½á¹ûдÈëRedis»º´æ¡£×îºó¸ù¾Ý²ÎÊý´´½¨3¸öWorker£¬Ìá½»Storm
Topology¡£

ÔÚÕâ¸öÍØÆË½á¹¹ÖУ¬ÎÒÃÇÓÐ2¸öBoltÓÃÓÚÊý¾ÝµÄ´¦Àí£¬µÚÒ»¸ö½ÐParserCarDataBolt£¬Õâ¸öBoltÖ÷Òª½«Kafka´«³öµÄÏûϢת»»ÎªJson¸ñʽ£¬Ëü¼Ì³ÐBaseBasicBolt£¬ÔÚexecuteº¯ÊýÖÐͨ¹ýcollectorÌá½»Êý¾Ý£¬Í¬Ê±ÖØÔØÁËdeclareOutputFieldsº¯Êý£¬Í¨ÖªÏÂÒ»¸öBoltµÄÊý¾Ý¸ñʽ¡£´úÂëÈçÏÂ:

Êý¾Ý»á±»Ð´ÈëRedisCarBolt£¬ÔÙдÈëµ½Redis»º´æÖС£Ëü¼Ì³Ð×ÔBaseRichBolt£¬ÐèÒªÖØÔØprepareºÍexcute·½·¨À´´¦ÀíÏûÏ¢Ôª×é¡£´ËÍ⻹ÐèÒªÖØÔØprepareºÍcleanupº¯Êý£¬¼¸¸ö¹Ø¼üµÄº¯ÊýÈçÏ£º

×îºóÎÒÃÇ»¹ÐèÒª±àдһЩNode.jsµÄ´úÂ룬±£Ö¤ÔÚÒ³ÃæÉÏͨ¹ýsocket.io½øÐÐͨѶ£¬ÊµÊ±½«×îÖÕÊý¾Ý´ÓRedisÀïÃæ¶ÁÈ¡³öÀ´£¬²¢ÔÚBingMapÉÏÏÔʾ¡£

µ½´ËΪֹ£¬Ò»¸ö¼òµ¥µÄ³µÁ¾ÐÅϢʵʱ¼à¿ØÏµÍ³¾ÍʵÏÖÁË£¬ÎÒÃÇͨ¹ýbash½Å±¾½øÐбàÒ룬²¢°²×°µ½ÏàÓ¦µÄ·þÎñÆ÷ÉÏ£¬±ÈÈçÏÂÁдúÂëÐèÒª±»°²×°ÔÚStormµÄ·þÎñÆ÷ÉÏ£º

ÓÐÒ»µãÐèҪעÒâµÄÊÇ£¬ÓÉÓÚÔÚ±àÒë¹ý³ÌÖÐÐèÒª×Ô¶¯ÏÂÔØStorm¿â£¬ÔÚ°¢ÀïÔÆµÄ¹úÄÚ»ú·¿µÄÐéÄâ»úºÜÓпÉÄÜÐèÒªÉèÖôúÀí½øÐС£ÉèÖôúÀíµÄ·½·¨Ò²ºÜ¼òµ¥£¬Í¨¹ý¶ÔleinÃüÁîÔö¼ÓÒÔϲÎÊý¾Í¿ÉÒÔÁË£ºhttp_proxy=http://URL:PORT
½Ó×ÅÎÒÃÇÔÚÍøÒ³ÉÏ·ÃÎÊhttp://webhostname»òÕßÔËÐÐnode.jsµÄ·þÎñÆ÷£¬¾Í»á¿´µ½ÏÂÃæµÄÍøÒ³£¬Í¬Ê±·¢ÏÖÍøÒ³½«Í¬²½Ë¢ÐÂÆû³µµÄʵʱλÖá¢ËÙ¶È¡¢×ªËٵȡ£

ͼ7 ³µÁªÍø¼à¿ØÏµÍ³ÑÝÊ¾Ò³Ãæ
¶Ô³µÁªÍø¼à¿ØÏµÍ³µÄÐÔÄܲâÊÔ
½ÓÏÂÀ´ÎÒÃǶÔÕâ¸öϵͳ½øÐÐÁËÒ»¸ö¼òµ¥µÄÍÌÍÂÁ¿²âÊÔ¡£ÎÒÃÇÖ»ÓÐ1¸öTopic£¬Ê¹ÓÃ5¸öpartition¡¢3¸öworker¡¢1¸öSpoutºÍ2¸öBolt£¬ÔÚһ̨2ºË2GBµÄECSÉÏÔËÐС£ÎÒÃÇʹÓÃÁËÁíÍâ4̨¿Í»§¶Ë£¬Ã¿¸ö¿Í»§¶ËÓÐ4ºË8GÄڴ棬·Ö±ðÆô¶¯40¸öÏ̲߳»¶ÏÏòÕâ¸öϵͳʵʱ·¢ËÍÆû³µÐÅÏ¢£¬Ä£Äâ160̨Æû³µ·¢Ë͵ÄÇé¿ö£¬ÆäÏûÏ¢·¢ËÍÊýÁ¿ºÍCPUÕ¼ÓÃÂÊÇé¿öÈçͼ8Ëùʾ¡£

ͼ8 ³µÁªÍø¼à¿ØÏµÍ³ÐÔÄÜ·ÖÎö
´Óͼ8ÖпÉÒÔ¿´³ö£¬Æ½¾ùÿÁ¾Æû³µ¿Í»§¶Ë»áÄ£ÄâÿÃë¸øÏµÍ³·¢ËÍÁË1000ÌõÏûÏ¢£¬×ܵÄÍÌÍÂÁ¿´ïµ½16ÍòÌõ×óÓÒ£¬´Ëʱƽ¾ùµÄCPUÕ¼ÓÃÂÊ´óÔ¼ÔÚ30%×óÓÒ¡£Èç¹ûϵͳÊÇÍêÈ«ÏßÐԵģ¬ÔÚϵͳCPUÕ¼ÓÃÂÊ´ïµ½90%µÄÇé¿öÏ£¬´óÔ¼ÄÜ´¦Àí48ÍòÌõÏûÏ¢¡£²»¹ýʵ¼ÊÇé¿öÖУ¬ÔÚ°¢ÀïÔÆECSÉÏ£¬È´·¢ÏÖCPU´ïµ½50%ÒԺ󣬾Ͳ»ÔÙÉÏÉý£¬¶ø¿Í»§¶Ë·¢ËÍÏûÏ¢µÄÑÓʱҲÖð²½Ôö¼Ó¡£
¾¹ý·ÖÎöÒÔºó·¢ÏÖ£¬ÓÉÓÚECSµÄ´ÅÅÌÐÔÄÜÎÞ·¨ºÍÎïÀí»úµÄSSD´ÅÅÌÏà±È£¬ËùÒÔÔÚKafkaÏûÏ¢´óÁ¿Ð´Èë´ÅÅ̵Ĺý³ÌÖУ¬ÍÌÍÂÁ¿Ï½µ£¬´ÅÅ̶Áд¸ºµ£±äµÃ·Ç³£´ó¡£ÕâʱÎÒÃÇÔö¼ÓÁËKafkaµÄBrokerºÍStormµÄSpoutµÄÊýÁ¿£¬½«ÏûÏ¢·Ö²¼Ê½µØ·Ö·¢µ½¶ą̀ECSÉÏ£¬´Ó¶øÊµÏÖÁËÏûÏ¢ÍÌÍÂÁ¿µÄÏßÐÔÔö¼Ó¡£
ÔÚÕâ¸öϵͳÖУ¬ÎÒÃDz»ÍƼöʹÓôóºËºÍ´óÄÚ´æµÄ»úÆ÷£¬¶øÍƼöʹÓöą̀2ºË2GBµÄ·þÎñÆ÷·Ö²¼Ê½µØ´¦ÀíÏûÏ¢¡£ÕâÒ²ÊÇÔÆ¼ÆËã´¦Àí´óÊý¾ÝµÄÔÔòËùÔÚ£¬Ê¹ÓúáÏòÀ©Õ¹¶ø²»ÓÃ×ÝÏòÀ©Õ¹¡£
½áÂÛ
ÖÁ´ËÎÒÃǽéÉÜÁËÀûÓÃStormºÍKafkaʵÏÖ´óÊý¾ÝµÄʵʱ´¦Àí£¬²¢ÇÒ½éÉÜÁËÈçºÎÔÚÔÆÉÏͨ¹ý¾µÏñ¿ìËٵش´½¨ÕâÌ×ϵͳ¡£´ËÍ⣬ÎÒÃÇ»¹½éÉÜÁËÈçºÎ¶ÔStorm¡¢Kafka¡¢RedisÒÔ¼°Node.js¿ª·¢³öÒ»¸öʵʱµÄ³µÁ¾ÐÅÏ¢¼à¿ØÏµÍ³¡£Õâ¸öϵͳÄܹ»ÊµÏÖ¸ßÐÔÄÜ¡¢´óÍÌÍÂÁ¿ºÍ¸ß²¢·¢¡£µ±È»£¬Ëæ×Å´óÊý¾ÝµÄ¿ìËÙ·¢Õ¹£¬ÎÒÃÇÏàÐÅ»¹»áÓÐÔ½À´Ô½¶àºÃµÄ¹¤¾ßºÍ²úÆ·³öÏÖÔÚÊг¡ÉÏ£¬µ½ÄÇʱÎÒÃÇ´Ó´óÊý¾ÝÖлñÈ¡ÓÐЧµÄÐÅÏ¢½«»á±äµÃ¸ü¼ÓÈÝÒ׺ͱã½Ý¡£ÓÐÁËÔÆ¼ÆËãµÄ°ïÖú£¬¿ª·¢µÄÖÜÆÚÒ²»á±äµÃÔ½À´Ô½¶Ì¡£
|