
Ðí¶à·Ö²¼Ê½¼ÆËãϵͳ¶¼¿ÉÒÔʵʱ»ò½Ó½üʵʱµØ´¦Àí´óÊý¾ÝÁ÷¡£±¾ÎĽ«¶ÔÈýÖÖApache¿ò¼Ü·Ö±ð½øÐмòµ¥½éÉÜ£¬È»ºó³¢ÊÔ¿ìËÙ¡¢¸ß¶È¸ÅÊöÆäÒìͬ¡£
Apache Storm
ÔÚStormÖУ¬ÏÈÒªÉè¼ÆÒ»¸öÓÃÓÚʵʱ¼ÆËãµÄͼ״½á¹¹£¬ÎÒÃdzÆÖ®ÎªÍØÆË£¨topology£©¡£Õâ¸öÍØÆË½«»á±»Ìá½»¸ø¼¯Èº£¬Óɼ¯ÈºÖеÄÖ÷¿Ø½Úµã£¨master
node£©·Ö·¢´úÂ룬½«ÈÎÎñ·ÖÅ䏸¹¤×÷½Úµã£¨worker node£©Ö´ÐС£Ò»¸öÍØÆËÖаüÀ¨spoutºÍboltÁ½ÖÖ½ÇÉ«£¬ÆäÖÐspout·¢ËÍÏûÏ¢£¬¸ºÔð½«Êý¾ÝÁ÷ÒÔtupleÔª×éµÄÐÎʽ·¢ËͳöÈ¥£»¶øboltÔò¸ºÔðת»»ÕâЩÊý¾ÝÁ÷£¬ÔÚboltÖпÉÒÔÍê³É¼ÆËã¡¢¹ýÂ˵ȲÙ×÷£¬bolt×ÔÉíÒ²¿ÉÒÔËæ»ú½«Êý¾Ý·¢Ë͸øÆäËûbolt¡£ÓÉspout·¢Éä³öµÄtupleÊDz»¿É±äÊý×飬¶ÔӦ׏̶¨µÄ¼üÖµ¶Ô¡£

Apache Spark
Spark StreamingÊǺËÐÄSpark APIµÄÒ»¸öÀ©Õ¹£¬Ëü²¢²»»áÏñStormÄÇÑùÒ»´ÎÒ»¸öµØ´¦ÀíÊý¾ÝÁ÷£¬¶øÊÇÔÚ´¦Àíǰ°´Ê±¼ä¼ä¸ôÔ¤ÏȽ«ÆäÇзÖΪһ¶ÎÒ»¶ÎµÄÅú´¦Àí×÷Òµ¡£SparkÕë¶Ô³ÖÐøÐÔÊý¾ÝÁ÷µÄ³éÏó³ÆÎªDStream£¨DiscretizedStream£©£¬Ò»¸öDStreamÊÇÒ»¸ö΢Åú´¦Àí£¨micro-batching£©µÄRDD£¨µ¯ÐÔ·Ö²¼Ê½Êý¾Ý¼¯£©£»¶øRDDÔòÊÇÒ»ÖÖ·Ö²¼Ê½Êý¾Ý¼¯£¬Äܹ»ÒÔÁ½ÖÖ·½Ê½²¢ÐÐÔË×÷£¬·Ö±ðÊÇÈÎÒ⺯ÊýºÍ»¬¶¯´°¿ÚÊý¾ÝµÄת»»¡£

Apache Samza
Samza´¦ÀíÊý¾ÝÁ÷ʱ£¬»á·Ö±ð°´´Î´¦ÀíÿÌõÊÕµ½µÄÏûÏ¢¡£SamzaµÄÁ÷µ¥Î»¼È²»ÊÇÔª×飬Ҳ²»ÊÇDstream£¬¶øÊÇÒ»ÌõÌõÏûÏ¢¡£ÔÚSamzaÖУ¬Êý¾ÝÁ÷±»ÇзֿªÀ´£¬Ã¿¸ö²¿·Ö¶¼ÓÉÒ»×éÖ»¶ÁÏûÏ¢µÄÓÐÐòÊýÁй¹³É£¬¶øÕâЩÏûϢÿÌõ¶¼ÓÐÒ»¸öÌØ¶¨µÄID£¨offset£©¡£¸Ãϵͳ»¹Ö§³ÖÅú´¦Àí£¬¼´Öð´Î´¦Àíͬһ¸öÊý¾ÝÁ÷·ÖÇøµÄ¶àÌõÏûÏ¢¡£SamzaµÄÖ´ÐÐÓëÊý¾ÝÁ÷Ä£¿é¶¼Êǿɲå°ÎʽµÄ£¬¾¡¹ÜSamzaµÄÌØÉ«ÊÇÒÀÀµHadoopµÄYarn£¨ÁíÒ»ÖÖ×ÊÔ´µ÷¶ÈÆ÷£©ºÍApache
Kafka¡£

¹²Í¬Ö®´¦
ÒÔÉÏÈýÖÖʵʱ¼ÆËãϵͳ¶¼ÊÇ¿ªÔ´µÄ·Ö²¼Ê½ÏµÍ³£¬¾ßÓеÍÑÓ³Ù¡¢¿ÉÀ©Õ¹ºÍÈÝ´íÐÔÖî¶àÓŵ㣬ËüÃǵĹ²Í¬ÌØÉ«ÔÚÓÚ£ºÔÊÐíÄãÔÚÔËÐÐÊý¾ÝÁ÷´úÂëʱ£¬½«ÈÎÎñ·ÖÅ䵽һϵÁоßÓÐÈÝ´íÄÜÁ¦µÄ¼ÆËã»úÉϲ¢ÐÐÔËÐС£´ËÍ⣬ËüÃǶ¼ÌṩÁ˼òµ¥µÄAPIÀ´¼ò»¯µ×²ãʵÏֵĸ´Ôӳ̶ȡ£
ÈýÖÖ¿ò¼ÜµÄÊõÓïÃû´Ê²»Í¬£¬µ«ÊÇÆä´ú±íµÄ¸ÅÄîÊ®·ÖÏàËÆ£º

¶Ô±Èͼ
ÏÂÃæ±í¸ñ×ܽáÁËһЩ²»Í¬Ö®´¦£º

Êý¾Ý´«µÝÐÎʽ·ÖΪÈý´óÀࣺ
×î¶àÒ»´Î£¨At-most-once£©£ºÏûÏ¢¿ÉÄܻᶪʧ£¬Õâͨ³£ÊÇ×î²»ÀíÏëµÄ½á¹û¡£
×îÉÙÒ»´Î£¨At-least-once£©£ºÏûÏ¢¿ÉÄÜ»áÔٴη¢ËÍ£¨Ã»ÓжªÊ§µÄÇé¿ö£¬µ«ÊÇ»á²úÉúÈßÓࣩ¡£ÔÚÐí¶àÓÃÀýÖÐÒѾ×ã¹»¡£
Ç¡ºÃÒ»´Î£¨Exactly-once£©£ºÃ¿ÌõÏûÏ¢¶¼±»·¢Ë͹ýÒ»´ÎÇÒ½ö½öÒ»´Î£¨Ã»ÓжªÊ§£¬Ã»ÓÐÈßÓࣩ¡£ÕâÊÇ×î¼ÑÇé¿ö£¬¾¡¹ÜºÜÄѱ£Ö¤ÔÚËùÓÐÓÃÀýÖж¼ÊµÏÖ¡£
ÁíÒ»¸ö·½ÃæÊÇ״̬¹ÜÀí£º¶Ô״̬µÄ´æ´¢Óв»Í¬µÄ²ßÂÔ£¬Spark Streaming½«Êý¾ÝдÈë·Ö²¼Ê½ÎļþϵͳÖУ¨ÀýÈçHDFS£©£»SamzaʹÓÃǶÈëʽ¼üÖµ´æ´¢£»¶øÔÚStormÖУ¬»òÕß½«×´Ì¬¹ÜÀí¹ö¶¯ÖÁÓ¦ÓòãÃæ£¬»òÕßʹÓøü¸ß²ãÃæµÄ³éÏóTrident¡£
ÓÃÀý
ÕâÈýÖÖ¿ò¼ÜÔÚ´¦ÀíÁ¬ÐøÐԵĴóÁ¿ÊµÊ±Êý¾ÝʱµÄ±íÏÖ¾ù³öÉ«¶ø¸ßЧ£¬ÄÇôʹÓÃÄÄÒ»ÖÖÄØ£¿Ñ¡Ôñʱ²¢Ã»ÓÐʲôӲÐԹ涨£¬×î¶à¾ÍÊǼ¸¸öÖ¸µ¼·½Õë¡£
Èç¹ûÄãÏëÒªµÄÊÇÒ»¸öÔÊÐíÔöÁ¿¼ÆËãµÄ¸ßËÙʼþ´¦Àíϵͳ£¬Storm»áÊÇ×î¼ÑÑ¡Ôñ¡£Ëü¿ÉÒÔÓ¦¶ÔÄãÔÚ¿Í»§¶ËµÈ´ý½á¹ûµÄͬʱ£¬½øÒ»²½½øÐзֲ¼Ê½¼ÆËãµÄÐèÇó£¬Ê¹ÓÿªÏä¼´Óõķֲ¼Ê½RPC£¨DRPC£©¾Í¿ÉÒÔÁË¡£×îºóµ«Í¬ÑùÖØÒªµÄÔÒò£ºStormʹÓÃApache
Thrift£¬Äã¿ÉÒÔÓÃÈκαà³ÌÓïÑÔÀ´±àÐ´ÍØÆË½á¹¹¡£Èç¹ûÄãÐèҪ״̬³ÖÐø£¬Í¬Ê±/»òÕߴﵽǡºÃÒ»´ÎµÄ´«µÝЧ¹û£¬Ó¦µ±¿´¿´¸ü¸ß²ãÃæµÄTrdent
API£¬ËüͬʱҲÌṩÁË΢Åú´¦ÀíµÄ·½Ê½¡£
ʹÓÃStormµÄ¹«Ë¾ÓУºTwitter£¬ÑÅ»¢£¬Spotify»¹ÓÐThe
Weather ChannelµÈ¡£
˵µ½Î¢Åú´¦Àí£¬Èç¹ûÄã±ØÐëÓÐ״̬µÄ¼ÆË㣬ǡºÃÒ»´ÎµÄµÝËÍ£¬²¢ÇÒ²»½éÒâ¸ßÑӳٵϰ£¬ÄÇô¿ÉÒÔ¿¼ÂÇSpark Streaming£¬ÌرðÈç¹ûÄ㻹¼Æ»®Í¼ÐβÙ×÷¡¢»úÆ÷ѧϰ»òÕß·ÃÎÊSQLµÄ»°£¬Apache
SparkµÄstackÔÊÐíÄ㽫һЩlibraryÓëÊý¾ÝÁ÷Ïà½áºÏ£¨Spark SQL£¬Mllib£¬GraphX£©£¬ËüÃÇ»áÌṩ±ã½ÝµÄÒ»Ì廯±à³ÌÄ£ÐÍ¡£ÓÈÆäÊÇÊý¾ÝÁ÷Ëã·¨£¨ÀýÈ磺K¾ùÖµÁ÷ýÌ壩ÔÊÐíSparkʵʱ¾ö²ßµÄ´Ù½ø¡£
ʹÓÃSparkµÄ¹«Ë¾ÓУºÑÇÂíÑ·£¬ÑÅ»¢£¬NASA JPL£¬eBay»¹Óаٶȵȡ£
Èç¹ûÄãÓдóÁ¿µÄ״̬ÐèÒª´¦Àí£¬±ÈÈçÿ¸ö·ÖÇø¶¼ÓÐÐí¶àÊ®ÒÚλԪ×飬ÄÇô¿ÉÒÔÑ¡ÔñSamza¡£ÓÉÓÚSamza½«´æ´¢Óë´¦Àí·ÅÔÚͬһ̨»úÆ÷ÉÏ£¬ÔÚ±£³Ö´¦Àí¸ßЧµÄͬʱ£¬»¹²»»á¶îÍâÔØÈëÄÚ´æ¡£ÕâÖÖ¿ò¼ÜÌṩÁËÁé»îµÄ¿É²å°ÎAPI£ºËüµÄĬÈÏexecution¡¢ÏûÏ¢·¢ËÍ»¹Óд洢ÒýÇæ²Ù×÷¶¼¿ÉÒÔ¸ù¾ÝÄãµÄÑ¡ÔñËæÊ±½øÐÐÌæ»»¡£´ËÍ⣬Èç¹ûÄãÓдóÁ¿µÄÊý¾ÝÁ÷´¦Àí½×¶Î£¬ÇÒ·Ö±ðÀ´×Ô²»Í¬´úÂë¿âµÄ²»Í¬ÍŶӣ¬ÄÇôSamzaµÄϸ¿ÅÁ£¹¤×÷ÌØÐÔ»áÓÈÆäÊÊÓã¬ÒòΪËüÃÇ¿ÉÒÔÔÚÓ°Ïì×îС»¯µÄǰÌáÏÂÍê³ÉÔö¼Ó»òÒÆ³ýµÄ¹¤×÷¡£
ʹÓÃSamzaµÄ¹«Ë¾ÓУºLinkedIn£¬Intuit£¬Metamarkets£¬Quantiply£¬FortscaleµÈ¡£
½áÂÛ
±¾ÎÄÖÐÎÒÃÇÖ»¶ÔÕâÈýÖÖApache¿ò¼Ü½øÐÐÁ˼òµ¥µÄÁ˽⣬²¢Î´¸²¸Çµ½ÕâЩ¿ò¼ÜÖдóÁ¿µÄ¹¦ÄÜÓë¸ü¶àϸ΢µÄ²îÒ졣ͬʱ£¬ÎÄÖÐÕâÈýÖÖ¿ò¼Ü¶Ô±ÈÒ²ÊÇÊܵ½ÏÞÖÆµÄ£¬ÒòΪÕâЩ¿ò¼Ü¶¼ÔÚÒ»Ö±²»¶ÏµÄ·¢Õ¹£¬ÕâÒ»µãÊÇÎÒÃÇÓ¦µ±Àμǵġ£
|