1. ΪʲôÐèÒªÒ»¸öǰ¶Ë¼à¿ØÏµÍ³
ͨ³£ÔÚÒ»¸ö´óÐ굀 Web ÏîÄ¿ÖÐÓкܶà¼à¿ØÏµÍ³£¬±ÈÈçºó¶ËµÄ·þÎñ API ¼à¿Ø£¬½Ó¿Ú´æ»î¡¢µ÷Óá¢ÑÓ³ÙµÈ¼à¿Ø£¬ÕâЩһ°ã¶¼ÓÃÀ´¼à¿Øºǫ́½Ó¿ÚÊý¾Ý²ãÃæµÄÐÅÏ¢¡£¶øÇÒ¶ÔÓÚ´óÐÍÍøÕ¾ÏµÍ³À´Ëµ£¬´Óºó¶Ë·þÎñµ½Ç°Ì¨Õ¹Ê¾»áÓкܶà²ã£ºÄÚÍø
VIP¡¢CDN µÈ¡£
µ«ÊÇÕâЩ¼à¿Ø²¢²»ÄÜ׼ȷµØ·´Ó¦Óû§¿´µ½µÄǰ¶ËÒ³Ãæ×´Ì¬£¬±ÈÈç£ºÒ³ÃæµÚÈý·½ÏµÍ³Êý¾Ýµ÷ÓÃʧ°Ü£¬Ä£¿é¼ÓÔØÒì³££¬Êý¾Ý²»ÕýÈ·£¬¿Õ°×¿ªÌì´°µÈ¡£
Õâʱºò¾ÍÐèÒª´Óǰ¶Ë DOM չʾµÄ½Ç¶ÈÈ¥·ÖÎöºÍÊÕ¼¯Óû§ÕæÕý¿´µ½µÄ¶«Î÷£¬´Ó¶ø¼ì²â³öÒ³ÃæÊÇ·ñ³öÏÖÒì³£ÎÊÌâ¡£
2. ÐèÒª¼à¿ØÏµÍ³½â¾öµÄÎÊÌâ
Ò³ÃæÍ¨³£³öÏÖÒÔÏÂÎÊÌâʱÐèÒª¼°Ê±Óʼþ¡¢¶ÌÐÅÉϱ¨Í¨ÖªÏà¹ØÈËÔ±ÐÞ¸´ÎÊÌâ¡£
·µ»Ø´íÎó£¨50x, 40x£©ÎÞ·¨´ò¿ª
Ä£¿é¼ÓÔØÊ§°Ü
Ò³ÃæÂÒÂë
Êý¾ÝÕýÈ·ÐÔ
ÏÖ³¡¿ìÕÕ£¬¸´ÏÖÎÊÌâ
3. ¼¼ÊõÑ¡ÐÍ
¼à¿ØµÄÒâÒåºÍ²âÊÔµÄÒâÒåÔÚ±¾ÖÊÉÏÊÇÒ»Öµģ¬¶¼ÊǶÔÒÑÉÏÏß¹¦ÄܽøÐлعé²âÊÔ£¬µ«²»Í¬µÄÊÇ¼à¿ØÐèÒª×ö³¤ÆÚµÄ¿É³ÖÐø¿ÉÑ»·µÄ»Ø¹é²âÊÔ£¬¶ø²âÊÔ½ö½öÐèÒªÔÚÉÏÏßÖ®ºó×öÒ»´Î»Ø¹é²âÊÔ¡£
¼ÈÈ»¼à¿ØºÍ²âÊԵı¾ÖÊÒ»Ö£¬ÄÇÎÒÃÇÊÇÍêÈ«¿ÉÒÔ²ÉÓòâÊԵķ½Ê½À´×ö¼à¿ØÏµÍ³µÄ¡£ÔÚ×Ô¶¯»¯²âÊÔ¼¼Êõ±éµØ¿ª»¨µÄʱ´ú£¬²»·¦ºÜ¶àºÃÓõÄ×Ô¶¯»¯¹¤¾ß£¬ÎÒÃǽö½öÐèÒª°ÑÕâЩ×Ô¶¯»¯¹¤¾ß½øÐÐÕûºÏΪÎÒÃÇËùÓü´¿É¡£
NodeJS - ÌØ±ðÊÊÓÃÓÚÍøÂçÃܼ¯ÐÍÈÎÎñ
PhantomJS - Ä£ÄâÎÞ½çÃæµÄä¯ÀÀÆ÷£¬Ìṩ·á¸»µÄÄں˽»»¥ API
NodeJS
NodeJS ÊÇÒ»¸ö JavaScript ÔËÐл·¾³£¬²¢ÇÒ NodeJS Ö§³Ö·Ç×éÈû I/O ºÍÒì²½¡¢Ê¼þÇý¶¯£¬Õâµã¶ÔÓÚÎÒÃǹ¹½¨»ùÓÚ
DOM ÔªËØµÄ¼à¿ØÊDZȽÏÖØÒªµÄ¡£
PhantomJS
PhantomJS ÊÇÒ»¸ö»ùÓÚ webkit µÄ JavaScript API¡£ËüʹÓà QtWebKit
×÷ΪËüµÄºËÐÄä¯ÀÀÆ÷£¬Ê¹Óà webkit À´±àÒë½âÊÍÖ´ÐÐ JavaScript ´úÂë¡£ÈκÎÄã¿ÉÒÔÔÚ»ùÓÚ webkit
ä¯ÀÀÆ÷×öµÄÊÂÇ飬Ëü¶¼ÄÜ×öµ½¡£
Ëü²»½öÊǸöÒþÐεÄä¯ÀÀÆ÷£¬ÌṩÁËÖîÈç CSS Ñ¡ÔñÆ÷¡¢Ö§³ÖWeb±ê×¼¡¢DOM²Ù×÷¡¢JSON¡¢HTML5¡¢Canvas¡¢SVG
µÈ£¬Í¬Ê±Ò²ÌṩÁË´¦ÀíÎļþ I/O µÄ²Ù×÷£¬´Ó¶øÊ¹Äã¿ÉÒÔÏò²Ù×÷ϵͳ¶ÁдÎļþµÈ¡£PhantomJS µÄÓô¦¿Éν·Ç³£¹ã·º£¬ÖîÈçÍøÂç¼à²â¡¢ÍøÒ³½ØÆÁ¡¢ÎÞÐèä¯ÀÀÆ÷µÄ
Web ²âÊÔ¡¢Ò³Ãæ·ÃÎÊ×Ô¶¯»¯µÈ¡£
Ϊʲô²»ÊÇ Selenium
×ö×Ô¶¯»¯²âÊÔµÄͬѧ¿Ï¶¨¶¼ÖªµÀ Selenium¡£¿ÉÒÔʹÓà Selenium ½«²âÊÔÓÃÀýÔÚä¯ÀÀÆ÷ÖÐÖ´ÐУ¬¶øÇÒ
Selenium ¶Ô¸÷ÖÖÆ½Ì¨ºÍ³£¼ûä¯ÀÀÆ÷Ö§³Ö±È½ÏºÃ£¬µ«ÊÇ Selenium ÉÏÊÖÄѶÈϵÊýÂԸߣ¬¶øÇÒʹÓÃSelenium
ÐèÒªÔÚ·þÎñÆ÷¶Ë°²×°ä¯ÀÀÆ÷¡£
¿¼Âǵ½¼à¿ØÖ÷ÒªÈÎÎñÔÚ¼à¿Ø²»ÔÚ²âÊÔ¡£ÏµÍ³²¢²»ÐèҪ̫¶à¿¼ÂǼæÈÝÐÔ£¬¶øÇÒ¼à¿Ø¹¦ÄÜÏà¶Ôµ¥Ò»£¬Ö÷Òª¶ÔÒ³Ãæ½øÐй¦ÄÜÉϵĻعé²âÊÔ£¬ËùÒÔÑ¡ÔñÁË
PhantomJS¡£
4. ¼Ü¹¹Éè¼Æ
¼Ü¹¹¸ÅÀÀ
¼Ü¹¹ÈçÏÂͼËùʾ¡£

¼Ü¹¹¼òÊö
¶ÔÓÚ DOM ¼à¿Ø·þÎñ£¬ÔÚÓ¦ÓòãÃæÉϽøÐÐÁË´¹Ö±»®·Ö£º
¹æÔò¹ÜÀíϵͳ¡£
¹æÔò¶ÓÁÐÉú³ÉÆ÷¡£
³¤Ê±³ÖÐø´¦ÀíÆ÷¡£
PhantomJS ·þÎñ¡£
·þÎñ»¯ API¡£
ÔÚÓ¦ÓòãÃæÉϽøÐеĴ¹Ö±»®·Ö¿ÉÒÔ¶ÔÓ¦ÓÃ×ö·Ö²¼Ê½²¿Êð£¬Ìá¸ß´¦ÀíÄÜÁ¦¡£ºóÆÚÔÙÐÔÄÜÓÅ»¯¡¢ÏµÍ³¸ÄÔìÀ©Õ¹µÈ·½ÃæÒ²ÄÜÌá¸ß¼òÒ×ÐÔ¡£
5. ½â¾ö·½°¸
£¨1£©Ç°Ì¨¹æÔò¼Èë
ÕâÊÇÒ»¸ö¶ÀÁ¢µÄ Web ϵͳ£¬ÏµÍ³Ö÷ÒªÓÃÀ´ÊÕ¼¯Óû§Â¼ÈëµÄÒ³ÃæÐÅÏ¢¡¢Ò³Ãæ¶ÔÓ¦µÄ¹æÔò¡¢Õ¹Ê¾´íÎóÐÅÏ¢¡£Í¨¹ýµ÷Óúó¶ËÒ³Ãæ×¥È¡·þÎñÀ´Íê³ÉÒ³Ãæ¼ì²âµÄÈÎÎñ£¬Í¨¹ýϵͳ¿ÉÒÔ´´½¨ÈýÖÖÀàÐ͵ļì²âÒ³Ãæ£º³£¹æ¼à¿Ø¡¢¸ß¼¶¼à¿Ø¡¢¿ÉÓÃÐÔ¼à¿Ø¡£
³£¹æ¼à¿Ø
¼ÈëÒ»¸öÒ³ÃæµØÖ·£¬ºÍÈô¸É¼ì²â¹æÔò¡£×¢ÒâÕâÀïµÄ¼ì²â¹æÔò£¬ÎÒÃǰѳ£ÓõÄһЩ¼ì²âµã³éÏó³ÉÁËÒ»ÌõÀàËÆ²âÊÔÓÃÀýµÄÓï¾ä¡£Ã¿Ìõ¹æÔòÓÃÀ´Æ¥ÅäÒ³ÃæÉϵÄÒ»¸ö
DOM ÔªËØ£¬Óà DOM ÔªËØµÄÊôÐÔÀ´ºÍÔ¤ÆÚ×öÆ¥Å䣬Èç¹ûÆ¥Åäʧ°Üϵͳ¾Í»á²úÉúÒ»Ìõ´íÎóÐÅÏ¢£¬ºóÐø½»Óɱ¨¾¯ÏµÍ³´¦Àí
Æ¥ÅäÀàÐÍÒ»°ãÓÐÕ⼸ÖÖ£º³¤¶È¡¢Îı¾¡¢HTML¡¢ÊôÐÔ
´¦ÀíÆ÷ ÀàËÆ±à³ÌÓïÑÔÖеIJÙ×÷·û£º´óÓÚ¡¢´óÓÚµÈÓÚ¡¢Ð¡ÓÚ¡¢Ð¡ÓÚµÈÓÚ¡¢µÈÓÚ¡¢ÕýÔò¡£
ÕâÑù×öµÄºÃ´¦¾ÍÊÇ£¬Â¼Èë¹æÔòµÄÈËÖ»ÒªÁ˽âÒ»µã DOM Ñ¡ÔñÆ÷µÄ֪ʶ¾Í¿ÉÒÔÉÏÊÖ²Ù×÷ÁË£¬ÔÚÎÒÃÇÄÚ²¿Í¨³£Êǽ»ÓɲâÊÔ¹¤³ÌʦͳһÍê³É¹æÔòµÄ¼Èë¡£
¸ß¼¶¼à¿Ø
Ö÷ÒªÓÃÀ´Ìṩ¸ß¼¶Ò³Ãæ²âÊԵŦÄÜ£¬Ò»°ãÓÉÓоÑéµÄ¹¤³ÌʦÀ´×«Ð´²âÊÔÓÃÀý¡£Õâ¸ö²âÊÔÓÃÀýдÆðÀ´»áÓÐһЩѧϰ³É±¾£¬µ«ÊÇ¿ÉÒÔÄ£Äâ
Web Ò³Ãæ²Ù×÷£¬È磺µã»÷¡¢Êó±êÒÆ¶¯µÈʼþ¡£´Ó¶ø×öµ½¾«È·²¶×½Ò³ÃæÐÅÏ¢¡£
¿ÉÓÃÐÔ¼à¿Ø
¿ÉÓÃÐÔ¼à¿Ø²àÖØÓÚ¶ÔÒ³ÃæµÄ¿É·ÃÎÊÐÔ¡¢ÄÚÈÝÕýÈ·ÐÔµÈ±È ÑÏÖØµÄÎÊÌ⠵ļ´Ê±¼à¿Ø¡£Í¨³£ÕâÀàÒ³ÃæÎÒÃÇÖ»ÐèÒªÔÚ³ÌÐòÀïÃæÆôÒ»¸ö
Worker ²»¶ÏµÄÈ¥»ñÈ¡Ò³Ãæ HTML ¾Í¿ÉÒÔ¶Ô½á¹û½øÐмì²âÆ¥ÅäÁË£¬ËùÒÔÎÒÃÇÑ¡ÔñÁË NodeJS À´×öÒì²½µÄÒ³Ãæ×¥È¡¶ÓÁУ¬¸ßЧ¿ìËÙµÄÍê³ÉÕâÖÖÍøÂçÃܼ¯ÐÍÈÎÎñ¡£
£¨2£©Ö÷¶¯´íÎóÉϱ¨
Ò³Ãæ½Å±¾Ö´ÐдíÎó¼à¿Ø
Ò³ÃæÒýÈëÒ»¶Î¼à¿Ø½Å±¾À´ÊÕ¼¯Ò³Ãæ²ú³É error ʼþµÄÐÅÏ¢£¬×Ô¶¯Éϱ¨¸øºó¶Ë·þÎñ£¬ÔÚϵͳÀïÃæ¿ÉÒÔ»ã×ÜËùÓб¨´íÐÅÏ¢£¬ÒÔ¼°¶ÔÓ¦µÄ¿Í»§¶Ëä¯ÀÀÆ÷°æ±¾¡¢²Ù×÷ϵͳ¡¢IP
µØÖ·µÈ¡£
Ò³ÃæÖ÷¶¯Éϱ¨
Õâ¸ö¹¦ÄÜÐèÒª¶ÔÓ¦µÄǰ¶Ë¹¤³ÌʦÔÚ´úÂëÖе÷ÓôíÎóÉϱ¨ API£¬À´Ö÷¶¯Ìá½»´íÎóÐÅÏ¢¡£Ö÷ҪʹÓõij¡¾°ÓУ¬Ò³ÃæÒì²½·þÎñÑÓʱÎÞÏìÓ¦¡¢Ä£¿é½µ¼¶¶µµ×Ö÷¶¯Í¨ÖªµÈ¡£¼à¿Ø½Å±¾Ìṩ¼¸¸ö¼òµ¥µÄ
API À´Íê³ÉÕâÏîÈÎÎñ¡£
// error ·½·¨µ÷ÓúóÁ¢¼´Éϱ¨´íÎóÐÅÏ¢²¢·¢³öÓʼþ¡¢¶ÌÐÅ֪ͨ errorTracker.error('´íÎóÃèÊö') // info ·½·¨µ÷ÓúóÁ¢¼´Éϱ¨ÐÅÏ¢£¬²¢ÔÚµ¥Î»Ê±¼äÄÚ½ö½ö²úÉúÒ»ÌõÓʼþ¡¢¶ÌÐÅ֪ͨ errorTracker.info('ÐÅÏ¢ÃèÊö') // log ·½·¨µ÷ÓúóÓɱ¨´í¼ì²âÊÇ·ñ´ïµ½ÉèÖ÷§Öµ£¬×îÖÕÈ·ÈÏÊÇ·ñ±¨´í errorTracker.log('ÈÕÖ¾ÐÅÏ¢') |
£¨3£©ºó¶ËÒ³Ãæ×¥È¡·þÎñ
ÓÉÓÚ¾©¶«ºÜ¶àÒ³ÃæÄÚÈÝÊÇÒì²½¼ÓÔØµÄ£¬ÏñÊ×Ò³¡¢µ¥Æ·µÈϵͳÓÐÐí¶àµÚÈý·½Òì²½½Ó¿Úµ÷Óã¬Ê¹Óúó¶Ë³ÌÐòץȡµ½µÄÒ³ÃæÊý¾ÝÊÇͬ²½µÄ£¬²¢²»ÄÜÈ¡µ½¶¯Ì¬µÄ
JavaScript äÖȾµÄÊý¾Ý£¬ËùÒԾͱØÐëʹÓÃÏñ PhantomJS ÕâÖÖÄÜÄ£Äâä¯ÀÀÆ÷µÄ¹¤¾ß¡£
³£¹æ¼à¿ØÎÒÃÇʹÓà PhantomJS Ä£Äâä¯ÀÀÆ÷´ò¿ªÒ³Ãæ½øÐÐץȡ£¬È»ºó½«¼à¿Ø¹æÔò½âÎö³É JavaScript
´úÂëÆ¬¶ÎÖ´ÐÐÊÕ¼¯½á¹û¡£
¸ß¼¶¼à¿ØÎÒÃÇʹÓà PhantomJS ´ò¿ªÒ³ÃæºóÏòÒ³Ãæ×¢ÈëÏñ jasmine, Mocha µÈÀàËÆµÄǰ¶Ë
JavaScript ²âÊÔ¿ò¼Ü£¬È»ºóÔÚÒ³ÃæÖ´ÐжÔÓ¦µÄ¼Èë²âÊÔÓÃÀý²¢·µ»Ø½á¹û¡£
¹æÔò¶ÓÁÐÉú³ÉÆ÷
¹æÔò¶ÓÁÐÉú³ÉÆ÷»á½«¹æÔòϵͳ²É¼¯µÄ¹æÔòת»¯Àà³ÉÏûÏ¢¶ÓÁУ¬È»ºó½»Óɳ¤Ê±³ÖÐø´¦ÀíÆ÷ÒÀ´Î´¦Àí¡£
Ϊʲô²ÉÓÃÀàÏûÏ¢¶ÓÁеĴ¦Àí·½Ê½£¿
ÕâºÍ PhantomJS µÄÐÔÄÜÊÇÃܲ»¿É·ÖµÄ£¬Óɶà´Îʵ¼ù·¢ÏÖ£¬PhantomJS ²¢²»ÄܺܺõؽøÐв¢·¢´¦Àí£¬µ±²¢·¢¹ý¶à£¬»áµ¼ÖÂ
CPU ¹ýÔØ£¬´Ó¶øµ¼Ö»úÆ÷å´»ú
ÔÚ±¾»ú»·¾³ÏµÄÐéÄâ»úÖнøÐв¢·¢²âÊÔ£¬Êý¾Ý²¢²»ÀíÏ룬¼«ÏÞ»ù±¾ÔÚ ab -n 100 -c 50 ×óÓÒ¡£ ËùÒÔΪÁË·ÀÖ¹²¢·¢µ¼ÖµÄÎÊÌ⣬¾ÍÑ¡ÔñÁËʹÓÃÀàÏûÏ¢¶ÓÁÐÀ´±ÜÃâÒòΪ²¢·¢¹ý¸ßµ¼ÖµķþÎñ²»¿ÉÓá£
ÀàÏûÏ¢¶ÓÁеÄʵÏÖ
ÎÒÃÇÕâÀïͨ¹ýµ÷ÓÃÄÚ²¿µÄ·Ö²¼Ê½»º´æÏµÍ³Éú³ÉÀàÏûÏ¢¶ÓÁУ¬¶ÓÁеÄÉú³ÉÆäʵ¿ÉÒԲο¼Êý¾Ý½Ó¿Ú¨C¶ÓÁС£×î»ù±¾µÄÄ£Ð;ÍÊÇÔÚ»º´æÖд´½¨Ò»¸ö
KEY £¬È»ºó¸ù¾Ý¶ÓÁÐÊý¾Ý½á¹¹µÄģʽ½øÐÐÊý¾ÝµÄ²åÈëºÍÌáÈ¡¡£
µ±È»£¬ÀàÏûÏ¢¶ÓÁеÄÖмä½éÖʿɸù¾ÝÄãʵ¼ÊµÄÌõ¼þÀ´Ñ¡Ôñ£¬µ±È»ÄãÒ²¿ÉÒÔʹÓñ¾»úÄÚ´æÊµÏÖ¡£Õâ¿ÉÄܻᵼÖÂÓ¦ÓúÍÀàÏûÏ¢¶ÓÁоºÕùÄÚ´æ¡£
³¤Ê±³ÖÐø´¦ÀíÆ÷
³¤Ê±³ÖÐø´¦ÀíÆ÷ÊÇÒª¹¦ÄܾÍÊÇÏû·Ñ¹æÔò¶ÓÁÐÉú³ÉÆ÷Éú³ÉµÄÀàÏûÏ¢¶ÓÁС£
³¤Ê±³ÖÐø´¦ÀíʵÏÖ
ÔÚ³¤Ê±³ÖÐø´¦ÀíÆ÷µÄ¾ßÌåʵÏÖÖУ¬ÎÒÃdzä·ÖÀûÓÃÁË JavaScript µÄ setInterval ·½·¨À´³ÖÐø»ñÈ¡ÀÛÏûÏ¢¶ÓÁеÄÄÚÈÝÏ·¢¸ø¹æÔòת»¯Æ÷£¬È»ºóת·¢¸ø¸ºÔؾùºâµ÷¶ÈÆ÷¡£Ö®ºóÔÙ¶Ô·µ»ØµÄ½á¹û½øÐÐͳһ´¦Àí£¬±ÈÈçÓʼþ»òÕß¶ÌÐű¨¾¯¡£
API
PhantomJS ·þÎñ¿ÉÒÔ×öΪ¹«¹² API Ìṩ¸ø¿Í»§¶Ë½øÐвâÊÔÐèÇóµÄ´¦Àí£¬ API ͨ¹ý HTTP
·½Ê½µ÷Óá£ÔÚ API µÄ´¦ÀíÉÏÐèÒªÌṩ HTTP Êý¾Ýµ½¹æÔòºÍ PhantomJS µÄת»»¡£´Ó¶øÓÖÑÝ»¯³öÁË
HTTP Êý¾Ýµ½¹æÔòת»»Æ÷¡£
PhantomJS ·þÎñ
PhantomJS ·þÎñÊÇÖ¸½« PhantomJS ½áºÏ HTTP ·þÎñºÍ×Ó½ø³Ì½øÐзþÎñ»¯µÄ´¦Àí
Ê×ÏÈ¡¢Æô¶¯ HTTP ·þÎñ£¬È»ºó½«³¤Ê±´¦ÀíÆ÷Ï·¢µÄ¹æÔò½øÐнøÒ»²½×ª»¯£¬×ª»¯ºóÆô¶¯×Ó½ø³Ì£¬HTTP ·þÎñ»á¼àÌý×Ó½ø³ÌµÄ´¦Àí½á¹û£¬²¢ÔÚ´¦ÀíÍê±ÏÖ®ºó·µ»Ø¡£
(4)±¨¾¯ÏµÍ³
±¨¾¯ÏµÍ³ÎÒÃÇĿǰʹÓõÄÊǾ©¶«ÄÚ²¿×ÔµÄͳһ¼à¿ØÆ½Ì¨ UMP£¬Í¨¹ýµ÷ÓÃÆ½Ì¨ÌṩµÄһЩ API À´ÊµÏÖ±¨¾¯ÓʼþÓë¶ÌÐÅ֪ͨ¡£
ÈçºÎ¸ù¾Ý±¨¾¯µ½¾ßÌåÒ³Ãæ£¿
ÔÚÓû§Í¨¹ý¼à¿Ø¹ÜÀíϵͳ¼Èë¹æÔòºó£¬¼à¿ØÏµÍ³»á¸ù¾Ý UMP ¹æÔòÕë¶ÔÓû§Â¼ÈëµÄÒ³ÃæÉú³É UMP ʹÓÃµÄ key¡£µ±³¤Ê±³ÖÐø´¦ÀíÆ÷·¢ÏÖ
PhantomJS ·þÎñ·µ»ØµÄ½á¹û±êʾΪÒì³£ºó£¬¾Í»áʹÓà key À´½øÐÐÈÕÖ¾¼Ç¼¡£
ºÎʱ³ö·¢±¨¾¯£¿
±¨¾¯Ö÷Òª·ÖΪÁ˶ÌÐźÍÓʼþ±¨¾¯¡£Óʼþ±¨¾¯ÊÇÔÚÿÌõÒì³£Ö®ºó¾Í»á·¢¸øÖ¸¶¨ÏµÍ³Óû§¡£¶ÌÐÅÔòÊǸù¾ÝÒì³£´ÎÊýÀ´½øÐд¦ÀíµÄ£¬µ±Òì³£´ÎÊý¹ý´ó£¬¾Í»áÏ·¢¶ÌÐÅ֪ͨ¡£
(5)²¿Êð
¶ÔÓÚ´Ëϵͳ²¿ÊðÊÇ·ÖΪÁ½´ó¿é½øÐеġ£ÒòΪ»úÆ÷×ÊÔ´ÊýÁ¿ÓÐÏÞ£¬Ã»Óн«ËùÓв¿·Ö¶¼µ¥¶À²¿Êð¡£
¹æÔò¹ÜÀíϵͳÒÔ¼°¹æÔò¶ÓÁÐÉú³ÉÆ÷ºÍ³ÖÐø´¦ÀíÆ÷ÕûºÏ²¿ÊðÔÚһ̨»úÆ÷ÉÏ£¬PhantomJS·þÎñ²¿ÊðÔÚÁËÆäËûµÄ»úÆ÷ÉÏ¡£½ø³Ì¹ÜÀíʹÓÃÁËÖøÃûµÄPM2¡£ÕâÑù¾Í¿ÉÒÔ±ÜÃâ×Ô¼ºÔÚ¿ª·¢ÀàËÆµÄ²¿Êð¹¦ÄÜ¡£PM2
ÊÇÒ»¸ö´øÓиºÔؾùºâ¹¦ÄܵÄNodeJSÓ¦ÓõĽø³Ì¹ÜÀíÆ÷¡£¿É³ä·ÖÀûÓÃCPU£¬²¢±£Ö¤½ø³ÌÓÀÔ¶¶¼´æ»î¡£
PM2 ÌØÐÔ£º
ÄÚ½¨¸ºÔؾùºâ£¨Ê¹Óà Node cluster ¼¯ÈºÄ£¿é£©¡£
ÎÞ·ìÖØÆôÀàËÆ nginx reload¡£
¾ßÓÐ Ubuntu ºÍ CentOS µÄ¿ª»úÆô¶¯½Å±¾¡£
¿ØÖÆÌ¨¼ì²â¡£
²»¹ýÔڴ˴β¿ÊðÖУ¬²¢Ã»ÓÐʹÓÃÄÚ½¨¸ºÔؾùºâµÄÌØÐÔ£¬Ã»ÓÃͨ¹ý¼¯ÈºµÄ·½Ê½²¿Êð´úÀí¡£½ö½öʹÓÃÁ˺ǫ́ÔËÐÐºÍ 0 ÃëÍ£»úÖØÔØµÄÌØÐÔ
6. ×ܽáÓëÕ¹Íû
ÆäʵÎÒÃÇÏÖÔÚ¿ª·¢µÄÕâÌ×¼à¿ØÏµÍ³²¢²»¸´ÔÓ£¬Ö»ÊǺÏÀíµÄÔËÓÃÁËһЩÏÖÓеļ¼Êõ¿ò¼Ü¡£³éÏó³öÀ´ÎÒÃÇ×Ô¼ºÐèÒªµÄһЩ¹¦ÄÜ¡£µ«È´ÓÐЧµÄ´ïµ½ÁËÎÒÃǵÄÔ¤ÆÚ¹¦ÄÜ£¬²¢ÇÒ½ÚÊ¡Á˺ܶà֮ǰÐèÒªÈËÈâ²âÊÔµÄʱ¼ä³É±¾¡£ÏµÍ³±¾Éí»¹ÓкܶàÎÊÌâÔÚ´ý½â¾ö״̬£¬±ÈÈ籨¾¯ÏµÍ³µÄ¹æÔò´¦ÀíÓë·§ÖµÉ趨£¬JavaScript±¨´íµÄ׼ȷ¹ýÂË»úÖÆµÈ£¬ÕâЩÎÊÌâÎÒÃǶ¼»áÒ»Ò»½â¾ö£¬²¢ÇÒδÀ´µÄǰ¶Ë¼à¿ØÏµÍ³»á³ÉΪһ¸öƽ̨£¬ºËÐÄ·þÎñÔÚºó¶ËÅÀÈ¡Ò³Ãæ·þÎñ£¬Ó¦Óö˿ÉÒÔÓжàÖÖÐÎʽ£¬±ÈÈç¼à¿Ø¡¢²âÊÔ¹¤¾ßµÈ¡£
һЩ¿ÉÒÔ³ÖÐøÓÅ»¯µã£º
¼à¿ØÏµÍ³ËäÈ»ÔÚÓ¦ÓòãÃæ½øÐÐÁË´¹Ö±»®·Ö£¬µ«ÊÇÓÉÓÚ»úÆ÷×ÊÔ´µÈÏÞÖÆ£¬²¢Ã»ÓнøÐе¥¶À¹¦ÄܵIJ¿Êð¡£Õâµã¿ÉÄÜ»áÔÚºóÆÚµÄʹÓÃÖнøÐÐÓÅ»¯¡£ÒòΪÏÖÔÚ½ö½öÌṩ¸ø±¾²¿ÃÅʹÓá£
PhantomJS·þÎñ»¹ÐèÒª½øÒ»²½ÓÅ»¯£¬ÒÔ³ÐÔØ´ó²¢·¢£¬´ó´¦ÀíÁ¿¡£Ìṩ³ÉÎȶ¨µÄ·þÎñ¡£Ðͬ¿ª·¢ÒµÎñÏߺͲâÊÔÒµÎñÏßÖÆ¶¨Í³Ò»µÄ¹æ·¶£¬ÒÔ´ïµ½ÓÅ»¯µÄ¼à¿Ø¡£
±¨¾¯ÓÉÓÚÒÀÀµÓÚ¹«Ë¾ÄÚ²¿µÄUMPϵͳ£¬ËùÒÔ²¢²»ÊÇÌØ±ðÁé»î£¬Ã¿´Îϵͳ½ÓÈë¶¼ÐèÒªÓû§È¥UMPϵͳ½ÓÈë¡£
|