·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)(ÒÔϼò³ÆDAL)ÊÇ×ÛºÏMySQL Proxy¡¢Memcached¡¢¼¯ÈºµÈµÈ¼¼ÊõÓÅµã¶ø¹¹½¨µÄÒ»¸öÈí¼þϵͳ¡£Ä¿µÄÊÇΪÁ˽â¾öÔÚ¹¹½¨´óÖÐÐÍÍøÕ¾Ê±Óöµ½µÄºÍÊý¾Ý·ÃÎÊÓйصÄÖî¶àÎÊÌ⣬ÈçÔõôʹµÃÇпâ·Ö±í͸Ã÷»¯£¬ÈçºÎʹµÃ»º´æ´æÈ¡Çå³ý×Ô¶¯»¯£¬ÔõÑù²ÅÄܸüºÃµØ·ÀÖ¹·þÎñµ¥µã¹ÊÕϵȵȡ£DALÊÇÊÖ»úÖ®¼ÒÍŶӽü¼¸ÄêÔÚ¿ª·¢ºÍÔËÓªÉϵľÑéµÄ×ܽáÒÔ¼°Öǻ۵Ľᾧ¡£
Ðí³¬Ç° ÊÇÊÖ»úÖ®¼Òһλ×ÊÉîµÄ¿ª·¢Õߺͼܹ¹Ê¦, JavaEye·Ç³£ÈÙÐҵIJɷÃÁËËû¡£
Ðí³¬Ç°²©¿Í£ºhttp://www.longker.org/
»¶Ó´ó¼ÒÍÆ¼ö¸ü¶à¿ªÔ´ÏîÄ¿ºÍÒµ½çר¼Ò¸øÎÒÃÇ£¬Ö§³ÖÖйúµÄIT·¢Õ¹£¬·¢Õ¾ÄÚ¶ÌПøJavaEye¹ÜÀíÔ±»òÕß·¢Ðŵ½webmaster@javaeye.com£¬Ð»Ð»¡£
Ðí³¬Ç° ÊÇÊÖ»úÖ®¼Òһλ×ÊÉîµÄ¿ª·¢Õߺͼܹ¹Ê¦, JavaEye·Ç³£ÈÙÐҵIJɷÃÁËËû¡£
Ðí³¬Ç°²©¿Í£ºhttp://www.longker.org/
»¶Ó´ó¼ÒÍÆ¼ö¸ü¶à¿ªÔ´ÏîÄ¿ºÍÒµ½çר¼Ò¸øÎÒÃÇ£¬Ö§³ÖÖйúµÄIT·¢Õ¹£¬·¢Õ¾ÄÚ¶ÌПøJavaEye¹ÜÀíÔ±»òÕß·¢Ðŵ½webmaster@javaeye.com£¬Ð»Ð»¡£
²É·Ã·Ö²¼Ê½Êý¾Ý·ÃÎʲã(Data Access Layer)×÷ÕßÐí³¬Ç°£¨Ê®ËÄ£© 
JavaEye£º1.Hi£¬Ðí³¬Ç°£¬ÄãºÃ£¬·Ç³£ÈÙÐÒÄܹ»²É·ÃÄ㣬Ê×ÏÈÄãÄܹ»Ïò´ó¼Ò½éÉÜһϷֲ¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)Âð£¿
Ðí³¬Ç°£º¼òµ¥ËµÀ´£¬·Ö²¼Ê½Êý¾Ý·ÃÎʲã(ÒÔϼò³ÆDAL)ÊÇ×ÛºÏMySQL Proxy¡¢Memcached¡¢¼¯ÈºµÈµÈ¼¼ÊõÓÅµã¶ø¹¹½¨µÄÒ»¸öÈí¼þϵͳ¡£Ä¿µÄÊÇΪÁ˽â¾öÔÚ¹¹½¨´óÖÐÐÍÍøÕ¾Ê±Óöµ½µÄºÍÊý¾Ý·ÃÎÊÓйصÄÖî¶àÎÊÌ⣬ÈçÔõôʹµÃÇпâ·Ö±í͸Ã÷»¯£¬ÈçºÎʹµÃ»º´æ´æÈ¡Çå³ý×Ô¶¯»¯£¬ÔõÑù²ÅÄܸüºÃµØ·ÀÖ¹·þÎñµ¥µã¹ÊÕϵȵȡ£ºóÃæ£¬ÎÒ»áÔÚÎҵIJ©¿ÍÉÏÒÔ¼°½ñÄêµÄSD2China´ó»áÉÏ×ö½øÒ»²½µÄ˵Ã÷£¬ÓÐÐËȤµÄ¿ÉÒÔÁôÒâ¡£
JavaEye£º2.·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÊÇʲôʱºòµ®ÉúµÄ£¬ÄÜ·ñ½éÉÜһϷ¢Õ¹Àú³Ì£¿
Ðí³¬Ç°£ºDALµÄ²úÉúÊǾÀúÒ»·¬²¨Õ۵ġ£
2007 Ä꣬ÊÖ»úÖ®¼ÒµÄÓû§ÒѾ½Ó½ü1000Íò¡¢PVÒ²µ½ÁË500ÍòÒÔÉÏ£¬Õý´¦ÓÚÖÐСÐÍÍøÕ¾Ïò´óÐÍÍøÕ¾µÄ¹ý¶ÉʱÆÚ¡£ÄÇʱºò£¬ÎÒÃÇÃ÷ÏԸоõµ½ÎÒÃÇÔÚ¼¼ÊõÉÏÒѾÓöÉÏÁËÆ¿¾±£ºÒ»¸öÊÇϵͳ¸ºÔعý¸ß£¬¾³£Òªµ£ÐÄÎÒÃǵÄÊý¾Ý¿âÊDz»ÊÇÓÖ¹ÒÁË£¬½ø¶øÔì³ÉÕû¸öϵͳµÄ̱»¾£»µÚ¶þ¸öÊÇ5Äê»ýÀÛÏÂÀ´µÄ´úÂëÒ²ÒѾ·Ç³£ÄÑÒÔά»¤£¬ÒòΪ·Ö²ãÄ£ºý£¬½á¹ûµ½´¦³äÂú×ÅÊý¾Ý¿â·ÃÎÊÂß¼¡¢µ½´¦³äÂú×Å»º´æ¶ÁдÂß¼£¬ÔÙ¼ÓÉϱíµÄÉè¼Æ²»ºÏÀí£¬Ôì³ÉÎÞ·¨¼òµ¥µØ½øÐÐˮƽÉìËõ¡£×ÜÖ®£¬ÎÒÃǵÄϵͳÒѾµ½Á˲»µÃ²»½øÐиÄÔìµÄµØ²½ÁË¡£
ºóÀ´£¬Àϸß(ÊÖ»úÖ®¼Ò´´Ê¼È˸ߴº»Ô)×éÁËÒ»¸öÑз¢ÍŶӣ¬Ö¼ÔÚ´Ó¸ù±¾ÉϽâ¾öÉÏÊöÌáµ½µÄÎÊÌâ¡£Ôڴ˺óÒ»ÄêµÄʱ¼äÀÎÒÃÇ×ßÁ˺ܶàÍä·£¬¾ÀúÁ˺ܶàÍ´¿à£¬²»¹ý£¬Ò²ÕýÊÇÔÚÕâ¶Îʱ¼äÀ²úÉúÁËDALµÄ³ûÐΣ¬¾¹ýÈô¸É´Î¸Ä½ø£¬±ä³ÉÁ˺óÀ´µÄDAL1.0¡£DALµÄ²úÉúÍêÈ«ÊÇÐÎÊÆÊ¹È»¡£¡£¡£µ½ÁËÄǸöʱ¼ä¡¢ÔÚÄǸöµØµã¡¢×öÁËÄǼþÊ¡£
DAL1.0ÉÏÏߺóÊý¾Ý¿âµÄQPSÃ÷ÏÔϽµ£¬´Ó¼¸Ç§½µµ½¼¸°Ù¡£ÊÂʵ֤Ã÷£¬ÎÒÃÇÕÒµ½ÁËÒ»ÌõÐеÃͨµÄ·×Ó¡£ËùÒÔ²ÅÓÐDALµÄºóÐø°æ±¾µÄ¿ª·¢£¬²ÅÓнñÌìµÄDAL2.x°æ±¾µÄ²úÉú¡£
JavaEye£º3.ÄܽéÉÜÒ»ÏÂÊÖ»úÖ®¼ÒÍøÕ¾ºÍ¼¼ÊõÍŶÓÂð£¿
Ðí³¬Ç°£ºÊÖ»úÖ®¼ÒÊÇÒ»¸öÖ¼ÔÚÌṩȫ·½Î»µÄÊÖ»úÏà¹Ø·þÎñµÄ×ÊѶÀàÍøÕ¾¡£ÔÚ7ÄêµÄʱ¼äÀÊÖ»úÖ®¼Ò´ÓÎÞµ½ÓУ¬ÒѾ·¢Õ¹³ÉΪ¼«¾ßÈËÆø¡¢×îÊܹØ×¢µÄÊÖ»ú²úÆ·×ÊÑ¶ÍøÕ¾¡£Óеã¹ã¸æµÄζµÀ£¬²»¹ý˵µÄ¶¼ÊÇÊÂʵ£¬ºÇºÇ¡£
ÒÔÏÂÊǽñÄê3Ô·ÝÔÚBeta¼¼ÊõɳÁúÉÏÌáµ½µÄͳ¼ÆÊý¾Ý£º
a. 1000w+Óû§
b. 3000w+Ìû×Ó
c. 1.1TB+¸½¼þ
d. 780w+ Page View/ÿÌì
e. 5~10wÔÚÏßÓû§/15·Ö
ÏÖÔÚ£¬Óû§Ó¦¸ÃÊÇ1200ÍòÁ˰ɣ¬ÆäËüµÄÒ²ÓÐËù±ä¶¯¡£×î½ü±È½Ï棬ûÔÙÈ¥¹Ø×¢¡£
ÊÖ»úÖ®¼ÒÏÖÔÚÓиö¼¼Êõ²¿£¬¸ºÔðÍøÕ¾µÄÈÕ³£Î¬»¤ÊÂÒË£»ÎÒÃÇ»¹ÓиöÏîÄ¿×飬¸ºÔðÕû¸öϵͳµÄ¼Ü¹¹Éè¼Æ¼°Ð¼¼ÊõµÄÑо¿ºÍ̽Ë÷µÈµÈ¡£
JavaEye£º4.·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)µÄÖ÷ÒªÌØµãÊÇʲô£¿ÄÜ·ñ¼òÒª·ÖÎöÒ»ÏÂËüʵÏÖµÄÖ÷Òª¼¼ÊõºËÐÄ£¿
Ðí³¬Ç°£ºÒªËµÌص㣬ժ³Ò»ÏÂÎÒÔÚ²©¿ÍÀïдµÄ¹ØÓÚаæDALµÄÏîĿĿ±ê£¬ÕâЩĿ±êÔÚDAL2.xÀïÒѾµÃµ½ÁËÏà¶Ô½ÏºÃµÄʵÏÖ£¬ÎÒÏëÕâÓ¦¸Ã¾ÍÊÇËü×î´óµÄÌØµãÁ˰ɣº
Ò»£©¿ÉÉìËõ¡£
ÕâÀïÊÇÖ¸Scale Out.£¬¼´Ë®Æ½¿ÉÉìËõ¡£ÊÂʵÉÏ£¬Õâµã¸üÓ¦¸ÃÊÇÕû¸öϵͳҪ¿¼ÂǵÄÄ¿±êÁË£¬¶ø·ÇDAL£¬DALÒª¿¼ÂǵÄÊÇÔõô¸üºÃµØÖ§³Ö¡£¾ÙÀý˵£¬ÎÒÃÇ¿ÉÒÔÒ»¸ö¿âÒ»¸ö·þÎñ£¬ÉõÖÁ¿ÉÒÔÊÇÒ»¸ö±íÒ»¸ö·þÎñ£»¿â¡¢±í²ð·Öºó£¬DALÓ¦ÄÜ·Óɲéѯ¡¢ºÏ²¢½á¹û£¬¶ø²»ÊÇÈÃÓ¦ÓóÌÐòÈ¥²ÙÐÄÕâЩÊ¡£
¶þ£©¸ß¿ÉÓÃÐÔ¡£
1) ÎÒÃÇÈÏΪ³ö´íʧ°ÜÊǺÜÕý³£µÄ£¬Ò»Ì¨»úÆ÷µ¹ÏÂÁË£¬ÆäËü»úÆ÷Ó¦¼ÌÐø±£³ÖϵͳÕý³£ÔË×÷¡£ÈÝ´íÊǺÜÖØÒªµÄÒ»¸öÒªÇó¡£
2) ϵͳ¹æÄ£´óÁËÒԺ󣬺ÜÈÝÒ׳öÏÖ“Òì¹¹“µÄÇé¿ö£¬ÈçÔÓÐÄ£¿éMySQL±íÒýÇæÊÇMyISAMµÄ£¬ÊDz»Ö§³ÖÊÂÎñµÄ£¬¶øÐÂÉϵÄÄ£¿éÓÖ²ÉÓÃÁËInnoDB±íÒýÇæ£¬ÔÚÕâÖÖÇé¿öÏ£¬DALÓ¦ÄܶÔÔÓÐÄ£¿é½øÐÐÓÅÑŽµ¼¶¡£
3)ʧ°Ü»Ö¸´Ò²ÊÇÒª¿¼Âǵģ¬Ê§°Üºó£¬ÐèÒª°Ñʧ°ÜǰפÁôÔÚÄÚ´æÖеÄÏûÏ¢ÕÒ»ØÀ´¡£
4) ÁíÍ⣬DAL±¾ÉíÒ²ÔÚ¿ìËٵĵü´úµ±ÖУ¬Éý¼¶ÊǺܾ³£µÄÊ£¬Ó¦ÄܽøÐÐÔÚÏßÈÈÉý¼¶(²»ÖØÆôÔÓзþÎñ)¡£
Èý£©Á¼ºÃµÄÐÔÄÜ¡£
¶ÔÓÚ¸ù¾ÝIdÀ´È¡¼Ç¼µÄ²éѯ£¬ÔÚ»º´æÃüÖеÄÇé¿öÏ£¬Ó¦¸Ã´ïµ½ºÍMemcached²»ÏàÉÏϵĶÁÈ¡ËÙ¶È¡£ÔÚ»º´æ²»ÃüÖеÄÇé¿öÏ£¬ÔòÓ¦¸Ã³ä·ÖÀûÓ÷ֿâ·Ö±íºÍ²¢ÐмÆËãµÄÓÅÊÆ£¬×î´ó»¯µØÌá¸ß²éѯµÄЧÂÊ¡£¶ÔÓÚÐÞ¸ÄÐͲéѯ£¬¹ÒÔÚÉÏÃæµÄ¼àÌýÆ÷£¬²»Ó¦¸ÃÓ°ÏìÐÔÄÜ¡£
ËÄ£©ÏµÍ³¿É¼à¿Ø¡£
×ÊÔ´Õ¼ÓÃÇé¿ö£¬ÃüÖÐÂÊÈçºÎ£¬ÏµÍ³µ±Ç°Ñ¹Á¦ÔõÑùµÈµÈ£¬¶¼Ó¦¸ÃÊÇ¿ÉÖªµÄ¡£Ó¦¸ÃÓб¨¾¯»úÖÆ£¬µ±Ñ¹Á¦µ½´ïÒ»¸ö·§ÖµÒÔºó£¬Í¨ÖªÏà¹ØÈËÔ±½øÐд¦Àí¡£»¹Ó¦¸ÃÓÐÏêϸµÄ´íÎóÈÕÖ¾£¬±ãÓÚÅŲéÎÊÌâ¡£
Î壩°²È«¡£
ûÓÐSQL×¢ÈëÎÊÌ⣻±ÜÃâ»ò¾¡Á¿¼õÉÙ·Ö±íºÍË÷Òý±íÖ®¼äµÄÊý¾Ý²»Ò»ÖÂÎÊÌâµÈµÈ¡£
Áù£©Ò×ÓÚ±à³Ì¡£
ÐèÒªÉè¼ÆÒ»Ì×¼òµ¥ºÃÓõÄAPI£¬±ãÓÚÓ¦ÓóÌÐòµÄ¿ª·¢¡£API±ØÐëÊÇ×ÔÍ걸µÄ£¬Ó¦Óÿª·¢Õß²»ÐèҪ̫·ÑÁ¦¾ÍÄܼÇסµÄ¡£
Ó¦Óÿª·¢ÈËÔ±²»ÔÙ¹ØÐÄ·Ö¿â·Ö±íÎÊÌ⣬²»ÔÙ¹ØÐÄ»º´æÎÊÌ⣬ ÌØ±ðÊÇ»º´æÇå³ýÎÊÌâ¡£ÉõÖÁ²»ÔÙ¹ØÐĺó¶ËµÄÊý¾Ý¿âÊÇMySQL£¬»¹ÊÇOracle£¬»òÕßÊÇÆäËü¡£
Æß£©¿É¶¨ÖÆ¡¢¿ÉÀ©Õ¹¡¢¿Éά»¤µÄ¼Ü¹¹Éè¼Æ¡£
ÏñÁ¬½Ó³Ø×é¼þ¡¢»º´æ×é¼þ¡¢²éѯ·ÖÎö×é¼þ¡¢ÏûÏ¢¶ÓÁÐ×é¼þ¡¢Í¨Ñ¶ÐÒéµÈµÈ²»Ó¦¸ÃдËÀ£¬Ó¦Éè¼Æ³É¿É·½±ã¶¨ÖƵġ£»¹Ó¦¸ÃÌṩ×ã¹»µÄ¹³×ÓÓÃÓÚÀ©Õ¹¡£Ö»ÓÐÕâÑù£¬DAL µÄ¼Ü¹¹²ÅÊÇÁé»îµÄ¡¢Óµ±§±ä»¯µÄ¡£¼òµ¥Ëµ£¬ÎÒÃǶ¨µÄÊÇ»úÖÆ£¬ÌṩµÄÊDzßÂÔ£»»úÖÆÊÇÈí¼þÄ¿±êºÍ×ÚÖ¼µÄÌåÏÖ£¬Ò»°ãÊDz»ÄÜÇáÒ׸ıäµÄ£¬¶ø²ßÂÔÔòÓ¦µ±ÊÇÄܱȽϼòµ¥µØ½øÐÐÇл»µÄ¡£
ÕâÀïÃæ£¬Ã¿Ò»µã¶¼¿ÉÒÔ˵˵£¬»¹ÊÇÔÚÒÔºóµÄ²©¿ÍÀÔÙÀ´ÏêϸºÍ´ó¼ÒÌÖÂÛ°É¡£
JavaEye£º5.·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)Ó¦ÓõÄÖ÷Òª³¡¾°ÊÇʲô£¿ÄÜ·ñÏêϸ±È½ÏһϷֲ¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ºÍÀàËÆ²úÆ·±ÈÈçhibernateµÄÇø±ðÂð£¿
Ðí³¬Ç°£ºDAL±È½ÏÊÊÓÃÓÚ´óÖÐÐÍÍøÕ¾£¬¶ÔÓÚÏëÌá¸ßϵͳ¸ºÔØÄÜÁ¦¼°ÏìÓ¦ËٶȵÄСÐÍÍøÕ¾Ò²ÊÇÊÊÓõ쬵«¿ÉÄÜ»ñµÃµÄºÃ´¦²»Èç´óÖÐÐÍÍøÕ¾ÄÇôÃ÷ÏÔ¡£
DALºÍHibernateÁ½Õß²»¾ßÓпɱÈÐÔ£¬´Ó³ö·¢µãÀ´¿´¾Í²»Í¬£¬DALÒ»¿ªÊ¼ÊÇΪÁËÌá¸ßÍøÕ¾µÄ¸ºÔØÄÜÁ¦£¬¶øHibernateÔòÊÇΪÁËÄܸü¿ìµØ¿ª·¢JavaÓ¦Óá£ÊÖ»úÖ®¼Ò²ÉÓûìºÏ±à³Ì£¬ÉϲãÓ¦Óò»Ò»¶¨ÊÇÓÃJavaдµÄ£¬ÒªÈÃ(·ÇJava)³ÌÐòÔ±¶Ôÿ¸öÄ£¿éÉæ¼°µ½µÄ±í½á¹¹¶¼ÓÃJavaʵÌåÀàдһ±é£¬²»Ì«ÏÖʵ¡£Ïà·´£¬ÎÒÃDzÉÈ¡Á˲»Í¬µÄ˼¿¼·½Ê½£¬ÎÒÃǵijÌÐòÔ±ÃæÏòµÄÊDZíºÍ¼Ç¼£¬¶ø²»ÊÇʵÌåÀàºÍʵÌå¶ÔÏó¡£ËäÈ»£¬DALÒ²ÓÐMappingµÄ¸ÅÄµ«ÊÇËüµÄMappingÊÇÖ¸Âß¼±íµ½ÎïÀí±íµÄMapping£¬¶ø²»ÊÇJava¶ÔÏóµ½Êý¾Ý¿âģʽµÄMapping¡£DALµÄÂß¼±í¿ÉÄܶÔÓ¦×Ŷà¸öÎïÀí±í£¬³ÌÐòÔ±¿´µ½µÄÊÇÂß¼±í£¬²»ÓùØÐĺóÃæÓжàÉÙ¸öÎïÀí±í¡£
MySQL ProxyÒ²ÌṩÁËһЩÀàËÆµÄÌØÐÔ£¬DALÓëËüµÄµÚÒ»¸ö²»Í¬ÔÚÓÚ£¬ÎÒÃǵĻº´æ´¦ÀíÊÇÄÚÖõģ¬ÎÒÃÇ´ÓÉè¼ÆÖ®³õ¾ÍÌØ±ðÈÏÕæµØ¿¼ÂÇ»º´æÕâ¿é£¬¶øMySQL ProxyµÃ×Ô¼ºÐ´Lua½Å±¾¡£µÚ¶þ¸ö²»Í¬ÔÚÓÚ£¬ÎÒÃÇÕë¶ÔµÄ²»½ö½öÊÇMySQLÕâÒ»ÖÖÊý¾Ý¿â¡£¶øÇÒ£¬ÎÒÃÇ»¹ÓкܶàÆäËüµÄÊÂÇéÒª×ö¡£
ÁíÍ⣬¹úÄÚ»¹ÓÐÒ»¸ö¿ªÔ´ÏîÄ¿½ÐAmoeba¡£Amoeba¹Ø×¢µÄÁìÓòÊÇÇз֣¬ÔÚÕâ¸öÁìÓò£¬Amoeba¶Ô¸ÅÄîµÄ³éÏó»¹ÊDz»´íµÄ¡£DAL¸üÏñÊÇÒ»¸öÍêÕûµÄϵͳ£¬µ±È»£¬Ò²¿ÉÒÔÖ»ÓÃDALÀ´×öÇз֣¬ÆäËüµÄÂß¼×Ô¼º±àд£¬ÏëÓµÓÐÄÄÐ©ÌØÐÔ¶¼ÊÇ¿ÉÅäÖõġ£ÕâÑùÉè¼ÆÒ»¸öÊÇΪÁËÒ×Óã¬Ò»ÄÃÀ´¾ÍÄÜÓã¬ÁíÒ»¸öÊÇΪÁËÄܸüºÃµÄºÍÏÖÓеĽâ¾ö·½°¸(ÈçHibernate)¼¯³É£¬ËäÈ»DALÔÚºÜ¶à·½Ãæ¶¼¿ÉÒÔÈ¡´úËüÃÇ(ÈçHibernate)¡£
×îºó£¬ÎÒÏàÐÅ£¬¿Ï¶¨»¹´æÔںܶàÀàËÆµÄ½â¾ö·½°¸£¬Ö»ÊÇÎÒÃDz»ÔøµÃÖª¡£»òÐíÊǹýÓÚ¶¨ÖÆ»¯ÁË£¬»òÐíÊÇ»¹²»¹»³ÉÊì¡£¡£¡£
JavaEye£º6.Ŀǰ´ó¸ÅÓжàÉÙÓû§ÔÚʹÓ÷ֲ¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)£¿
Ðí³¬Ç°£ºÄ¿Ç°DALÖ÷ÒªÓÃÔÚÊÖ»úÖ®¼ÒÍøÕ¾ÉÏÃæ£¬µ±È»£¬»¹ÓÐÆäËüµÄÏîĿҲÔÚÓá£
JavaEye£º7.Ŀǰ·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer) ¿ª·¢µÄ¼¼ÊõÄѵãÊÇÄÄÀ
Ðí³¬Ç°£ºÒªËµ¼¼ÊõÄѵ㣬ÎÒ¾õµÃÓÐÒÔϼ¸µã£º
Ò»£©ÈçºÎ½µµÍCPU¸ºÔؼ°¼õÉÙÄÚ´æÕ¼Óá£
¶þ£©ÈçºÎÌá¸ß²éѯÌõ¼þµÄ·ÖÎöËÙ¶È¡£
Èý£©ÈçºÎ¸üÓÐЧµØÂ·Óɵ½ÏàÓ¦µÄ¿âºÍ±íÉÏ¡£
ËÄ£©ÈçºÎÌá¸ß»º´æµÄÃüÖÐÂÊ¡£
Î壩ÈçºÎ¸üÓÐЧµÄ½øÐÐÊý¾Ý¸´ÖÆ¡£
JavaEye£º8.ÄãÿÖÜ´ó¸Å»¨¶àÉÙʱ¼äÔÚ·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÏîÄ¿ÉÏÃæ£¿
Ðí³¬Ç°£ºÃ¿ÖÜ´ó¸Å80¸öСʱ×óÓÒ¡£
JavaEye£º9.¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)´ø¸øÄã×î´óµÄÊÕ»ñÊÇʲô£¿
Ðí³¬Ç°£ºÒ»£©¹óÔÚ¼á³Ö¡£Ò»¸ö³¤¿ª·¢ÖÜÆÚµÄÈí¼þ£¬µ½Á˺óÃæ£¬²»½öÊǶԿª·¢ÈËÔ±ÌåÁ¦¡¢ÖÇÁ¦µÄ×ۺϿ¼Ñ飬¸üÊǶԿª·¢ÈËÔ±ÐÄÀí³ÐÊÜÄÜÁ¦µÄ¿¼Ñ飬ÒòΪÕâʱ»áÓÐÀ´×Ô¸÷·½µÄ¼°×Ô·¢µÄѹÁ¦¡£Èç¹ûÄܼá³ÖÏÂÈ¥£¬¿¸¹ýÕâÒ»¹Ø£¬ÊÂÇéÍùÍù¾Í³ÉÁËÒ»°ë¡£
¶þ£©ÕÒһЩºÍÄãÓй²Í¬Ä¿±êµÄÈËÒ»¿é¹²Ê¡£·ñÔò»áºÄ·Ñ´óÁ¿µÄ¹µÍ¨³É±¾¡£
Èý£©ÓÃÊý¾Ý˵»°¡£ÊÂÎñ¶¼Ôڱ仯µ±ÖУ¬¼¸ÄêǰµÄ¾Ñ飬ҲÐíµ½½ñÌì¾Í²»ÁéÁË¡£¶øÇҺܶàÊÂÇé²¢²»ÊÇÏñÎÒÃÇÏëÏóµÃÄÇÑùÈ¥·¢Õ¹¡£
ËÄ£©Öйú²»´òÕÛ¡£
JavaEye£º10.¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)µÄroadmapÊÇʲô£¿½üÆÚÔ¶ÆÚµÄ¿ª·¢¼Æ»®¼Æ»®ÊÇʲô£¿
Ðí³¬Ç°£º½ÓÏÂÀ´µÄ°æ±¾Òª×öµÄÊÂÓÐÕ⼸¸ö·½Ã棺
Ò»£©¸ü¶àµÄÐÒ鿪·¢£¬ÕâÑù²ÅÄÜ×÷Ϊ͸Ã÷´úÀíʹÓ㬱ÈÈçÎÒÃǵÄPMAÒ²¿ÉÒÔʹÓÃÁË¡£
¶þ£©Êý¾Ý¿â³§ÉÌÖÐÁ¢µÄÊý¾Ý¸´ÖÆ¡£
Èý£©Ç¶ÈëʽAPI£¬¿¼ÂǺÍSpring¡¢GuiceµÈ¼¯³É£¬·½±ãJavaÓ¦Óÿª·¢ÈËÔ±µÄʹÓá£
JavaEye£º11.ÄãµÄ¿ª·¢»·¾³ÊÇʲô£¿ ʹÓÃʲô²Ù×÷ϵͳ£¬ºÍIDE£¿
Ðí³¬Ç°£ºÒ»Ö±ÓÃLinux²Ù×÷ϵͳ£¬ÏÖÔÚÊÇUbuntu£¬IDEÓÃEclipse¡£
JavaEye£º12.¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÏîÄ¿ÊÇÈçºÎÍÆ¹ãµÄ£¿Î´À´ÓÐÊ²Ã´ÍÆ¹ã·½ÃæµÄ¼Æ»®Âð£¿
Ðí³¬Ç°£ºDALĿǰֻÔÚÄÚ²¿ÏîÄ¿ÖÐʹÓᣵÈ×ã¹»³ÉÊìÁË£¬ÎÒÃÇ»á²ÉȡһϵÁа취½øÐÐÍÆ¹ãµÄ¡£
JavaEye£º13.ͨ¹ý¿ª·¢¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÏîÄ¿ £¬Äã¶ÔÖйúµÄ¿ªÔ´Èí¼þÏÖ×´ÓÐʲô¿´·¨£¿¶Ô¹úÄÚÈí¼þ¿ª·¢ÈËÔ±×ö¿ªÔ´ÏîÄ¿ÓÐʲô¸ÐÊܺÍÏë·¨Âð£¿
Ðí³¬Ç°£ºÎÒÃǵÄITÐÐÒµÆð²½Íí£¬¿ªÔ´ÎÄ»¯»¹²»¹»ÉîÈëÈËÐÄ£¬ÔÙ¼ÓÉÏÎÒÃÇÖеĴ󲿷ÝÈË»¹ÔÚΪÉú¼Æ·¢³î£¬ËùÒÔ¶Ô¿ªÔ´ÊÂÒµÉÏÐĵÄÈË»¹ÊÇÉÙÊý¡£Òò´Ë£¬ºÍÅ·ÃÀ·¢´ï¹ú¼Ò±ÈÆðÀ´£¬ÎÒÃǵĿªÔ´ÊÂÒµÏà¶ÔÖͺó¡£
ÎÒÓÉÖԵؾ´ÅåÄÇЩ×ö¿ªÔ´ÏîÄ¿µÄ¿ª·¢ÈËÔ±£¬Èç¹û¿ÉÄÜ£¬ÎÒҲϣÍû¶à×öЩ¿ªÔ´Èí¼þºÍ´ó¼ÒÒ»¿é·ÖÏí¡£
JavaEye£º14.×÷Ϊһ¸öJavaEyeµÄ»áÔ±£¬Äã¶ÔJavaEyeÍøÕ¾ÓÐʲô½¨ÒéºÍÒâ¼ûÂð£¿
Ðí³¬Ç°£ºÏë°ì·¨ÈÃÀÏÈ˶෢ÑÔ£¬Í¬Ê±Ò²¸øÐÂÈËÌṩһ¸öѧϰ³É³¤µÄµØ·½¡£±ÈÈç¿ÉÒÔŪ¸öʦͽƵµÀ(ÓеãSNSµÄζµÀ)£¬ÀÏÈË¿ÉÒÔÕÐѧͽ£¬ÐÂÈË¿ÉÒÔ°Ýʦ¸µ¡£
Ðí³¬Ç°£º¼òµ¥ËµÀ´£¬·Ö²¼Ê½Êý¾Ý·ÃÎʲã(ÒÔϼò³ÆDAL)ÊÇ×ÛºÏMySQL Proxy¡¢Memcached¡¢¼¯ÈºµÈµÈ¼¼ÊõÓÅµã¶ø¹¹½¨µÄÒ»¸öÈí¼þϵͳ¡£Ä¿µÄÊÇΪÁ˽â¾öÔÚ¹¹½¨´óÖÐÐÍÍøÕ¾Ê±Óöµ½µÄºÍÊý¾Ý·ÃÎÊÓйصÄÖî¶àÎÊÌ⣬ÈçÔõôʹµÃÇпâ·Ö±í͸Ã÷»¯£¬ÈçºÎʹµÃ»º´æ´æÈ¡Çå³ý×Ô¶¯»¯£¬ÔõÑù²ÅÄܸüºÃµØ·ÀÖ¹·þÎñµ¥µã¹ÊÕϵȵȡ£ºóÃæ£¬ÎÒ»áÔÚÎҵIJ©¿ÍÉÏÒÔ¼°½ñÄêµÄSD2China´ó»áÉÏ×ö½øÒ»²½µÄ˵Ã÷£¬ÓÐÐËȤµÄ¿ÉÒÔÁôÒâ¡£
JavaEye£º2.·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÊÇʲôʱºòµ®ÉúµÄ£¬ÄÜ·ñ½éÉÜһϷ¢Õ¹Àú³Ì£¿
Ðí³¬Ç°£ºDALµÄ²úÉúÊǾÀúÒ»·¬²¨Õ۵ġ£
2007 Ä꣬ÊÖ»úÖ®¼ÒµÄÓû§ÒѾ½Ó½ü1000Íò¡¢PVÒ²µ½ÁË500ÍòÒÔÉÏ£¬Õý´¦ÓÚÖÐСÐÍÍøÕ¾Ïò´óÐÍÍøÕ¾µÄ¹ý¶ÉʱÆÚ¡£ÄÇʱºò£¬ÎÒÃÇÃ÷ÏԸоõµ½ÎÒÃÇÔÚ¼¼ÊõÉÏÒѾÓöÉÏÁËÆ¿¾±£ºÒ»¸öÊÇϵͳ¸ºÔعý¸ß£¬¾³£Òªµ£ÐÄÎÒÃǵÄÊý¾Ý¿âÊDz»ÊÇÓÖ¹ÒÁË£¬½ø¶øÔì³ÉÕû¸öϵͳµÄ̱»¾£»µÚ¶þ¸öÊÇ5Äê»ýÀÛÏÂÀ´µÄ´úÂëÒ²ÒѾ·Ç³£ÄÑÒÔά»¤£¬ÒòΪ·Ö²ãÄ£ºý£¬½á¹ûµ½´¦³äÂú×ÅÊý¾Ý¿â·ÃÎÊÂß¼¡¢µ½´¦³äÂú×Å»º´æ¶ÁдÂß¼£¬ÔÙ¼ÓÉϱíµÄÉè¼Æ²»ºÏÀí£¬Ôì³ÉÎÞ·¨¼òµ¥µØ½øÐÐˮƽÉìËõ¡£×ÜÖ®£¬ÎÒÃǵÄϵͳÒѾµ½Á˲»µÃ²»½øÐиÄÔìµÄµØ²½ÁË¡£
ºóÀ´£¬Àϸß(ÊÖ»úÖ®¼Ò´´Ê¼È˸ߴº»Ô)×éÁËÒ»¸öÑз¢ÍŶӣ¬Ö¼ÔÚ´Ó¸ù±¾ÉϽâ¾öÉÏÊöÌáµ½µÄÎÊÌâ¡£Ôڴ˺óÒ»ÄêµÄʱ¼äÀÎÒÃÇ×ßÁ˺ܶàÍä·£¬¾ÀúÁ˺ܶàÍ´¿à£¬²»¹ý£¬Ò²ÕýÊÇÔÚÕâ¶Îʱ¼äÀ²úÉúÁËDALµÄ³ûÐΣ¬¾¹ýÈô¸É´Î¸Ä½ø£¬±ä³ÉÁ˺óÀ´µÄDAL1.0¡£DALµÄ²úÉúÍêÈ«ÊÇÐÎÊÆÊ¹È»¡£¡£¡£µ½ÁËÄǸöʱ¼ä¡¢ÔÚÄǸöµØµã¡¢×öÁËÄǼþÊ¡£
DAL1.0ÉÏÏߺóÊý¾Ý¿âµÄQPSÃ÷ÏÔϽµ£¬´Ó¼¸Ç§½µµ½¼¸°Ù¡£ÊÂʵ֤Ã÷£¬ÎÒÃÇÕÒµ½ÁËÒ»ÌõÐеÃͨµÄ·×Ó¡£ËùÒÔ²ÅÓÐDALµÄºóÐø°æ±¾µÄ¿ª·¢£¬²ÅÓнñÌìµÄDAL2.x°æ±¾µÄ²úÉú¡£
JavaEye£º3.ÄܽéÉÜÒ»ÏÂÊÖ»úÖ®¼ÒÍøÕ¾ºÍ¼¼ÊõÍŶÓÂð£¿
Ðí³¬Ç°£ºÊÖ»úÖ®¼ÒÊÇÒ»¸öÖ¼ÔÚÌṩȫ·½Î»µÄÊÖ»úÏà¹Ø·þÎñµÄ×ÊѶÀàÍøÕ¾¡£ÔÚ7ÄêµÄʱ¼äÀÊÖ»úÖ®¼Ò´ÓÎÞµ½ÓУ¬ÒѾ·¢Õ¹³ÉΪ¼«¾ßÈËÆø¡¢×îÊܹØ×¢µÄÊÖ»ú²úÆ·×ÊÑ¶ÍøÕ¾¡£Óеã¹ã¸æµÄζµÀ£¬²»¹ý˵µÄ¶¼ÊÇÊÂʵ£¬ºÇºÇ¡£
ÒÔÏÂÊǽñÄê3Ô·ÝÔÚBeta¼¼ÊõɳÁúÉÏÌáµ½µÄͳ¼ÆÊý¾Ý£º
a. 1000w+Óû§
b. 3000w+Ìû×Ó
c. 1.1TB+¸½¼þ
d. 780w+ Page View/ÿÌì
e. 5~10wÔÚÏßÓû§/15·Ö
ÏÖÔÚ£¬Óû§Ó¦¸ÃÊÇ1200ÍòÁ˰ɣ¬ÆäËüµÄÒ²ÓÐËù±ä¶¯¡£×î½ü±È½Ï棬ûÔÙÈ¥¹Ø×¢¡£
ÊÖ»úÖ®¼ÒÏÖÔÚÓиö¼¼Êõ²¿£¬¸ºÔðÍøÕ¾µÄÈÕ³£Î¬»¤ÊÂÒË£»ÎÒÃÇ»¹ÓиöÏîÄ¿×飬¸ºÔðÕû¸öϵͳµÄ¼Ü¹¹Éè¼Æ¼°Ð¼¼ÊõµÄÑо¿ºÍ̽Ë÷µÈµÈ¡£
JavaEye£º4.·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)µÄÖ÷ÒªÌØµãÊÇʲô£¿ÄÜ·ñ¼òÒª·ÖÎöÒ»ÏÂËüʵÏÖµÄÖ÷Òª¼¼ÊõºËÐÄ£¿
Ðí³¬Ç°£ºÒªËµÌص㣬ժ³Ò»ÏÂÎÒÔÚ²©¿ÍÀïдµÄ¹ØÓÚаæDALµÄÏîĿĿ±ê£¬ÕâЩĿ±êÔÚDAL2.xÀïÒѾµÃµ½ÁËÏà¶Ô½ÏºÃµÄʵÏÖ£¬ÎÒÏëÕâÓ¦¸Ã¾ÍÊÇËü×î´óµÄÌØµãÁ˰ɣº
Ò»£©¿ÉÉìËõ¡£
ÕâÀïÊÇÖ¸Scale Out.£¬¼´Ë®Æ½¿ÉÉìËõ¡£ÊÂʵÉÏ£¬Õâµã¸üÓ¦¸ÃÊÇÕû¸öϵͳҪ¿¼ÂǵÄÄ¿±êÁË£¬¶ø·ÇDAL£¬DALÒª¿¼ÂǵÄÊÇÔõô¸üºÃµØÖ§³Ö¡£¾ÙÀý˵£¬ÎÒÃÇ¿ÉÒÔÒ»¸ö¿âÒ»¸ö·þÎñ£¬ÉõÖÁ¿ÉÒÔÊÇÒ»¸ö±íÒ»¸ö·þÎñ£»¿â¡¢±í²ð·Öºó£¬DALÓ¦ÄÜ·Óɲéѯ¡¢ºÏ²¢½á¹û£¬¶ø²»ÊÇÈÃÓ¦ÓóÌÐòÈ¥²ÙÐÄÕâЩÊ¡£
¶þ£©¸ß¿ÉÓÃÐÔ¡£
1) ÎÒÃÇÈÏΪ³ö´íʧ°ÜÊǺÜÕý³£µÄ£¬Ò»Ì¨»úÆ÷µ¹ÏÂÁË£¬ÆäËü»úÆ÷Ó¦¼ÌÐø±£³ÖϵͳÕý³£ÔË×÷¡£ÈÝ´íÊǺÜÖØÒªµÄÒ»¸öÒªÇó¡£
2) ϵͳ¹æÄ£´óÁËÒԺ󣬺ÜÈÝÒ׳öÏÖ“Òì¹¹“µÄÇé¿ö£¬ÈçÔÓÐÄ£¿éMySQL±íÒýÇæÊÇMyISAMµÄ£¬ÊDz»Ö§³ÖÊÂÎñµÄ£¬¶øÐÂÉϵÄÄ£¿éÓÖ²ÉÓÃÁËInnoDB±íÒýÇæ£¬ÔÚÕâÖÖÇé¿öÏ£¬DALÓ¦ÄܶÔÔÓÐÄ£¿é½øÐÐÓÅÑŽµ¼¶¡£
3)ʧ°Ü»Ö¸´Ò²ÊÇÒª¿¼Âǵģ¬Ê§°Üºó£¬ÐèÒª°Ñʧ°ÜǰפÁôÔÚÄÚ´æÖеÄÏûÏ¢ÕÒ»ØÀ´¡£
4) ÁíÍ⣬DAL±¾ÉíÒ²ÔÚ¿ìËٵĵü´úµ±ÖУ¬Éý¼¶ÊǺܾ³£µÄÊ£¬Ó¦ÄܽøÐÐÔÚÏßÈÈÉý¼¶(²»ÖØÆôÔÓзþÎñ)¡£
Èý£©Á¼ºÃµÄÐÔÄÜ¡£
¶ÔÓÚ¸ù¾ÝIdÀ´È¡¼Ç¼µÄ²éѯ£¬ÔÚ»º´æÃüÖеÄÇé¿öÏ£¬Ó¦¸Ã´ïµ½ºÍMemcached²»ÏàÉÏϵĶÁÈ¡ËÙ¶È¡£ÔÚ»º´æ²»ÃüÖеÄÇé¿öÏ£¬ÔòÓ¦¸Ã³ä·ÖÀûÓ÷ֿâ·Ö±íºÍ²¢ÐмÆËãµÄÓÅÊÆ£¬×î´ó»¯µØÌá¸ß²éѯµÄЧÂÊ¡£¶ÔÓÚÐÞ¸ÄÐͲéѯ£¬¹ÒÔÚÉÏÃæµÄ¼àÌýÆ÷£¬²»Ó¦¸ÃÓ°ÏìÐÔÄÜ¡£
ËÄ£©ÏµÍ³¿É¼à¿Ø¡£
×ÊÔ´Õ¼ÓÃÇé¿ö£¬ÃüÖÐÂÊÈçºÎ£¬ÏµÍ³µ±Ç°Ñ¹Á¦ÔõÑùµÈµÈ£¬¶¼Ó¦¸ÃÊÇ¿ÉÖªµÄ¡£Ó¦¸ÃÓб¨¾¯»úÖÆ£¬µ±Ñ¹Á¦µ½´ïÒ»¸ö·§ÖµÒÔºó£¬Í¨ÖªÏà¹ØÈËÔ±½øÐд¦Àí¡£»¹Ó¦¸ÃÓÐÏêϸµÄ´íÎóÈÕÖ¾£¬±ãÓÚÅŲéÎÊÌâ¡£
Î壩°²È«¡£
ûÓÐSQL×¢ÈëÎÊÌ⣻±ÜÃâ»ò¾¡Á¿¼õÉÙ·Ö±íºÍË÷Òý±íÖ®¼äµÄÊý¾Ý²»Ò»ÖÂÎÊÌâµÈµÈ¡£
Áù£©Ò×ÓÚ±à³Ì¡£
ÐèÒªÉè¼ÆÒ»Ì×¼òµ¥ºÃÓõÄAPI£¬±ãÓÚÓ¦ÓóÌÐòµÄ¿ª·¢¡£API±ØÐëÊÇ×ÔÍ걸µÄ£¬Ó¦Óÿª·¢Õß²»ÐèҪ̫·ÑÁ¦¾ÍÄܼÇסµÄ¡£
Ó¦Óÿª·¢ÈËÔ±²»ÔÙ¹ØÐÄ·Ö¿â·Ö±íÎÊÌ⣬²»ÔÙ¹ØÐÄ»º´æÎÊÌ⣬ ÌØ±ðÊÇ»º´æÇå³ýÎÊÌâ¡£ÉõÖÁ²»ÔÙ¹ØÐĺó¶ËµÄÊý¾Ý¿âÊÇMySQL£¬»¹ÊÇOracle£¬»òÕßÊÇÆäËü¡£
Æß£©¿É¶¨ÖÆ¡¢¿ÉÀ©Õ¹¡¢¿Éά»¤µÄ¼Ü¹¹Éè¼Æ¡£
ÏñÁ¬½Ó³Ø×é¼þ¡¢»º´æ×é¼þ¡¢²éѯ·ÖÎö×é¼þ¡¢ÏûÏ¢¶ÓÁÐ×é¼þ¡¢Í¨Ñ¶ÐÒéµÈµÈ²»Ó¦¸ÃдËÀ£¬Ó¦Éè¼Æ³É¿É·½±ã¶¨ÖƵġ£»¹Ó¦¸ÃÌṩ×ã¹»µÄ¹³×ÓÓÃÓÚÀ©Õ¹¡£Ö»ÓÐÕâÑù£¬DAL µÄ¼Ü¹¹²ÅÊÇÁé»îµÄ¡¢Óµ±§±ä»¯µÄ¡£¼òµ¥Ëµ£¬ÎÒÃǶ¨µÄÊÇ»úÖÆ£¬ÌṩµÄÊDzßÂÔ£»»úÖÆÊÇÈí¼þÄ¿±êºÍ×ÚÖ¼µÄÌåÏÖ£¬Ò»°ãÊDz»ÄÜÇáÒ׸ıäµÄ£¬¶ø²ßÂÔÔòÓ¦µ±ÊÇÄܱȽϼòµ¥µØ½øÐÐÇл»µÄ¡£
ÕâÀïÃæ£¬Ã¿Ò»µã¶¼¿ÉÒÔ˵˵£¬»¹ÊÇÔÚÒÔºóµÄ²©¿ÍÀÔÙÀ´ÏêϸºÍ´ó¼ÒÌÖÂÛ°É¡£
JavaEye£º5.·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)Ó¦ÓõÄÖ÷Òª³¡¾°ÊÇʲô£¿ÄÜ·ñÏêϸ±È½ÏһϷֲ¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ºÍÀàËÆ²úÆ·±ÈÈçhibernateµÄÇø±ðÂð£¿
Ðí³¬Ç°£ºDAL±È½ÏÊÊÓÃÓÚ´óÖÐÐÍÍøÕ¾£¬¶ÔÓÚÏëÌá¸ßϵͳ¸ºÔØÄÜÁ¦¼°ÏìÓ¦ËٶȵÄСÐÍÍøÕ¾Ò²ÊÇÊÊÓõ쬵«¿ÉÄÜ»ñµÃµÄºÃ´¦²»Èç´óÖÐÐÍÍøÕ¾ÄÇôÃ÷ÏÔ¡£
DALºÍHibernateÁ½Õß²»¾ßÓпɱÈÐÔ£¬´Ó³ö·¢µãÀ´¿´¾Í²»Í¬£¬DALÒ»¿ªÊ¼ÊÇΪÁËÌá¸ßÍøÕ¾µÄ¸ºÔØÄÜÁ¦£¬¶øHibernateÔòÊÇΪÁËÄܸü¿ìµØ¿ª·¢JavaÓ¦Óá£ÊÖ»úÖ®¼Ò²ÉÓûìºÏ±à³Ì£¬ÉϲãÓ¦Óò»Ò»¶¨ÊÇÓÃJavaдµÄ£¬ÒªÈÃ(·ÇJava)³ÌÐòÔ±¶Ôÿ¸öÄ£¿éÉæ¼°µ½µÄ±í½á¹¹¶¼ÓÃJavaʵÌåÀàдһ±é£¬²»Ì«ÏÖʵ¡£Ïà·´£¬ÎÒÃDzÉÈ¡Á˲»Í¬µÄ˼¿¼·½Ê½£¬ÎÒÃǵijÌÐòÔ±ÃæÏòµÄÊDZíºÍ¼Ç¼£¬¶ø²»ÊÇʵÌåÀàºÍʵÌå¶ÔÏó¡£ËäÈ»£¬DALÒ²ÓÐMappingµÄ¸ÅÄµ«ÊÇËüµÄMappingÊÇÖ¸Âß¼±íµ½ÎïÀí±íµÄMapping£¬¶ø²»ÊÇJava¶ÔÏóµ½Êý¾Ý¿âģʽµÄMapping¡£DALµÄÂß¼±í¿ÉÄܶÔÓ¦×Ŷà¸öÎïÀí±í£¬³ÌÐòÔ±¿´µ½µÄÊÇÂß¼±í£¬²»ÓùØÐĺóÃæÓжàÉÙ¸öÎïÀí±í¡£
MySQL ProxyÒ²ÌṩÁËһЩÀàËÆµÄÌØÐÔ£¬DALÓëËüµÄµÚÒ»¸ö²»Í¬ÔÚÓÚ£¬ÎÒÃǵĻº´æ´¦ÀíÊÇÄÚÖõģ¬ÎÒÃÇ´ÓÉè¼ÆÖ®³õ¾ÍÌØ±ðÈÏÕæµØ¿¼ÂÇ»º´æÕâ¿é£¬¶øMySQL ProxyµÃ×Ô¼ºÐ´Lua½Å±¾¡£µÚ¶þ¸ö²»Í¬ÔÚÓÚ£¬ÎÒÃÇÕë¶ÔµÄ²»½ö½öÊÇMySQLÕâÒ»ÖÖÊý¾Ý¿â¡£¶øÇÒ£¬ÎÒÃÇ»¹ÓкܶàÆäËüµÄÊÂÇéÒª×ö¡£
ÁíÍ⣬¹úÄÚ»¹ÓÐÒ»¸ö¿ªÔ´ÏîÄ¿½ÐAmoeba¡£Amoeba¹Ø×¢µÄÁìÓòÊÇÇз֣¬ÔÚÕâ¸öÁìÓò£¬Amoeba¶Ô¸ÅÄîµÄ³éÏó»¹ÊDz»´íµÄ¡£DAL¸üÏñÊÇÒ»¸öÍêÕûµÄϵͳ£¬µ±È»£¬Ò²¿ÉÒÔÖ»ÓÃDALÀ´×öÇз֣¬ÆäËüµÄÂß¼×Ô¼º±àд£¬ÏëÓµÓÐÄÄÐ©ÌØÐÔ¶¼ÊÇ¿ÉÅäÖõġ£ÕâÑùÉè¼ÆÒ»¸öÊÇΪÁËÒ×Óã¬Ò»ÄÃÀ´¾ÍÄÜÓã¬ÁíÒ»¸öÊÇΪÁËÄܸüºÃµÄºÍÏÖÓеĽâ¾ö·½°¸(ÈçHibernate)¼¯³É£¬ËäÈ»DALÔÚºÜ¶à·½Ãæ¶¼¿ÉÒÔÈ¡´úËüÃÇ(ÈçHibernate)¡£
×îºó£¬ÎÒÏàÐÅ£¬¿Ï¶¨»¹´æÔںܶàÀàËÆµÄ½â¾ö·½°¸£¬Ö»ÊÇÎÒÃDz»ÔøµÃÖª¡£»òÐíÊǹýÓÚ¶¨ÖÆ»¯ÁË£¬»òÐíÊÇ»¹²»¹»³ÉÊì¡£¡£¡£
JavaEye£º6.Ŀǰ´ó¸ÅÓжàÉÙÓû§ÔÚʹÓ÷ֲ¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)£¿
Ðí³¬Ç°£ºÄ¿Ç°DALÖ÷ÒªÓÃÔÚÊÖ»úÖ®¼ÒÍøÕ¾ÉÏÃæ£¬µ±È»£¬»¹ÓÐÆäËüµÄÏîĿҲÔÚÓá£
JavaEye£º7.Ŀǰ·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer) ¿ª·¢µÄ¼¼ÊõÄѵãÊÇÄÄÀ
Ðí³¬Ç°£ºÒªËµ¼¼ÊõÄѵ㣬ÎÒ¾õµÃÓÐÒÔϼ¸µã£º
Ò»£©ÈçºÎ½µµÍCPU¸ºÔؼ°¼õÉÙÄÚ´æÕ¼Óá£
¶þ£©ÈçºÎÌá¸ß²éѯÌõ¼þµÄ·ÖÎöËÙ¶È¡£
Èý£©ÈçºÎ¸üÓÐЧµØÂ·Óɵ½ÏàÓ¦µÄ¿âºÍ±íÉÏ¡£
ËÄ£©ÈçºÎÌá¸ß»º´æµÄÃüÖÐÂÊ¡£
Î壩ÈçºÎ¸üÓÐЧµÄ½øÐÐÊý¾Ý¸´ÖÆ¡£
JavaEye£º8.ÄãÿÖÜ´ó¸Å»¨¶àÉÙʱ¼äÔÚ·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÏîÄ¿ÉÏÃæ£¿
Ðí³¬Ç°£ºÃ¿ÖÜ´ó¸Å80¸öСʱ×óÓÒ¡£
JavaEye£º9.¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)´ø¸øÄã×î´óµÄÊÕ»ñÊÇʲô£¿
Ðí³¬Ç°£ºÒ»£©¹óÔÚ¼á³Ö¡£Ò»¸ö³¤¿ª·¢ÖÜÆÚµÄÈí¼þ£¬µ½Á˺óÃæ£¬²»½öÊǶԿª·¢ÈËÔ±ÌåÁ¦¡¢ÖÇÁ¦µÄ×ۺϿ¼Ñ飬¸üÊǶԿª·¢ÈËÔ±ÐÄÀí³ÐÊÜÄÜÁ¦µÄ¿¼Ñ飬ÒòΪÕâʱ»áÓÐÀ´×Ô¸÷·½µÄ¼°×Ô·¢µÄѹÁ¦¡£Èç¹ûÄܼá³ÖÏÂÈ¥£¬¿¸¹ýÕâÒ»¹Ø£¬ÊÂÇéÍùÍù¾Í³ÉÁËÒ»°ë¡£
¶þ£©ÕÒһЩºÍÄãÓй²Í¬Ä¿±êµÄÈËÒ»¿é¹²Ê¡£·ñÔò»áºÄ·Ñ´óÁ¿µÄ¹µÍ¨³É±¾¡£
Èý£©ÓÃÊý¾Ý˵»°¡£ÊÂÎñ¶¼Ôڱ仯µ±ÖУ¬¼¸ÄêǰµÄ¾Ñ飬ҲÐíµ½½ñÌì¾Í²»ÁéÁË¡£¶øÇҺܶàÊÂÇé²¢²»ÊÇÏñÎÒÃÇÏëÏóµÃÄÇÑùÈ¥·¢Õ¹¡£
ËÄ£©Öйú²»´òÕÛ¡£
JavaEye£º10.¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)µÄroadmapÊÇʲô£¿½üÆÚÔ¶ÆÚµÄ¿ª·¢¼Æ»®¼Æ»®ÊÇʲô£¿
Ðí³¬Ç°£º½ÓÏÂÀ´µÄ°æ±¾Òª×öµÄÊÂÓÐÕ⼸¸ö·½Ã棺
Ò»£©¸ü¶àµÄÐÒ鿪·¢£¬ÕâÑù²ÅÄÜ×÷Ϊ͸Ã÷´úÀíʹÓ㬱ÈÈçÎÒÃǵÄPMAÒ²¿ÉÒÔʹÓÃÁË¡£
¶þ£©Êý¾Ý¿â³§ÉÌÖÐÁ¢µÄÊý¾Ý¸´ÖÆ¡£
Èý£©Ç¶ÈëʽAPI£¬¿¼ÂǺÍSpring¡¢GuiceµÈ¼¯³É£¬·½±ãJavaÓ¦Óÿª·¢ÈËÔ±µÄʹÓá£
JavaEye£º11.ÄãµÄ¿ª·¢»·¾³ÊÇʲô£¿ ʹÓÃʲô²Ù×÷ϵͳ£¬ºÍIDE£¿
Ðí³¬Ç°£ºÒ»Ö±ÓÃLinux²Ù×÷ϵͳ£¬ÏÖÔÚÊÇUbuntu£¬IDEÓÃEclipse¡£
JavaEye£º12.¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÏîÄ¿ÊÇÈçºÎÍÆ¹ãµÄ£¿Î´À´ÓÐÊ²Ã´ÍÆ¹ã·½ÃæµÄ¼Æ»®Âð£¿
Ðí³¬Ç°£ºDALĿǰֻÔÚÄÚ²¿ÏîÄ¿ÖÐʹÓᣵÈ×ã¹»³ÉÊìÁË£¬ÎÒÃÇ»á²ÉȡһϵÁа취½øÐÐÍÆ¹ãµÄ¡£
JavaEye£º13.ͨ¹ý¿ª·¢¿ª·¢·Ö²¼Ê½(Distributed)Êý¾Ý·ÃÎʲã(Data Access Layer)ÏîÄ¿ £¬Äã¶ÔÖйúµÄ¿ªÔ´Èí¼þÏÖ×´ÓÐʲô¿´·¨£¿¶Ô¹úÄÚÈí¼þ¿ª·¢ÈËÔ±×ö¿ªÔ´ÏîÄ¿ÓÐʲô¸ÐÊܺÍÏë·¨Âð£¿
Ðí³¬Ç°£ºÎÒÃǵÄITÐÐÒµÆð²½Íí£¬¿ªÔ´ÎÄ»¯»¹²»¹»ÉîÈëÈËÐÄ£¬ÔÙ¼ÓÉÏÎÒÃÇÖеĴ󲿷ÝÈË»¹ÔÚΪÉú¼Æ·¢³î£¬ËùÒÔ¶Ô¿ªÔ´ÊÂÒµÉÏÐĵÄÈË»¹ÊÇÉÙÊý¡£Òò´Ë£¬ºÍÅ·ÃÀ·¢´ï¹ú¼Ò±ÈÆðÀ´£¬ÎÒÃǵĿªÔ´ÊÂÒµÏà¶ÔÖͺó¡£
ÎÒÓÉÖԵؾ´ÅåÄÇЩ×ö¿ªÔ´ÏîÄ¿µÄ¿ª·¢ÈËÔ±£¬Èç¹û¿ÉÄÜ£¬ÎÒҲϣÍû¶à×öЩ¿ªÔ´Èí¼þºÍ´ó¼ÒÒ»¿é·ÖÏí¡£
JavaEye£º14.×÷Ϊһ¸öJavaEyeµÄ»áÔ±£¬Äã¶ÔJavaEyeÍøÕ¾ÓÐʲô½¨ÒéºÍÒâ¼ûÂð£¿
Ðí³¬Ç°£ºÏë°ì·¨ÈÃÀÏÈ˶෢ÑÔ£¬Í¬Ê±Ò²¸øÐÂÈËÌṩһ¸öѧϰ³É³¤µÄµØ·½¡£±ÈÈç¿ÉÒÔŪ¸öʦͽƵµÀ(ÓеãSNSµÄζµÀ)£¬ÀÏÈË¿ÉÒÔÕÐѧͽ£¬ÐÂÈË¿ÉÒÔ°Ýʦ¸µ¡£
°²»ÕлªµçÄÔѧУרҵְҵ¹æ»®Ê¦ÎªÄãÌṩ¸ü¶à°ïÖú¡¾ÔÚÏß×Éѯ¡¿