´óÊý¾Ýʵʱ´¦Àí£º°Ù·Öµãʵʱ¼ÆËã¼Ü¹¹ºÍËã·¨
ÔÎÄ£ºhttp://www.hello-code.com/blog/architecture/201403/2952.html
µ±½ñʱ´ú£¬Êý¾Ý²»ÔÙ°º¹ó£¬µ«´Óº£Á¿Êý¾ÝÖлñÈ¡¼ÛÖµ±äµÃ°º¹ó£¬¶øÒª¼°Ê±»ñÈ¡¼ÛÖµÔò¸ü¼Ó°º¹ó£¬ÕâÕýÊÇ´óÊý¾Ýʵʱ¼ÆËãÔ½À´Ô½Á÷ÐеÄÔÒò¡£ÒÔ°Ù ·Öµã¹«Ë¾ÎªÀý£¬Ôڸ߷åÆÚÿÃëÖÓ»áÓнüÍòHTTPÇëÇó·¢Ë͵½°Ù·Öµã·þÎñÆ÷ÉÏ£¬ÕâЩÇëÇó°üº¬ÁËÓû§ÐÐΪºÍ¸öÐÔ»¯ÍƼöÇëÇó¡£ÈçºÎ´ÓÕâЩÊý¾ÝÖпìËÙÍÚ¾òÓû§ÐËȤƫ ºÃ²¢×÷³öЧ¹û²»´íµÄÍƼöÄØ£¿ÕâÊÇ°Ù·ÖµãÍƼöÒýÇæÃæÁÙµÄÊ×ÒªÎÊÌâ¡£±¾ÎĽ«´Óϵͳ¼Ü¹¹ºÍËã·¨Á½·½ÃæÈ«½éÉܰٷֵ㹫˾ÔÚʵʱ¼ÆËã·½ÃæµÄ¾ÑéºÍÐĵÃÌå»á£¬¹©¶ÁÕ߲Π¿¼¡£
a) ʵʱ¼ÆËã¼Ü¹¹
ͼ 1°Ù·Öµã´óÊý¾Ýƽ̨ÔÀíʾÒâͼ
¹¤ÓûÉÆÆäÊ£¬±ØÏÈÀûÆäÆ÷¡£Ò»¸öÎȶ¨¿É¿¿ÇÒ¸ßЧµÄµ×²ã¼Ü¹¹ÊÇʵʱ¼ÆËãµÄ±ØÒª»ù´¡¡£Í¼ 1¸ø³öÁË°Ù·ÖµãÊý¾Ý´óƽ̨µÄ×ÜÌå¿ò¼Ü£¬ÈçͼËùʾ£¬´óÊý¾Ýƽ̨°üº¬Êý¾Ý´æ´¢ºÍÊý¾Ý´¦ÀíÁ½¸ö²ã´Î¡£
´æ´¢·þÎñ²ãÌṩÁËÊý¾Ý´¦Àí²ãÐèÒªµÄ¸÷Àà·Ö²¼Ê½´æ´¢£¬°üÀ¨·Ö²¼Ê½Îļþϵͳ£¨Hadoop HDFS£©¡¢·Ö²¼Ê½SQLÊý¾Ý¿â£¨MySQL£©¡¢·Ö²¼Ê½ NoSQLÊý¾Ý¿â£¨Redis¡¢MongoDB¡¢HBase£©¡¢·Ö²¼Ê½ÏûÏ¢¶ÓÁУ¨Apache Kafka£©¡¢·Ö²¼Ê½ËÑË÷ÒýÇ棨Apache Solr£© ÒÔ¼°±Ø²»¿ÉÉÙµÄApache Zookeeper¡£
Êý¾Ý´¦Àí²ãÓÉËĸö²¿·Ö×é³É¡£ÆäÖÐWebÓ¦ÓÃÔÆ°üº¬ÁËËùÓÐÖ±½ÓÃæ¶ÔÓû§µÄWeb·þÎñ£¬Ã¿¸öWebÓ¦Óö¼»á²úÉúWebÈÕÖ¾ÒÔ¼°ÆäËûʵʱÊý¾Ý£¬ÕâЩÊý¾ÝÒ» ·½Ãæ»á¼°Ê±½»ÓÉʵʱ¼ÆËã¿ò¼Ü½øÐд¦Àí£¬ÁíÒ»·½ÃæÒ²»á¶¨ÆÚͬ²½ÖÁÀëÏß¼ÆËã¿ò¼Ü£»ÊµÊ±¼ÆËã¿ò¼Ü»á´¦Àí½ÓÊÕµ½µÄʵʱÊý¾Ý£¬²¢½«´¦Àí½á¹ûÊä³öµ½Êý¾Ý²éѯ¿ò¼Ü»òÕßÀë Ïß¼ÆËã¿ò¼Ü£»ÀëÏß¼ÆËã¿ò¼ÜÔò¶¨ÆÚ¶ÔÊý¾Ý½øÐд¦Àí£¬²¢½«´¦Àí½á¹ûÊä³öÖÁÊý¾Ý²éѯ¿ò¼Ü£»Êý¾Ý²éѯ¿ò¼ÜÌṩÁËһϵÁÐÓ¦Óýӿڹ©³ÌÐòµ÷È¡ÐèÒªµÄ¸÷ÏîÊý¾Ý£¬Í¬Ê±Ìṩ ÁËһЩWeb¹¤¾ß°ïÖúÒµÎñÈËÔ±¶Ôº£Á¿Êý¾Ý½øÐÐͳ¼Æ¡¢»ã×ܺͷÖÎö¡£
ÔÚ°Ù·Öµã´óÊý¾Ýƽ̨ÖУ¬Óëʵʱ¼ÆËãÃÜÇÐÏà¹ØµÄÓÐʵʱ¼ÆËã¿ò¼ÜºÍÊý¾Ý²éѯ¿ò¼Ü£¬Õⲿ·ÖµÄ×é¼þ¼Ü¹¹ºÍÊý¾ÝÁ÷Èçͼ 2Ëùʾ¡£
ͼ 2ʵʱ¼ÆËã¿ò¼ÜºÍÊý¾Ý²éѯ¿ò¼ÜʾÒâ
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Êý¾Ý²É¼¯·þÎñ»á½«ÊÕ¼¯µ½µÄʵʱÊý¾ÝÍÆË͵½ÏûÏ¢¶ÓÁÐKafkaÖУ»KafkaÖеÄÊý¾Ý»á±»Á½¸ö´¦Àíƽ̨ BDM CEP£¨Big Data Management Complex Event Processing£©ºÍStormÏû·Ñ²¢´¦Àí¡£StormÊǵ± ϱȽÏÁ÷ÐеĿªÔ´Á÷´¦Àí¿ò¼Ü£¬°Ù·Öµã¹«Ë¾ÔÚ2013ÄêÖпªÊ¼Ê¹ÓÃStorm½øÐÐÊý¾ÝÇåÏ´¡¢Í³¼ÆºÍÒ»²¿·Ö·ÖÎöÈÎÎñ¡£ÔÚÒýÈëStorm֮ǰ£¬°Ù·ÖµãËùÓеÄʵʱ ¼ÆË㶼ÊÇ»ùÓÚBDM CEP½øÐеģ¬ËüÊÇÎÒÃÇ»ùÓÚÖмä¼þICE¿ª·¢µÄÒ»Ì×Á÷´¦Àíƽ̨¡£BDM CEP°üº¬ÓÐËÄÀà×é¼þ£ºdispatcher¸ºÔð´Ó KafkaÖжÁÈ¡ÏûÏ¢£¬¸ù¾ÝÏûÏ¢ÄÚÈÝ·Ö·¢¸øÏàÓ¦µÄworker£»worker¸´ÔÓ´¦Àí½ÓÊÕµ½µÄÏûÏ¢£¬²¢½«´¦Àí½á¹û´«µÝ¸øÆäËûworker»òÕßÊä³öµ½¸÷Àà´æ ´¢·þÎñÖУ»config¸ºÔðά»¤dispatcherºÍworkerµÄ½»»¥¹ØϵºÍÅäÖÃÐÅÏ¢£¬²¢ÔÚ½»»¥¹Øϵ»òÅäÖøüÐÂʱ¼°Ê±Í¨ÖªdispatcherºÍ worker£»monitor¸ºÔð¼à¿ØdispatcherºÍworkerµÄÔËÐÐÇé¿ö£¬°Ñ¼à¿ØÐÅÏ¢Ìá½»¸øGanglia£¬monitor»¹¸ºÔðϵͳÒ쳣ʱ µÄ±¨¾¯£¬ÒÔ¼°dispatcherºÍworker·¢Éú¹ÊÕÏʱ½øÐÐÖØÆôºÍǨÒÆ¡£Êý¾Ý²éѯ¿ò¼ÜÓÉͼÖÐ×îϲãµÄÈý¸ö×é¼þ×é³É£¬ÆäÖÐ BDM DS£¨Data Source£©·â×°ÁËһϵÁеÄÊý¾Ý²éѯÂß¼²¢ÒÔREST APIºÍICE·þÎñµÄÐÎʽ¹©¸÷ÖÖÓ¦Óõ÷ Óã»BDM OLAP£¨Online Analytical Processing£©ÌṩÁËʵʱ²éѯÓû§ÐÐΪºÍ±êÇ©Ã÷ϸ£¬ÒÔ¼°½üʵʱµÄÓû§¶àά¶Èͳ¼Æ¡¢»ã ×ܺͷÖÎö¹¦ÄÜ£¬ÕâЩ¹¦ÄÜÊÇÒÔREST APIºÍWebÓ¦Ó÷½Ê½ÌṩµÄ£»BDM SearchÊǶÔSolrºÍHBaseµÄÒ»´Î·â×°£¬ÒÔREST APIºÍ ICE·þÎñ·½Ê½¶ÔÍâÌṩ½üʵʱËÑË÷¹¦ÄÜ¡£
°Ù·Öµã¹«Ë¾µÄÖ÷Òª·þÎñ¶¼ÊÇÔËÐÐÔÚÕâÌ׼ܹ¹Éϵģ¬ËüÓµÓÐÁ¼ºÃµÄÎȶ¨ÐÔºÍÀ©Õ¹ÐÔ£¬Ò»°ãÀ´ËµÖ»ÐèÒªÔö¼ÓˮƽÀ©Õ¹½áµã¼´¿ÉÌá¸ßÊý¾Ý´¦ÀíÄÜÁ¦£¬ÕâΪ°Ù·ÖµãÒµÎñµÄÎȶ¨·¢Õ¹µì¶¨Á˼¼Êõ»ù´¡¡£
b) ʵʱ¼ÆËãËã·¨
ÒªÕæÕýʵÏÖ´óÊý¾Ýʵʱ¼ÆË㣬¹âÓпò¼ÜÊDz»Ðеģ¬»¹±ØÐëÕë¶ÔÌض¨ÒµÎñ¿ª·¢Ìض¨µÄ´¦ÀíÁ÷³ÌºÍËã·¨¡£Ïà±È½ÏÀëÏß¼ÆËã¶øÑÔ£¬ÊµÊ±¼ÆËãÔÚËã·¨·½ÃæÐèÒª¿¼Âǵĸü ¶à£¬ÕâÊÇÒòΪʵʱ¼ÆËãÄܹ»Óõ½µÄ´æ´¢×ÊÔ´Ô¶²»ÈçÀëÏߣ¬¶øÇÒ´¦Àí¹ý³ÌµÄʱ¼äÏÞÖÆÒª±ÈÀëÏß¼ÆËãÑϸñ£¬ÕⶼҪÇóʵʱ¼ÆËãËã·¨±ØÐë×öÏ൱¶àµÄÓÅ»¯¡£ÔÚÕâÒ»½ÚÖУ¬±Ê Õß½«ÒÔº£Á¿¼ÆÊýÎÊÌâΪÀý½éÉܰٷֵ㹫˾ÔÚʵʱ¼ÆËãËã·¨·½ÃæµÄ¾Ñé¡£
Ä¿Ç°£¬°Ù·ÖµãÊý¾Ýƽ̨ÉÏ°üº¬Á˽üǧÍòµÄµçÉ̵¥Æ·Êý¾Ý£¬ÊµÊ±×·×ÙÕâЩµ¥Æ·µÄä¯ÀÀºÍ½»Ò×Êý¾ÝÊDZØÐëµÄ£¬ÕâÒ²ÊÇ×ö¸öÐÔ»¯ÍƼö¡¢ÉÌÆ·»Ïñ¡¢ÏúÁ¿Ô¤²âºÍÓû§» ÏñµÈÒµÎñµÄ±ØҪǰÌá¡£ÎÒÃǵÄÎÊÌâÊÇ£ºÈçºÎÉè¼ÆÒ»ÖÖË㷨ʹµÃÎÒÃÇ¿ÉÒÔʵʱ²é¿´ÈÎÒⵥƷ×î½ü24СʱµÄä¯ÀÀÁ¿£¿Õâ¸öÎÊÌâÃèÊöÆðÀ´ºÜ¼òµ¥£¬µ«ÉÔ¼Ó˼Ë÷¾Í»á·¢ÏÖ×ö ÆðÀ´²¢²»ÈÝÒס£ÏÂÃæÎÒÃÇÏȸø³öÒ»¸ö¼òµ¥·½°¸£¬¶øºó°´ÕÕÒ»¶¨µÄÔÔòÖð²½¾«»¯µ½×î¼Ñ·½°¸¡£
c) ¼òµ¥·½°¸
ͼ 3°´Ãë¼ÆÊý·½°¸
¿´µ½Õâ¸öÎÊÌâʱ£¬´ó²¿·Ö¶ÁÕß»áºÜ¿ìÏëµ½Èçͼ 3ËùʾµÄËã·¨·½°¸¡£Í¼ÖкìÉ«¡¢À¶É«ºÍÂÌÉ«µÄ·½¿é·Ö±ð±íʾ²»Í¬µÄµ¥Æ·¡£ÔÚÕâ¸ö·½°¸ÖУ¬ÎÒÃÇΪÿ¸öµ¥Æ·±£´æÒ»·Ýä¯ÀÀÐÅÏ¢£¬Ëü°üº¬Á½¸öÊý¾Ý½á¹¹£º
d) ÀúÊ·ä¯ÀÀÁ¿ÁÐ±í£¨¼ò³ÆÀúÊ·£©£¬Ò»¸öÁÐ±í£¬ÁбíÖÐÿ¸öÔªËØ°üº¬Ò»¸öʱ¼ä´ÁºÍÒ»¸öÕûÊý£¬·Ö±ð´ú±í¹ýÈ¥24СʱÖеÄijһÃë¼°ÕâÒ»ÃëÖÓµÄä¯ÀÀÁ¿£¬°´Ê± ¼ä˳ÐòÅÅÐò¡£Õâ¸öÁбíµÄ×»á°üº¬24*3600=86400¸öÔªËØ£¬µ«Ò»°ãÇé¿öϼ«ÉÙÓе¥Æ·Ê±Ê±¿Ì¿Ì¶¼±»ä¯ÀÀ£¬ÎÒÃÇ¿ÉÒÔ¼ÙÉèÕâ¸öÁбíµÄƽ¾ù³¤¶È²»³¬¹ý 10000¡£
e) ÀÛ¼Æä¯ÀÀÁ¿£¨¼ò³ÆÀÛ¼ÆÁ¿£©£¬Ò»¸öÕûÊý£¬´ú±í½ØÖ¹µ½×îºóÒ»´Î·ÃÎÊʱµÄä¯ÀÀÁ¿¡£
ÈçͼËùʾ£¬¼ÙÉèÀ¶É«µ¥Æ·¶ÔÓ¦µÄÊý¾ÝÊÇ [(t1, a1), (t2, a2), ¡, (tn, an)]ºÍA¡£Õâ±íʾt1ʱ¿ÌµÄ¸Ãµ¥Æ·ä¯ÀÀÁ¿ÊÇa1£¬t2ʱ¿ÌÊÇa2£¬tnÊÇ×îºóÒ»´Î¼Ç¼µ½ä¯ÀÀ¸Ãµ¥Æ·µÄʱ¿Ì£¬ä¯ÀÀÁ¿ÊÇan¡£½ØÖ¹µ½tn£¬¸Ãµ¥Æ·µÄ×Üä¯ÀÀÁ¿ÊÇA¡£
µ±µ¥Æ·ä¯ÀÀÔ´Ô´²»¶Ï½øÈëµ½ÏûÏ¢¶ÓÁÐʱ£¬´¦Àí½ø³Ì£¨»òỊ̈߳©P1£¬P2¡»áʵʱ¶ÁÈ¡µ½ÕâЩÐÅÏ¢£¬²¢Ð޸ĶÔÓ¦µ¥Æ·µÄÊý¾ÝÐÅÏ¢¡£ÀýÈ磬P1¶ÁÈ¡µ½tʱ¿Ì¶ÔÀ¶É«µ¥Æ·µÄä¯ÀÀ¼Ç¼ʱ£¬»á½øÐÐÏÂÃæµÄ²Ù×÷£º
f) µÃµ½µ±Ç°Ê±¿Ìct£»
g) ¶ÔÊý¾Ý¿âÖÐÀ¶É«µ¥Æ·Êý¾Ý¼ÓËø£¬¼ÓËø³É¹¦ºó¶ÁÈ¡³öÊý¾Ý£¬¼ÙÉèÀúÊ·ÊÇ[(t1, a1), (t2, a2), ¡, (tn, an)]£¬ÀÛ¼ÆÁ¿ÊÇA£»
h) ÀÛ¼ÆÁ¿µÝÔö£¬¼´´ÓAÐÞ¸ÄΪA+1
i) Èç¹ûct=tn£¬Ôò¸üÐÂÀúʷΪ[(t1, a1), (t2, a2), ¡, (tn, an+1)]£¬·ñÔò¸üÐÂΪ [(t1, a1), (t2, a2), ¡, (tn, an), (ct,1)]£»×îºóɾ³ýʱ¼ä´ÁСÓÚct-24*3600µÄÁбíÔªËØ£¬É¾³ýµÄͬʱ ´ÓÀÛ¼ÆÁ¿ÖмõÈ¥¶ÔӦʱ¿ÌµÄä¯ÀÀÁ¿£¬ÀýÈçÖ»ÓÐÔªËØt1> ct-24*3600£¬Ôò²Ù×÷Íê³ÉºóµÄä¯ÀÀÁ¿ÎªA+1-a1£»
j) ½«ÐµÄÀúÊ·ºÍÀÛ¼ÆÁ¿Êä³öÖÁÊý¾Ý¿â£¬ÊÍ·ÅËø¡£
²»ÄÑÑéÖ¤Õâ¸ö·½°¸ÊÇ¿ÉÒÔÕýÈ·µÃ³öÿ¸öµ¥Æ·24СʱÄÚµÄä¯ÀÀÁ¿µÄ£¬²¢ÇÒÖ»ÒªÔÚ×ÊÔ´£¨¼ÆËã¡¢´æ´¢ºÍÍøÂ磩³ä×ãµÄÇé¿öÏ£¬Êý¾Ý¿âÖе¥Æ·µÄä¯ÀÀÁ¿ÊÇʵʱ¸üеġ£Õâ¸ö·½°¸Ò²ÊÇ·Ö²¼Ê½ÊµÊ±¼ÆËãÖÐ×î¼òµ¥×î³£¼ûµÄÒ»ÖÖģʽ¡£
k) ±ÜÃâËø
ͼ 4²»°üº¬ËøµÄ·½°¸
µÚÒ»¸ö·½°¸ÖÐÐèÒª¶ÔÊý¾Ý¿â¼ÓËø£¬ÎÞÂÛ¼ÓËøÁ£¶È¶àϸ£¬¶¼»áÑÏÖØÓ°Ïì¼ÆËãЧÂÊ¡£ËäÈ»ÏñRedisÒ»ÀàµÄÄÚ´æÊý¾Ý¿âÌṩÁËincrÕâÑùµÄÔ×Ó²Ù×÷£¬µ«ÕâÖÖ²Ù×÷¶àÊýÇé¿öÏÂÖ»ÊÊÓÃÓÚÕûÐÍÊý¾Ý£¬²¢²»Êʺϱ¾ÎÊÌâµÄÀúÊ·Êý¾Ý¡£
ÒªÏëÌá¸ßʵʱ´¦ÀíЧÂÊ£¬±ÜÃâËøÊǷdz£ÖØÒªµÄ¡£Ò»ÖÖ³£¼ûµÄ×ö·¨Êǽ«²¢ÐвÙ×÷´®Ðл¯£¬¾ÍÏñMapReduceÖеÄReduce½×¶ÎÒ»Ñù£¬½«keyÏàͬµÄ Êý¾Ý½»ÓÉͬһ¸öreducer´¦Àí¡£»ùÓÚÕâ¸öÔÀí£¬ÎÒÃÇ¿ÉÒÔ½«·½°¸¸ÄÔìΪÈçͼ 4Ëùʾ£¬ÎÒÃÇÐÂÔöÒ»¸öÊý¾Ý·Ö·¢´¦Àí¹ý³Ì£¬ËüµÄ×÷ÓÃÊDZ£Ö¤Í¬Ò»¸öµ¥Æ·µÄËùÓÐÊý ¾Ý¶¼»á·¢Ë͸øͬһ¸ö´¦Àí³ÌÐò¡£ÀýÈ罫À¶É«µ¥Æ·½»ÓÉP1´¦Àí£¬ºìÉ«½»ÓÉP2´¦Àí£¬ÂÌÉ«½»ÓÉP3´¦Àí¡£ÕâÑùP1ÔÚ´¦Àí¹ý³ÌÖв»ÐèÒª¶ÔÊý¾Ý¿â¼ÓËø£¬ÒòΪ²»´æÔÚ×Ê Ô´¾ºÕù¡£ÕâÑù¿ÉÒÔ¼«´óµÄÌá¸ß¼ÆËãЧÂÊ£¬ÓÚÊÇÕû¸ö¼ÆËã¹ý³Ì±äΪ£º
l) µÃµ½µ±Ç°Ê±¿Ìct£»
m) ¶ÁÈ¡Êý¾Ý¿âÖÐÀ¶É«µ¥Æ·ÐÅÏ¢£¬¼ÙÉèÀúÊ·ÊÇ[(t1, a1), (t2, a2), ¡, (tn, an)]£¬ÀÛ¼ÆÁ¿ÊÇA£»
n) ÀۼƵÝÔö£¬¼´´ÓAÐÞ¸ÄΪA+1
•o) Èç¹ûct=tn£¬Ôò¸üÐÂÀúʷΪ[(t1, a1), (t2, a2), ¡, (tn, an+1)]£¬·ñÔò¸üÐÂΪ [(t1, a1), (t2, a2), ¡, (tn, an), (ct,1)]£»×îºóɾ³ýʱ¼ä´ÁСÓÚct-24*3600µÄÁбíÔªËØ£¬É¾³ýµÄͬʱ ´ÓÀÛÁ¿ÖмõÈ¥¶ÔӦʱ¿ÌµÄä¯ÀÀÁ¿£»
p) ½«ÐµÄÀúÊ·ºÍÀÛ¼ÆÁ¿Êä³öÖÁÊý¾Ý¿â¡£
²½Öèb)ºÍe)Ê¡È¥ÁËËø²Ù×÷£¬Õû¸öϵͳµÄ²¢·¢ÐÔºÍÍÌÍÂÁ¿»áµÃµ½´ó´óÌá¸ß¡£µ±È»£¬Ã»ÓÐÃâ·ÑµÄÎç²Í£¬ÕâÖÖ·½°¸µÄȱµãÔÚÓÚ´æÔÚµ¥µãÒþ»¼£¬ÀýÈçÒ»µ©P1ÓÉÓÚ Ä³Ð©ÔÒò¹ÒµôÁË£¬ÄÇôÀ¶É«µ¥Æ·µÄÊý¾Ý½«µÃ²»µ½¼°Ê±´¦Àí£¬¼ÆÊý½á¹û½«ÎÞ·¨±£Ö¤ÊµÊ±¡£ÕâÖÖ¼ÆËã¹ý³Ì¶Ôϵͳ¼à¿ØºÍ¹ÊÕÏתÒÆ»áÓкܸߵÄÒªÇó¡£
q) Êý¾Ý·Ö²ã
ͼ 5´øÓб¾µØ»º´æµÄ·½°¸
·½°¸¶þÒѾ¿ÉÒÔ´ó´óÌá¸ß¼ÆËãЧÂÊ£¬µ«Õ⻹²»¹»£¬ÎÒÃÇ¿ÉÒÔ¿´µ½ÔÚ¼ÆËã²½Öèb)ºÍe)ÖÐ×ÜÊÇÒª°ÑÀúÊ·ºÍÀÛ¼ÆÁ¿Í¬Ê±´ÓÊý¾Ý¿âÖжÁ³ö»òдÈ룬ʵ¼ÊÉÏÕâÊÇûÓÐ ±ØÒªµÄ£¬ÒòΪֻÓÐÀÛ¼ÆÁ¿²ÅÊÇÍⲿ±ØÐëʹÓõÄÊý¾Ý£¬¶øÀúÊ·Ö»ÊÇËã·¨µÄÖмäÊý¾Ý¡£ÕâÑù£¬ÎÒÃÇ¿ÉÒÔÇø±ð¶Ô´ýÀúÊ·ºÍÀÛ¼ÆÁ¿£¬ÎÒÃǽ«ÀúÊ·ºÍÀÛ¼ÆÁ¿¶¼»º´æÔÚ¼ÆËã½ø³Ì ÖУ¬¶¨ÆÚ¸üÐÂÀúÊ·ÖÁÊý¾Ý¿â£¬¶øÀÛ¼ÆÁ¿Ôòʵʱ¸üС£Ðµķ½°¸Èçͼ 5Ëùʾ£¬¼ÆËã¹ý³Ì±äΪ£º
r) µÃµ½µ±Ç°Ê±¿Ìct£»
s) Èç¹û±¾µØûÓÐÀ¶É«µ¥Æ·µÄÐÅÏ¢£¬Ôò´ÓÊý¾Ý¿âÖжÁÈ¡À¶É«µ¥Æ·ÐÅÏ¢£»·ñÔòÖ±½ÓʹÓñ¾µØ»º´æµÄÐÅÏ¢¡£¼ÙÉèÀúÊ·ÊÇ[(t1, a1), (t2, a2), ¡, (tn, an)]£¬ÀÛ¼ÆÁ¿ÊÇA£»
t) ÀÛ¼ÆÁ¿µÝÔö£¬¼´´ÓAÐÞ¸ÄΪA+1
u) Èç¹ûct=tn£¬Ôò¸üÐÂÀúʷΪ[(t1, a1), (t2, a2), ¡, (tn, an+1)]£¬·ñÔò¸üÐÂΪ [(t1, a1), (t2, a2), ¡, (tn, an), (ct,1)]£»×îºóɾ³ýʱ¼ä´ÁСÓÚct-24*3600µÄÁбíÔªËØ£¬É¾³ýµÄͬʱ ´ÓÀÛ¼ÆÁ¿ÖмõÈ¥¶ÔӦʱ¿ÌµÄä¯ÀÀÁ¿£»
v) ½«ÐµÄÀÛ¼ÆÁ¿Êä³öÖÁÊý¾Ý¿â£»Èç¹ûÂú×ãÒ»¶¨µÄÌõ¼þ£¨ÀýÈçÉÏ´ÎÊä³öʱ¼ä×ã¹»¾ÃÔ¶£¬»òÕß´¦ÀíµÄÏûÏ¢Á¿´ïµ½Ò»¶¨ÊýÁ¿£©£¬Ôò½«ÀúÊ·Êä³öÖÁÊý¾Ý¿â¡£
ÕâÖÖ·½°¸¿ÉÒÔ´ó´ó½µµÍÊý¾Ý¿âѹÁ¦¡¢Êý¾ÝIOºÍÐòÁл¯·´ÐòÁл¯´ÎÊý£¬´Ó¶øÌá¸ßÕû¸öϵͳµÄ´¦ÀíЧÂÊ¡£Êý¾Ý·Ö²ãʵ¼ÊÉÏÊǼÆËã»úÖÐÒ»ÖÖ³£ÓõÄ·Êý£¬ÀýÈçÓ²¼þ ÖеĸßËÙ»º´æ/ÄÚ´æ/´ÅÅÌ£¬ÏµÍ³IOÖеĻº³åÇø/´ÅÅÌÎļþ£¬Êý¾Ý¿âµÄÄÚ´æË÷Òý¡¢ÏµÍ³DNS»º´æµÈµÈ¡£ÎÒÃÇʹÓõĿªÔ´ËÑË÷ÒýÇæSolr¾ÍʹÓÃÁËͬÑùµÄ˼·´ï µ½½üʵʱË÷Òý¡£Solr°üº¬´ÅÅÌÈ«Á¿Ë÷ÒýºÍʵʱÔö¼ÓµÄÄÚ´æÔöÁ¿Ë÷Òý£¬²¢ÒýÈëÁË¡°softÌá½»¡±µÄ·½Ê½¸üÐÂÐÂË÷Òý¡£ÐÂÊý¾Ýµ½´ïºó£¬Solr»áʹÓà ¡°soft¡±Ìá½»µÄ·½Ê½¸üÐÂÄÚ´æÔöÁ¿Ë÷Òý£¬ÔÚ¼ìË÷µÄʱºòͨ¹ýͬʱÇëÇóÈ«Á¿Ë÷ÒýºÍÔöÁ¿Ë÷Òý²¢ºÏ²¢µÄ·½Ê½»ñµÃµ½×îеÄÊý¾Ý¡£Ö®ºó»áÔÚ·þÎñÆ÷¿ÕÏеÄʱ ºò£¬Solr»á°ÑÄÚ´æÔöÁ¿Ë÷ÒýºÏ²¢µ½´ÅÅÌÈ«Á¿Ë÷ÒýÖб£Ö¤Êý¾ÝÍêÕû¡£
µ±È»£¬ÕâÖÖ·½°¸Ò²¶ÔϵͳµÄÎȶ¨ÐÔÌá³öÁ˸ü¸ßµÄÒªÇó£¬ÒòΪһµ©P1¹ÒµôÄÇôËü»º´æµÄÊý¾Ý½«¶ªÊ§£¬¼°Ê±P1¼°Ê±ÖØÆô£¬ÕâЩÊý¾ÝÒ²ÎÞ·¨»Ö¸´£¬ÄÇôÔÚÒ»¶Îʱ¼äÄÚÎÒÃǽ«ÎÞ·¨µÃµ½×¼È·µÄʵʱä¯ÀÀÁ¿¡£
w) Ä£ºý»¯
ÏÖÔÚ£¬ÎÒÃÇÀ´¿¼ÂÇ´æ´¢×ÊÔ´ÎÊÌâ¡£¼ÙÉèʱ¼ä´ÁºÍÕûÐͶ¼ÓÃlongÀàÐÍ£¨8×Ö½Ú£©±£´æ£¬ÄÇô°´ÕÕ·½°¸Ò»ÖеĹÀ¼Æ£¬ÎÒÃǶÔÿ¸öµ¥Æ·µÄÐèÒª¼Ç¼µÄÊý¾Ý´óСԼ Ϊ10000¡Á£¨8+8£©+8=16008×Ö½Ú¡Ö156KB£¬1000Íòµ¥Æ·µÄÊý¾Ý×ÜÁ¿½«³¬¹ý1T£¬Èç¹û¿¼Âǵ½Êý¾Ý¿âºÍ±¾µØ»º´æÒòËØ£¬ÄÇôÕû¸öϵͳÐèÒªµÄ ´æ´¢Á¿ÖÁÉÙÊÇ2T£¡Õâ¶ÔÓÚ¼ÆÊýÕâ¸öÎÊÌâ¶øÑÔÏÔÈ»Êǵò»³¥Ê§µÄ£¬ÎÒÃDZØÐë³¢ÊÔ½«Êý¾ÝÁ¿½µµÍ£¬ÔÚÕâ¸öÎÊÌâÖпÉÐеÄÊǽµµÍÀúÊ·µÄ´æ´¢¾«¶È¡£ÎÒÃǽ«ÀúÊ·¶¨ÒåΪСʱ ¼¶±ð¾«¶È£¬ÕâÑùÿ¸öµ¥Æ·µÄÀúÊ·ÖÁ¶àÓÐ24¸ö£¬Êý¾ÝÁ¿×î¶à392×Ö½Ú£¬1000Íòµ¥Æ·µÄÐÅÏ¢×ÜÁ¿½«±äΪ3.6G£¬ÏµÍ³×ܵĴ洢Á¿²»³¬¹ý8G£¬ÕâÊÇ¿ÉÒÔ½ÓÊÜ µÄ¡£Èç¹û¿¼ÂÇÓÃintÀàÐÍ´úÌælongÀàÐʹ洢ʱ¼ä£¨Ð¡Ê±Êý£©£¬Ôò´æ´¢Á¿¿ÉÒÔ½øÒ»²½½µµÍµ½²»×ã6G¡£ÕâÑùеļÆËã¹ý³Ì±äΪ£º
x) µÃµ½µ±Ç°Ê±¿Ì¾«È·µ½Ð¡Ê±µÄ²¿·Öct£»
y) Èç¹û±¾µØûÓÐÀ¶É«µ¥Æ·µÄÐÅÏ¢£¬Ôò´ÓÊý¾Ý¿âÖжÁÈ¡À¶É«µ¥Æ·ÐÅÏ¢£»·ñÔòÖ±½ÓʹÓñ¾µØ»º´æµÄÐÅÏ¢¡£¼ÙÉèÀúÊ·ÊÇ[(t1, a1), (t2, a2), ¡, (tn, an)]£¬ÀÛ¼ÆÁ¿ÊÇA£»
z) ÀÛ¼ÆÁ¿µÝÔö£¬¼´´ÓAÐÞ¸ÄΪA+1
aa) Èç¹ûct=tn£¬Ôò¸üÐÂÀúʷΪ[(t1, a1), (t2, a2), ¡, (tn, an+1)]£¬·ñÔò¸üÐÂΪ [(t1, a1), (t2, a2), ¡, (tn, an), (ct,1)]£»×îºóɾ³ýСʱÊýСÓÚct-24µÄÁбíÔªËØ£¬É¾³ýµÄͬʱ´ÓÀÛ¼ÆÁ¿ÖÐ ¼õÈ¥¶ÔӦʱ¿ÌµÄä¯ÀÀÁ¿£»
ab) ½«ÐµÄä¯ÀÀÁ¿Êä³öÖÁÊý¾Ý¿â£»Èç¹ûÂú×ãÒ»¶¨µÄÌõ¼þ£¬Ôò½«ÀúÊ·Êä³öÖÁÊý¾Ý¿â¡£
ÔÚÕâÖÖ·½°¸Ï£¬Êý¾Ý¿âÖд洢µÄ²¢²»ÊǹýÈ¥24СʱÄÚµÄä¯ÀÀÁ¿£¬¶øÊǹýÈ¥23Сʱ¶àÒ»µãÄڵġ£ÀýÈçÔÚ1ÔÂ2ÈÕ12£º15ʱÊý¾Ý¿âÖеÄä¯ÀÀÁ¿Êµ¼ÊÉÏÊÇ1ÔÂ1ÈÕ13£º00µ½1ÔÂ2ÈÕ12£º15µÄä¯ÀÀÁ¿£¡
ÕâÖÖ½µµÍÊý¾Ý¾«¶ÈµÄ·½·¨ÎÒÃÇ¿ÉÒÔ³Æ֮Ϊģºý»¯£¬ËüÊÇÓÃ×ÊÔ´»»Ð§ÂʵÄÒ»ÖÖ·½·¨¡£ÔÚ¶ÔÊý¾Ý¾«È·ÐÔ²»ÊÇÌرðÃô¸ÐµÄÁìÓò£¬ÕâÖÖ·½·¨¿ÉÒÔ´ó´ó½µµÍϵͳ×ÊԴʹÓà Á¿¡¢Ìá¸ßϵͳµÄ´¦ÀíЧÂÊ¡£ÀûÓÃÄ£ºý»¯µÄʵʱËã·¨¿ìËٵõ½½üËƽá¹û£¬¶øºóÓÃÀëÏßËã·¨ÂýÂýÐÞÕý½á¹ûµÄ¾«È·¶È£¬ÊÇ°Ù·ÖµãÔÚ´óÊý¾Ý´¦ÀíÖо³£Ê¹ÓõÄÕÐÊý¡£
ac) ¾Ö²¿¾«»¯
ͼ 6¾Ö²¿¾«»ªÊ¾Òâͼ
ÓÐʱºò£¬Ä£ºý»¯»áÑڸǵôһЩÖØÒªµÄϸ½ÚÐÅÏ¢£¬´ï²»µ½ÒµÎñÐèÇóµÄÒªÇó¡£ÀýÈ磬µçÉÌÓкܶàµÄÃëɱ»î¶¯£¬´Ëʱ±ØÐ뼰ʱ¼à²âµ¥Æ·ä¯ÀÀÁ¿£¬Èç¹ûÎÒÃÇ»¹°´Ð¡Ê±Î¬ ¶È½øÐмÆË㣬ÄÇÏÔÈ»²»ÄÜÂú×ãÒªÇó¡£ÕâÖÖÇé¿öÏÂÎÒÃǾͱØÐë¶Ô¾Ö²¿Êý¾Ý½øÐÐϸ»¯£¬ËüÊÇÄ£ºý»¯µÄÄæ²Ù×÷£¬ÎÒÃdzÆ֮Ϊ¾Ö²¿¾«»¯¡£Èçͼ 6Ëùʾ£¬µÚkСʱµÄÊý¾ÝÊÇºÜ Ãô¸ÐµÄ£¬ÎÒÃÇÏ£ÍûËüµÄÊý¾ÝÄܸüʵʱһЩ£¬ÄÇÎÒÃÇ¿ÉÒÔ½«µÚkСʱµÄÊý¾ÝÇзֵĸüϸ£¬¶ÔËü×ö10·ÖÖÓ¡¢·ÖÖÓÉõÖÁÃ뼶±ðµÄ¼ÆË㣬¶øÆäËûʱ¼ä¶ÎÈԾɲÉÓÃСʱ¾«¶È¡£
ÕâÖÖ·½°¸»áÔö¼ÓϵͳµÄÉè¼ÆºÍ¿ª·¢ÄѶȣ¬¶øÇÒ±ØÐëÓÐÁé»îµÄÅäÖòÅÄÜÂú×ã¶à±äµÄÒµÎñÐèÇó¡£
ad) Êý¾Ý½¨Ä£
³ýÁ˾ֲ¿Ï¸»¯£¬»¹ÓÐÒ»ÖÖ·½·¨¿ÉÒÔÌá¸ßÊý¾ÝµÄ¾«È·¶È£¬Õâ¾ÍÊÇÊý¾Ý½¨Ä£¡£ÔÚ·½°¸ËÄÖÐÎÒÃÇÌáµ½ÔÚСʱ¾«¶ÈÏ£¬Êµ¼ÊÉÏÖ»Äܵõ½23Сʱ¶àÒ»µã֮ǰµÄä¯ÀÀÁ¿£¬ ÓÐÒ»²¿·ÖÊý¾Ý¶ªÊ§ÁËûÓÐÓõ½¡£Êµ¼ÊÉÏÎÒÃÇ¿ÉÒÔ½«¶ªÆúµôµÄÊý¾ÝÀûÓÃÆðÀ´µÃµ½¸üºÃµÄ½á¹û¡£×î¼òµ¥Ë¼Â·ÊǼÙÉèͬһСʱÄÚµ¥Æ·µÄä¯ÀÀÁ¿ÊÇÏßÐÔÔö¼ÓµÄ£¬ÄÇôÎÒÃÇÏÔÈ» ¿ÉÒÔÀûÓÃÏàÁÚÁ½¸öСʱµÄä¯ÀÀÀúÊ·ÍÆËã³öÈÎÒâʱ¿ÌµÄä¯ÀÀÁ¿¡£»Øµ½·½°¸ËÄÖеÄÀý×Ó£¬1ÔÂ2ÈÕ12£º15µÄʵʱä¯ÀÀÁ¿¿ÉÒÔͨ¹ýÏÂÃæµÄ¹«Ê½¼ÆËãµÃ³ö£º
[a0 + (a1-a0)¡Á(60-15)/60] + a1 + ¡ + a24
ÆäÖÐa0´ú±í1ÔÂ1ÈÕ12£º00µ½13£º00Ö®¼äµÄä¯ÀÀÁ¿£¬ÒÀ´ÎÀàÍÆ£¬a24´ú±í1ÔÂ2ÈÕ12£º00µ½12£º15Ö®¼äµÄä¯ÀÀÁ¿¡£¹«Ê½ÖÐµÄ a0 + (a1-a0)¡Á(60-15)/60 ¹À¼ÆÁË1ÔÂ1ÈÕ12£º15-13£º00Ö®¼äµÄä¯ÀÀÁ¿£¬ÕâÑù¾ÍµÃ³öÁË´Ó1ÔÂ1ÈÕ12£º15µ½1ÔÂ2ÈÕ 12£º15Ö®¼ä24СʱÄÚµÄä¯ÀÀÁ¿¡£
ͼ 7ijµ¥Æ·µÄÈ«Ììä¯ÀÀ·Ö²¼
ÎÒÃÇ»¹¿ÉÒÔÀûÓøü¸´ÔÓµÄä¯ÀÀÁ¿·Ö²¼Ä£Ð͵óö¾«¶È¸ü¸ßµÄ¹À¼Æ£¬Í¼ 7¸ø³öÁËijµ¥Æ·Ò»ÌìµÄä¯ÀÀ·Ö²¼ÇúÏߣ¬Õâ¸ö·Ö²¼ÊÊÓÃÓÚ¾ø´ó¶àÊýµÄÉÌÆ·ÒÔ¼°¾ø´ó¶àÊýµÄʱ ¼ä¡£Òò´Ë£¬ÎÒÃÇÍêÈ«¿ÉÒÔÀûÓÃÕâ¸ö·Ö²¼À´¸ü¾«È·µÄ¹À¼Æÿ¸öµ¥Æ·µÄä¯ÀÀÁ¿£¬ÀûÓÃÕâ¸öÄ£ÐÍÎÒÃÇÉõÖÁ²»ÐèÒª¼Ç¼ä¯ÀÀÀúÊ·£¬Ö»ÐèÒªÖªµÀµ±Ìì0£º00µ½µ±Ç°µÄä¯ÀÀ×ÜÁ¿ ¾Í¿ÉÒÔ¼ÆËã³öÇ°24СʱÄÚµÄä¯ÀÀÁ¿£¬ÉõÖÁÔ¤²â½ÓÏÂÀ´µÄä¯ÀÀÁ¿Çé¿ö£¡
µ±È»£¬Ä£ÐÍÒ²²»ÊÇÍòÄܵģ¬Ä£Ðͱ¾ÉíµÄ½¨Á¢ºÍ¸üÐÂÒ²ÊÇÓдú¼ÛµÄ£¬Èç¹û½¨Ä£·½·¨²»Ç¡µ±»òÕßÄ£Ð͸üв»¼°Ê±£¬ºÜÓпÉÄܵóöµÄ½á¹û»áºÜ²î¡£
ae) С½á
±¾ÎÄÊ×ÏȽéÉÜÁ˰ٷֵ㹫˾´óÊý¾Ýƽ̨µÄ»ù±¾ÔÀí£¬²¢Ïêϸ˵Ã÷ÁËÆäÖÐÓëʵʱ¼ÆËãÏà¹Ø²¿·Ö£¬ÊµÊ±¼ÆËã¿ò¼ÜºÍÊý¾Ý²éѯ¿ò¼Ü£¬µÄϵͳ¼Ü¹¹¡¢´¦ÀíÁ÷³ÌºÍÓ¦Óᣠ¶øºó£¬ÎÒÃÇÒÔº£Á¿Êý¾Ý¼ÆÊýÎÊÌâΪÀý£¬ÉîÈëdz³öµÄ½éÉÜÁËÔڰٷֵ㹫˾ÔÚʵʱ¼ÆËãËã·¨Öг£Óõķ½·¨ºÍ¼¼ÇÉ£¬ÒÔ¼°ËüÃÇÊÊÓõij¡¾°ºÍ¿ÉÄÜ´øÀ´µÄÎÊÌâ¡£ÕâЩ·½·¨ºÍ¼¼ ÇɾßÓÐÆÕ±éÐÔºÍͨÓÃÐÔ£¬±»¹ã·ºÓ¦ÓÃÓÚ°Ù·Öµã¸öÐÔ»¯ÍƼöÒýÇæµÄ¸÷¸öÄ£¿é£¬°üÀ¨Óû§ÒâͼԤ²â¡¢Óû§»Ïñ¡¢¸öÐÔ»¯ÍƼöÆÀ·Ö¡¢ÉÌÆ··ÖÀàµÈµÈ¡£Èç¹ûÄÜÔÚʵ¼ÊÒµÎñÖÐÁé »îÔËÓÃÕâЩ·½·¨ºÍ¼¼ÇÉ£¬ÔòÄܹ»´ó´óÌá¸ßʵʱ¼ÆËãµÄÊý¾Ý¹æÄ£ºÍ´¦ÀíЧÂÊ£¬°ïÖúÒµÎñ¿ìËÙ·¢Õ¹¡£Ï£Íû±¾ÎĵĽéÉÜÄܹ»°ïÖú¶ÁÕ߸üºÃµÄÀí½â´óÊý¾Ýʵʱ¼ÆËãµÄ·½·½Ãæ Ãæ¡£
ÍƼöÐÅÏ¢
- ¹¹½¨¸ß¿ÉÓú͵¯ÐÔÉìËõµÄKV´æ´¢ÏµÍ³
- ̸̸ÍøÕ¾¾²Ì¬»¯£¨¶þ£©
- ̸̸ÍøÕ¾¾²Ì¬»¯£¨Ò»£©
- Ðì¹úÏ飺΢²©ÊÇ·ñ»á²ÎÓëÍøÕ¾ÅÅÃû
- ApacheÔÚ±¾µØ½¨Á¢·ºÓòÃûÐéÄâÖ÷»ú¼ò·¨
- ÈçºÎ½øÐÐÍøÕ¾Õï¶Ï ΪÍøÕ¾½øÐÐÆÀ·Ö
- Ò»¸ö³É¹¦µÄÕ¾³¤Ó¦¸Ã¾ß±¸µÄËØÖÊ
- Ò»Ìõ΢²©Òý·¢µÄ·ÖÎö£ºÈçºÎÈÃ΢²©µÃµ½¹ã·º´«²¥
- ÈçºÎÈÃÒ»¸öÍøÕ¾ÓÐÇ¿´óÉúÃüÁ¦
- פ×ãIDCÃż÷³Ö±Ò¹ÛÍû Õ¾³¤Ñ¡¹º¿Õ¼ä³É¡°¼èÄѵľö¶¨¡±£¿
ÈÈÃÅÐÅÏ¢
- nohup: redirecting stderr to stdou....
- ʹÓÃlog_formatΪNginx·þÎñÆ÷ÉèÖøüÏêϸµÄÈÕÖ¾¸ñʽ
- jquery easyUI--dataGrid-Json
- [Ô´´]·ÂGoogle Reader¡¢ÐÂÀË΢²©¡¢ÌÚѶ΢²©µ....
- ÀûÓÃKeepalived+mysql¹¹½¨¸ß¿ÉÓÃMySQLË«Ö÷×Ô¶....
- Nginx+keepalivedʵÏÖ¸ºÔؾùºâºÍË«»úÈȱ¸¸ß¿ÉÓÃ
- jqueryʵÏÖÒ³Ãæ¼ÓÔؽø¶ÈÌõ
- Rolling cURL: PHP²¢·¢×î¼Ñʵ¼ù
- codeigniter ·ÓÉÖÕ¼«ÓÅ»¯(url rewrite)
- linuxÏÂÉèÖÃsshÎÞÃÜÂëµÇ¼
ÆÀÂÛ