Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ΪSymfony2ºÍRedisÕýÃû£¬»ùÓÚPHPµÄ10ÒÚÇëÇó/ÖÜÍøÕ¾´òÔì
 
×÷Õß  Jared Tarbell »ðÁú¹ûÈí¼þ  ·¢²¼ÓÚ 2014-08-06
  3337  次浏览      27
 

Octiviµ±ÏÂÍøÕ¾Ã¿ÖÜÇëÇóÊýÒÑ´ï10ÒڴΣ¬È»¶ø³öÈËÒâÁϵÄÊÇ£¬ËûÃÇÈÔȻʹÓÃ×ÅSymfony2Õâ¸öͨ³£±»ÈÏΪµÍÐÔÄܵÄPHP Framework¡£³ý´ËÖ®Í⣬ËûÃǸüʹÓÃÁËRedis×÷ΪÖ÷Òª´¢´æ¡£

Èç¹ûÄ㻹ÔÚSymfony2ºÍRedisʹÓÃÖдæÔÚÕâÑùµÄ´íÎó¹ÛÄ¡ª²»ÄÜʹÓÃRedis×÷ΪÖ÷Òª´æ´¢£»Symfony2µÄ¹¦Äܺܶ࣬ÒÔÖÁÓÚËüµÄÔËÐкÜÂý£¬ÄÇô²»·Á¿´ÏòOctiviµÄ¸ßÇëÇóÍøÕ¾´òÔì¡£ËäȻûÓеײãϸ½Ú£¬µ«Ïêϸչʾ»ùÓÚÁ½ÕßÓ¦Óõĺê¹ÛÌØÐÔ£¬ÒÔ¼°¿ª·¢Ê±µÄSymfony2ÌØÕ÷¡£

ÒÔÏÂΪÒëÎÄ£º

ÓÐÈË˵Symfony2ÏñÆäËüµÄ¸´ÔÓ¿ò¼ÜÒ»Ñù£¬ºÜÂý£¬µ«ÊÇÎÒÃÇÈÏΪÕâÒ»Çж¼È¡¾öÓû§µÄ±¾Éí¡£±¾ÎĽ«½éÉÜ»ùÓÚSymfony2£¬Ã¿ÖÜÖ´ÐÐ10ÒÚ¶à¸öÇëÇóµÄÓ¦ÓõÄÈí¼þ¼Ü¹¹Ï¸½Ú¡£

ÏÂÃæ½«Õ¹Ê¾tweetingÖ®ºóµÄÉç½»·´À¡£º

±¾ÎĽ«½éÉÜ»ùÓÚSymfony2ºÍRedisµÄÓ¦Óá£Ôڴ˲»»áÓйý¶àµÄϸ½ÚÃèÊö£¬Ïà·´ÎÒÃǽ«¸øÄãչʾÕâЩӦÓõĺê¹ÛÌØÐÔ£¬ÒÔ¼°¿ª·¢Ê±µÄSymfony2ÌØÕ÷¡£

¶ÔÓڵͲã´ÎµÄSymfony2ÐÔÄÜÓÅ»¯Êµ¼ù£¬ÎÒÃÇдÁËרÃŵÄÎÄÕ¡ª¡ªÕÆÎÕSymfony2ÐÔÄÜϵÁСª¡ªInternalsºÍDoctrine>

Ê×ÏÈÊǹØÓÚËùÃèÊöÓ¦ÓõÄһЩÊý¾Ý¡£

À´×Ôµ¥¸ö³ÌÐò½ÚµãµÄÐÔÄÜͳ¼Æ£º

  • Symfony2ʵÀýÿÃë´¦Àí700¸öÇëÇó£¬Ã¿¸öÇëÇ󯽾ùÏìӦʱ¼ä30ºÁÃë
  • VarnishÿÃë´¦Àí12000¶à¸öÇëÇó£¨Í¨¹ýѹÁ¦²âÊÔ»ñµÃ£©

×¢Ò⣬ÈçÏÂÃæËùÃèÊöµÄ£¬Õû¸öƽ̨°üÀ¨Ðí¶àÕâÖÖ½Úµã

Redis¶ÈÁ¿£º

  • 1.6ÒÚ¶à¸ö¼ü£¨ÆäÖÐ98%ÊÇÓÀ¾Ã´æ´¢£©£»
  • 89% hits¡ªÒ²¾ÍÊÇ˵£¬Ö»ÓÐ11%µÄ½»Ò×µ½´ïMYSQL·þÎñÆ÷¡£

Õ»½á¹¹

Ó¦ÓÃ

ËùÓеÄÁ÷Á¿¶¼»áÁ÷ÈëHAProxy£¬HAProxy½«Á÷Á¿·ÖÅ䏸ӦÓ÷þÎñÆ÷¡£

Ó¦ÓÃʵÀýǰÊÇVarnish Reverse Proxy¡£

ÎÒÃDZ£³ÖVarnishÔÚÿ¸öÓ¦ÓõķþÎñÆ÷¶¼±£³Ö¸ß¶È¿ÉÓÃÐÔ¡ª¡ªÃ»Óе¥µã¹ÊÕÏ¡£µ¥¸öVarnish·ÖÅäÁ÷Á¿¿ÉÄܵ¼Ö·çÏÕ¡£·ÖÀëµÄVarnishʵÀý¿ÉÄܽµµÍ»º´æhit£¬²»¹ýÎÒÃÇ¿ÉÒÔ½ÓÊÜÕâ¸ö¡£ÎÒÃǶԿÉÓÃÐÔµÄÐèÇó¸ßÓÚ¶ÔÐÔÄܵÄÐèÒª£¬²»¹ýÄã¿ÉÒÔ´ÓÕâЩÊý×ÖÖп´µ½£¬ÐÔÄÜÒ²²»ÊÇʲôÎÊÌâ¡£

Ó¦ÓõķþÎñÆ÷ÅäÖãº

  • Xeon E5-1620@3.60GHz, 64GB RAM, SATA
  • Apache2£¨ÎÒÃÇÉõÖÁ²»ÓÃnginx£©
  • PHP5.4.XÒÔPHP-FPMÔË×÷£¬°éËæAPC

Êý¾Ý´æ´¢

ÎÒÃÇʹÓÃRedisºÍMySQL´æ´¢Êý¾Ý£¬ËüÃǵÄÊý×Ö»¹Í¦´óµÄ£º

  • Redis£º
  1. 1.5Íò´Îײ»÷/Ãë
  2. 1.6ÒÚ¸ö¼ü
  • MySQL£º
  1. ¶àÓÚ400 GBµÄÊý¾Ý
  2. 3ÒڷݼǼ

ÎÒÃǼ´Ê¹ÓÃRedis×÷ΪÓÀ¾Ã´æ´¢£¨ÓõÄ×î¶àµÄ×ÊÔ´£©£¬ÓÖʹÓÃRedis×÷ΪMySQLÉϵĻº´æ²ã¡£ÓëµäÐ͵Ļº´æÏà±È£¬Redis´æ´¢Êý¾ÝµÄ±ÈÂʺܸߡª¡ªÎÒÃÇ´æ´¢1.55ÒÚ¶à¸öÓÀ¾ÃÀàÐͼüºÍ½ö500Íò¸ö»º³å¼ü¡£Êµ¼ÊÉÏ£¬ÎÒÃÇ¿ÉÒÔʹÓÃRedis×÷ΪÖ÷ÒªµÄÊý¾Ý´æ´¢¡£

RedisÅäÓÐÖ÷´ÓÉèÖá£Í¨¹ýÕâÖÖ·½Ê½ÎÒÃÇ»ñµÃHA¡ª¡ªÈç¹û·¢ÉúÔËÐÐÖжÏÎÒÃÇ¿ÉÒԺܿìµÄ½«Ö÷½ÚµãÇл»µ½Ä³Ò»¸ö´Ó½Úµã¡£Ò»Ð©¹ÜÀíÈÎÎñÈçÉý¼¶Ò²ÐèÒªÕâЩÅäÖá£ÔÚÉý¼¶½Úµãʱ£¬ÎÒÃÇ¿ÉÒÔÑ¡ÔñеÄÖ÷½Úµã£¬È»ºóÉý¼¶ÏÈǰµÄÖ÷½Úµã£¬×îºó½»»»Á½¸ö½Úµã¡£

ÎÒÃÇÈÔÔڵȴýÉú²ú¾ÍÐ÷µÄRedis¼¯Èº£¬ÕâЩ¼¯Èº¿ÉÒÔÌṩÀàËÆ×Ô¶¯¹ÊÕϻָ´£¨Éý¼¶½Úµãʱ¼´Ê¹ÊÇÊÖ¶¯¹ÊÕϻָ´Ò²»á·½±ãµÄ¶à£©µÄ¹¦ÄÜ¡£²»¹ýĿǰ»¹Ã»ÓÐÈκιØÓÚ¹Ù·½·¢²¼ÈÕÆÚµÄÏûÏ¢¡£

MySQLͨ³£ÓÃ×÷·ÇºÄ¾¡×ÊÔ´µÄµÚÈý²ã»º´æ²ã£¨Varnish > Redis > MySQL£©¡£ËùÓÐµÄ±í¶¼ÊÇInnoDB£¬×î¶àµÄ²éѯÊǼòµ¥µÄ

Õâ¸ö²éѯ·µ»Øµ¥¸ö½á¹û¡£ÎÒÃÇ»¹Ã»Óз¢ÏÖÕâôÉèÖûáÓÐʲôÐÔÄÜÎÊÌâ¡£

ÓëRedisÉèÖò»Í¬£¬MySQLÔËÐÐÔÚÖ÷ÅäÖÃÉÏ£¬³ý¸ß¿ÉÓÃÐÔÍ⣬Õ⻹ÌṩÁ˸üºÃµÄдÐÔÄÜ£¨ÔÚRedisÖÐÕâ²»ÊÇʲôÎÊÌ⣬ÒòΪÎÒÃDz»»áºÄ¾¡ÐÔÄÜÌØÐÔ¡££©

Application¡¯s Architecture

Symfony2¹¦ÄÜ

SymfonyÓÐһЩºÜ°ôµÄ¹¦ÄÜ£¬ÕâЩ¹¦ÄÜʹ¿ª·¢¹ý³Ì±äµÃ¸üÈÝÒ×£¬ÏÂÃæÎÒÃÇÉÜ¿ª·¢Õß×îϲ»¶µÄһЩ¹¦ÄÜ£º

×¢ÊÍ

ÎÒÃÇʹÓôø×¢Ê͵ÄSymfony2±ê×¼·Ö²¼£º

  • ·ÓÉÑ¡Ôñ¡ª¡ªÂ·Óɶ¨ÒåÁËÓ¦ÓõÄURL¡ªÎÒÃÇÒ²²âÊÔÁËApacheµÄÓÞ´ÀµÄ·ÓɹæÔò£¬µ«ËüûÓÐÈκεÄÖ÷ÒªÓÅ»¯¡£
  • ·þÎñÈÝÆ÷¡ª¡ªÎÒÃÇʹÓÃJMSDiExtraBundleµÄ·þÎñ×¢ÊͶ¨ÒåÎÒÃǵÄDIÈÝÆ÷¡ªÕâ¼ÓËÙÁË¿ª·¢£¬ÔÊÐíÎÒÃÇÓÃPHP´úÂë´¦Àí·þÎñ¶¨Ò壬ÎÒÃÇ·¢ÏÖPHP´úÂë¸ü¿É¶Á¡£

ÒòΪӦÓÃÓÃ×÷REST API£¬ËùÒÔÎÒÃÇÖ÷Òª²»Ê¹ÓÃÄ£°å£¨ÀýÈçTwig£©¡£ÎÒÃDZ£ÁôÄ£°åÖ÷ÒªÊÇΪÁËһЩÄÚ²¿µÄÒDZíÅÌÃæ°å¡£

ÎÒÃÇ»¹Ã»Óз¢ÏÖ²»Í¬µÄÅäÖÃÀàÐÍ£¨YAML/XML£©´øÀ´µÄÐÔÄÜÓ°Ïì¡£ÒòΪËùÓеÄ×¢ÊͶ¼ºÜºÃµÄ´æ´¢ÏÂÀ´ÁË£¬ËùÒÔûÓÐʲôÁîÈ˷ѽâµÄµØ·½¡ª×îºóËùÓеĶ«Î÷¶¼ÊÇ´¿PHP´úÂë¡£

ÏÂÃæÊÇÎÒÃÇʹÓÃJMSDiExtraBundle»ñµÃµÄ·þÎñÅäÖÃÑùÀý£º

ͨ¹ýÕâÖÖ·½Ê½£¬¸Ä±äÀàÒÀÀµÏîÖ»ÐèÒª¸Ä±ä´úÂë¡£

Symfony2¼à¿Ø¡ªMonologºÍStopwatch

Ó¦ÓÃʹÓÃMonolog¼Ç¼ÒâÁÏÖ®ÍâµÄÐÐΪ£¬²¶»ñ´íÎóÐÅÏ¢¡£ÎÒÃÇʹÓöà¸öÐŵÀ»ñÈ¡²»Í¬Ó¦ÓÃÄ£¿éµÄ·ÖÀëµÄÈÕÖ¾¡£

ÒòΪFingersCrossed handlerʹÓý϶àÄڴ棨¿ÉÄܵ¼ÖÂÄÚ´æÐ¹Â©£©£¬ËùÒÔÎÒÃDz»ÔÙʹÓÃËü¡£ÎÒÃÇÑ¡ÓÃÊʵ±µÄStreamHandler¡£Ê¹ÓÃÕâÖÖ·½Ê½Ê±ÎÒÃÇÐèÒªÔÚµ¥ÐÐÈÕÖ¾ÐÅÏ¢Ìí¼ÓÈßÓàºÍ¶îÍâµÄÄÚÈÝ¡£

ÎÒÃÇÒ²ÔÚºÜ¶àµØ·½Ê¹ÓÃStopwatch×é¼þÒÔ¿ØÖÆÒ»Ð©µäÐ͵ÄÓ¦Ó÷½·¨¡£Í¨¹ýÕâÖÖ·½Ê½ÎÒÃÇ¿ÉÒÔ·¢ÏÖ¿ÍÖÆ»¯Âß¼­Ò»Ð©´ó¿éÖеÄÈõµã¡£

ÀýÈ磬ÎÒÃÇ×·×ÙһЩÍâ²¿ÍøÂç·þÎñµÄÇëÇó´ÎÊý£º

¿ØÖÆÌ¨×é¼þ

¿ª·¢ºÍά»¤Ê±£¬ÎÒÃÇÌØ±ðϲ»¶Symfony¿ØÖÆÌ¨×é¼þ£¬Õâ¸ö×é¼þΪ´´½¨CLI¹¤¾ßÌṩÁ˺ܺõÄÃæÏò¶ÔÏó½Ó¿Ú¡£Ó¦Óôó¸ÅÌí¼ÓÁË50%µÄй¦ÄÜ£¬ÕâЩй¦ÄÜ»ùÓÚCLIÖ¸ÁÖ÷ÒªÓÃ×÷¹ÜÀí»ò·ÖÎöÓ¦ÓÃÄÚ²¿¹¹¼þ¡£

¿ØÖÆÌ¨×é¼þÍ×ÉÆµÄ´¦ÀíÃüÁîÓï¾ä»òÑ¡ÏÄã¿ÉÒÔÉèÖÃĬÈÏÖµ£¬¿Éѡֵ»òËùÐèµÄÖµ¡£ºÃµÄʵ¼ù×ÜÊǽ«ÕâЩǡµ±µÄ¼Ç¼Ϊ´úÂ롪Äã¿ÉÒÔ¸øÃüÁîºÍÑ¡ÏîÉèÖÃÖ÷ÒªÃèÊö¡£ÃüÁîͨ³£ÊÇ×ÔÎÒÎĵµµÄ£¬ÒòΪÌí¼Ó--helpÑ¡Ïî±ãÄÜÉú³É¸ñʽ»¯µÄÖ¸ÁîÃèÊö¡£

ÎÒÃDZØÐëÀμÇÔÚ׼ȷÉèÖõĻ·¾³ÏÂÔËÐÐÖ¸ÁĬÈϵÄdev¿ÉÄܻᵼÖÂһЩÎÊÌ⣬ÈçÄÚ´æÐ¹Â©£¨ÒòΪ¸ü¶àÈß³¤µÄÈÕÖ¾´æ´¢ºÍ±£´æµ÷ÊÔÐÅÏ¢£©¡£

ÏëÒª¸üºÃµÄÐÅÏ¢ÏÔʾ£¬Ìí¼Ó-vÑ¡Ïî¡£

½ø¶ÈÌõÊÇÒ»¸öºÜºÃµÄ°ïÊÖ¡£½ø¶ÈÌõÉõÖÁ¿¼ÂÇÁËÐÅÏ¢ÏÔʾÏêϸ³Ì¶È£¬µ±³Ì¶È±È½ÏµÍʱ£¬Ö»ÏÔʾ»ù±¾ÐÅÏ¢£¬³Ì¶È±È½Ï¸ßʱ£¬»¹¿ÉÒÔÏÔʾÔËÐÐʱ¼ä£¬ÄÚ´æÏûºÄµÈÐÅÏ¢¡£

´ËÍ⣬ÎÒÃÇ»¹ÓÐһЩºÄʱ´óÔ¼Á½ÌìµÄÇ¨ÒÆ¹ý³Ì¡ª0ÄÚ´æÐ¹Â©¡ªÃ»Óнø¶ÈÌõ£¬¼à¿ØËüÃǽ«ÊÇÔÖÄÑ¡£

Êý¾Ý²ã

¶ÔÓÚRedis£¬Êý¾Ý²ãÎÒÃÇʹÓÃPredisBundle¡£

ÎÒÃǾܾøDoctrine ORM£¬ÒòΪËü½«Ìí¼Ó¶îÍâ·ÑÓ㬶øÇÒÎÒÃDz»ÐèÒªÈκθ߼¶µÄÃæÏò¶ÔÏó²Ù×÷¡£ÎÒÃÇʹÓÃDoctrine DBAL´úÌæ£¬Doctrine DBALÌØÕ÷ÈçÏ£º

  • ²éѯÉú³ÉÆ÷
  • Ô¤´¦ÀíÓï¾ä

ʹÓÃPredisBundleºÍDoctrine BundleÒ²ÔÊÐíÎÒÃÇÔÚ´óÁ¿Ê¹Ó÷ÖÎö¹¤¾ßµÄʱºò¼à¿ØÈõ²éѯ¡£

×ܽá

¶à¿÷Symfony2£¬ÕâÖÖÉèÖÃÔÚ±£³Ö¸ßÐÔÄܺ͸߿ÉÓÃÐÔµÄͬʱ±£³ÖÁËÓÑÉÆµÄ¿ª·¢»·¾³¡ª¡ª¿Éά³Ö£¬Îȶ¨¡£Êµ¼ÊÉÏÕâÊÇÓÃ×÷µçÉÌÍøÕ¾µÄ¹Ø¼ü×ÓϵͳµÄ¹Ø¼üÒµÎñÐèÇó¡£

Òò´Ë±¾ÎĵÄ×îºóÎÒÃÇ¿ÉÒÔ¾ÀÕýһЩ´íÎó¹Ûµã£º

  • ²»ÄÜʹÓÃRedis×÷ΪÖ÷Òª´æ´¢¡ª¡ªÈçÎÒÃÇÏÈǰËù˵µÄ£¬µ±È»ÊÇ¿ÉÒԵģ¡RedisÊÇÒ»ÏîºÜÎȶ¨µÄ¼¼Êõ£¬ÓÐһЩ³ÖÐøÐÔ»úÖÆ£¬Äã²»»á¶ªÊ§¹Ø¼üÊý¾Ý¡£
  • Symfony2¹¦ÄܺܶàÒÔÖÁÓÚËüºÜÂý¡ª¡ªµ±Ä㲻ʹÓÃÀýÈçORMµÄһЩºÄʱ/ÄÚ´æµÄ¹¤¾ßʱ£¬Äã¿ÉÒÔ»ñµÃºÍSilex£¨Êǵģ¬ÎÒÃDzâÊÔ¹ýËü£©Î¢¿ò¼ÜÀàËÆµÄÐÔÄÜ¡£
   
3337 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí