DB Êý¾Ý¿âˮƽÇзֵÄʵÏÖÔÀí½âÎö£·Ö¿â£¬·Ö±í£¬Ö÷´Ó£¬¼¯Èº£¬¸ºÔؾùºâÆ÷
ÔÎĵØÖ·£ºhttp://www.cnblogs.com/muhammad/archive/2012/02/05/2339290.html
µÚ1ÕÂ ÒýÑÔ
Ëæ×Å»¥ÁªÍøÓ¦ÓõĹ㷺ÆÕ ¼°£¬º£Á¿Êý¾ÝµÄ´æ´¢ºÍ·ÃÎʳÉΪÁËϵͳÉè¼ÆµÄÆ¿¾±ÎÊÌâ¡£¶ÔÓÚÒ»¸ö´óÐ굀 »¥ÁªÍøÓ¦Óã¬Ã¿Ì켸ʮÒÚµÄPVÎÞÒɶÔÊý¾Ý¿âÔì³ÉÁËÏ൱¸ßµÄ¸ºÔØ¡£¶ÔÓÚϵͳµÄÎȶ¨ÐÔºÍÀ©Õ¹ÐÔÔì³ÉÁ˼«´óµÄÎÊÌ⡣ͨ¹ýÊý¾ÝÇзÖÀ´Ìá¸ßÍøÕ¾ÐÔÄÜ£¬ºáÏòÀ©Õ¹Êý¾Ý²ã ÒѾ³ÉΪ¼Ü¹¹Ñз¢ÈËÔ±Ê×Ñ¡µÄ·½Ê½¡£Ë®Æ½ÇзÖÊý¾Ý¿â£¬¿ÉÒÔ½µµÍµ¥Ì¨»úÆ÷µÄ¸ºÔØ£¬Í¬Ê±×î´óÏ޶ȵĽµµÍÁËÁËå´»úÔì³ÉµÄËðʧ¡£Í¨¹ý¸ºÔؾùºâ²ßÂÔ£¬ÓÐЧµÄ½µµÍÁ˵¥Ì¨ »úÆ÷µÄ·ÃÎʸºÔØ£¬½µµÍÁËå´»úµÄ¿ÉÄÜÐÔ£»Í¨¹ý¼¯Èº·½°¸£¬½â¾öÁËÊý¾Ý¿âå´»ú´øÀ´µÄµ¥µãÊý¾Ý¿â²»ÄÜ·ÃÎʵÄÎÊÌ⣻ͨ¹ý¶Áд·ÖÀë²ßÂÔ¸üÊÇ×î´óÏÞ¶ÈÁËÌá¸ßÁËÓ¦ÓÃÖжÁÈ¡ £¨Read£©Êý¾ÝµÄËٶȺͲ¢·¢Á¿¡£Ä¿Ç°¹úÄڵĴóÐÍ»¥ÁªÍøÓ¦ÓÃÖУ¬´óÁ¿µÄ²ÉÓÃÁËÕâÑùµÄÊý¾ÝÇзַ½°¸£¬Taobao,Alibaba,Tencent£¬ËüÃÇ´ó ¶¼ÊµÏÖÁË×Ô¼ºµÄ·Ö²¼Ê½Êý¾Ý·ÃÎʲ㣨DDAL£©¡£ÒÔʵÏÖ·½Ê½ºÍʵÏֵIJã´ÎÀ´»®·Ö£¬´ó¸Å·ÖΪÁ½¸ö²ã´Î£¨JavaÓ¦ÓÃΪÀý£©£ºJDBC²ãµÄ·â×°£¬ORM¿ò¼Ü²ãµÄ ʵÏÖ¡£¾ÍJDBC²ãµÄÖ±½Ó·â×°¶øÑÔ£¬ÏÖÔÚ¹úÄÚ·¢Õ¹½ÏºÃµÄÒ»¸öÏîÄ¿ÊDZ»³Æ×÷¡°±äÐγ桱(Amoeba)µÄÏîÄ¿£¬ÓÉ°¢ÀOÍŵÄÑо¿Ôº¿ª·¢£¬ÏÖÔÚÈÔÈ»´¦ÓÚ²âÊÔ½× ¶Î£¨beta°æ£©£¬ÆäÔËÐÐЧÂʺÍÉú²úʱЧÐÔÓдý¿¼¾¿¡£¾ÍORM¿ò¼Ü²ãµÄʵÏÖ¶øÑÔ£¬±ÈÈçTaobaoµÄ»ùÓÚibatisºÍSpringµÄµÄ·Ö²¼Ê½Êý¾Ý·ÃÎÊ ²ã£¬ÒÑÓжàÄêµÄÓ¦Óã¬ÔËÐÐЧÂʺÍÉú²úʵЧÐԵõ½ÁË¿ª·¢ÈËÔ±ºÍÓû§µÄ¿Ï¶¨¡£±¾ÎľÍÊÇÒÔORM¿ò¼Ü²ãΪ»ù´¡¶øʵÏֵķֲ¼Ê½Êý¾Ý·ÃÎʲ㡣±¾¿ÎÌâµÄÄѵãÔÚÓÚ·Ö¿â ºó£¬Â·ÓɹæÔòµÄÖƶ¨ºÍÑ¡ÔñÒÔ¼°ºóÆÚµÄÀ©Õ¹ÐÔ£¬±ÈÈ磺ÈçºÎ×öµ½ÓÃ×îÉÙµÄÊý¾ÝǨÒÆÁ¿£¬´ïµ½À©³äÊý¾Ý¿âÈÝÁ¿£¨Ôö¼Ó»úÆ÷½Úµã£©µÄÄ¿µÄ¡£ºËÐÄÎÊÌ⽫ΧÈÆÊý¾Ý¿â·Ö¿â·Ö ±íµÄ·ÓɹæÔòºÍ¸ºÔؾùºâ²ßÂÔÕ¹¿ª¡£
µÚ2Õ »ù±¾ÔÀíºÍ¸ÅÄî
2.1»ù±¾ÔÀí£º
ÈËÀàÈÏÖªÎÊÌâµÄ¹ý³Ì×ÜÊÇÕâÑùµÄ£ºwhat£¨Ê²Ã´£©-?why(Ϊʲô)-?how(Ôõô
×ö)£¬½ÓÏÂÀ´£¬±¾ÎĽ«¾ÍÕâÈý¸öÎÊÌâÕ¹¿ªÌÖÂÛºÍÑо¿£º
2.1.1ʲôÊÇÊý¾ÝÇзÖ
"Shard"Õâ¸ö´ÊÓ¢ÎÄ µÄÒâ˼ÊÇ"ËéƬ"£¬¶ø×÷ΪÊý¾Ý¿âÏà¹ØµÄ¼¼ÊõÓÃÓËƺõ×îÔç¼ûÓÚ´óÐͶàÈËÔÚÏß½ÇÉ«°çÑÝÓÎÏ·ÖС£"Sharding"¹ÃÇÒ³Æ֮Ϊ"·ÖƬ"¡£Sharding ²»ÊÇÒ»ÃÅм¼Êõ£¬¶øÊÇÒ»¸öÏà¶Ô¼òÆÓµÄÈí¼þÀíÄî¡£ÖÚËùÖÜÖª£¬MySQL 5Ö®ºó²ÅÓÐÁËÊý¾Ý±í·ÖÇø¹¦ÄÜ£¬ÄÇôÔÚ´Ë֮ǰ£¬ºÜ¶à MySQL µÄDZÔÚÓû§¶¼¶Ô MySQLµÄÀ©Õ¹ÐÔÓÐËù¹ËÂÇ£¬¶øÊÇ·ñ¾ß±¸·ÖÇø¹¦ÄܾͳÉÁ˺âÁ¿Ò»¸öÊý¾Ý¿â¿ÉÀ©Õ¹ÐÔÓë·ñµÄÒ»¸ö¹Ø¼üÖ¸±ê(µ±È»²»ÊÇΨһָ±ê)¡£Êý¾Ý¿âÀ©Õ¹ÐÔÊÇÒ»¸öÓÀºãµÄ»° Ì⣬MySQLµÄÍƹãÕß¾³£»á±»Îʵ½£ºÈçÔÚµ¥Ò»Êý¾Ý¿âÉÏ´¦ÀíÓ¦ÓÃÊý¾Ý×½½ó¼ûÖâ¶øÐèÒª½øÐзÖÇø»¯Ö®ÀàµÄ´¦Àí£¬ÊÇÈçºÎ°ìµ½µÄÄØ? ´ð°¸ÊÇ£ºSharding¡£ Sharding ²»ÊÇÒ»¸öij¸öÌض¨Êý¾Ý¿âÈí¼þ¸½ÊôµÄ¹¦ÄÜ£¬¶øÊÇÔÚ¾ßÌå¼¼Êõϸ½ÚÖ®ÉϵijéÏó´¦Àí£¬ÊÇˮƽÀ©Õ¹(Scale Out£¬Òà»òºáÏòÀ©Õ¹¡¢ÏòÍâÀ©Õ¹)µÄ½â¾ö·½°¸£¬ÆäÖ÷ҪĿµÄÊÇΪͻÆƵ¥½ÚµãÊý¾Ý¿â·þÎñÆ÷µÄ I/O ÄÜÁ¦ÏÞÖÆ£¬½â¾öÊý¾Ý¿âÀ©Õ¹ÐÔÎÊÌâ¡£
ͨ¹ýһϵÁеÄÇзֹæÔò½«Êý¾Ýˮƽ·Ö²¼µ½²»Í¬µÄDB»òtableÖУ¬ÔÚͨ¹ýÏàÓ¦µÄDB·ÓÉ»òÕßtable·ÓɹæÔòÕÒµ½ÐèÒª²éѯµÄ¾ßÌåµÄDB»òÕßtable£¬ÒÔ½øÐÐQuery²Ù×÷¡£ÕâÀïËù˵µÄ¡°sharding¡±Í¨³£ÊÇÖ¸¡°Ë®Æ½Çз֡±£¬ÕâÒ²ÊDZ¾ÎÄÌÖ ÂÛµÄÖص㡣¾ßÌ彫ÓÐʲôÑùµÄÇзַ½Ê½ÄغÍ·ÓÉ·½Ê½ÄØ£¿ÐÐÎÄÖÁ´Ë£¬¶ÁÕßÄÑÃâÓÐËùÒÉÎÊ£¬½ÓÏÂÀ´¾Ù¸ö¼òµ¥µÄÀý×Ó£ºÎÒÃÇÕë¶ÔÒ»¸öBlogÓ¦ÓÃÖеÄÈÕÖ¾À´ËµÃ÷£¬ ±ÈÈçÈÕÖ¾ÎÄÕ£¨article£©±íÓÐÈçÏÂ×ֶΣº
Ãæ¶ÔÕâÑùµÄÒ»¸ö±í£¬ÎÒÃÇÔõ ÑùÇзÖÄØ£¿ÔõÑù½«ÕâÑùµÄÊý¾Ý·Ö²¼µ½²»Í¬µÄÊý¾Ý¿âÖеıíÖÐÈ¥ÄØ£¿Æäʵ ·ÖÎöblogµÄÓ¦Óã¬ÎÒÃDz»ÄѵóöÕâÑùµÄ½áÂÛ£ºblogµÄÓ¦ÓÃÖУ¬Óû§·ÖΪÁ½ÖÖ£ºä¯ÀÀÕߺÍblogµÄÖ÷ÈË¡£ä¯ÀÀÕßä¯ÀÀij¸öblog£¬Êµ¼ÊÉÏÊÇÔÚÒ»¸öÌض¨µÄ Óû§µÄblogϽøÐÐä¯ÀÀµÄ£¬¶øblogµÄÖ÷È˹ÜÀí×Ô¼ºµÄblog£¬Ò²Í¬ÑùÊÇÔÚÌض¨µÄÓû§blogϽøÐвÙ×÷µÄ£¨ÔÚ×Ô¼ºµÄ¿Õ¼äÏ£©¡£ËùνµÄÌض¨µÄÓû§£¬Óà Êý¾Ý¿âµÄ×ֶαíʾ¾ÍÊÇ¡°user_id¡±¡£¾ÍÊÇÕâ¸ö¡°user_id¡±£¬Ëü¾ÍÊÇÎÒÃÇÐèÒªµÄ·Ö¿âµÄÒÀ¾ÝºÍ¹æÔòµÄ»ù´¡¡£ÎÒÃÇ¿ÉÒÔÕâÑù×ö£¬½«user_idΪ1¡«10000µÄËùÓеÄÎÄÕÂÐÅÏ¢·ÅÈëDB1ÖеÄarticle±íÖУ¬½«user_idΪ10001¡«20000µÄËùÓÐÎÄÕÂÐÅÏ¢·ÅÈëDB2ÖеÄarticle±íÖУ¬ÒÔ´ËÀàÍÆ£¬Ò»Ö±µ½DBn¡£Õâ ÑùÒ»À´£¬ÎÄÕÂÊý¾Ý¾ÍºÜ×ÔÈ»µÄ±»·Öµ½Á˸÷¸öÊý¾Ý¿âÖУ¬´ïµ½ÁËÊý¾ÝÇзֵÄÄ¿µÄ¡£½ÓÏÂÀ´Òª½â¾öµÄÎÊÌâ¾ÍÊÇÔõÑùÕÒ µ½¾ßÌåµÄÊý¾Ý¿âÄØ£¿ÆäʵÎÊÌâÒ²ÊǼòµ¥Ã÷ÏԵģ¬¼ÈÈ»·Ö¿âµÄʱºòÎÒÃÇÓõ½ÁËÇø·Ö×Ö¶Îuser_id£¬ÄÇôºÜ×ÔÈ»£¬Êý¾Ý¿â·ÓɵĹý³Ìµ±È»»¹ÊÇÉÙ²»ÁË user_idµÄ¡£¿¼ÂÇÒ»ÏÂÎÒÃǸղųÊÏÖµÄblogÓ¦Ó㬲»¹ÜÊÇ·ÃÎʱðÈ˵Äblog»¹ÊǹÜÀí×Ô¼ºµÄblog£¬×ÜÖ®ÎÒ¶¼ÒªÖªµÀÕâ¸öblogµÄÓû§ÊÇË°É£¬Ò² ¾ÍÊÇÎÒÃÇÖªµÀÁËÕâ¸öblogµÄuser_id£¬¾ÍÀûÓÃÕâ¸öuser_id£¬ÀûÓ÷ֿâʱºòµÄ¹æÔò£¬·´¹ýÀ´¶¨Î»¾ßÌåµÄÊý¾Ý¿â£¬±ÈÈçuser_idÊÇ234£¬Àû ÓøòŵĹæÔò£¬¾ÍÓ¦¸Ã¶¨Î»µ½DB1£¬¼ÙÈçuser_idÊÇ12343£¬ÀûÓøòŵĹæÔò£¬¾ÍÓ¦¸Ã¶¨Î»µ½DB2¡£ÒÔ´ËÀàÍÆ£¬ÀûÓ÷ֿâµÄ¹æÔò£¬·´ÏòµÄ·Óɵ½¾ßÌå µÄDB£¬Õâ¸ö¹ý³ÌÎÒÃdzÆ֮Ϊ¡°DB·ÓÉ¡±¡£
µ±È»¿¼Âǵ½Êý¾ÝÇзֵÄDBÉè¼Æ±ØÈ»ÊǷdz£¹æ£¬²»ÕýͳµÄDBÉè¼Æ¡£ÄÇôʲôÑùµÄDBÉè¼ÆÊÇÕýͳµÄDBÉè¼ÆÄØ£¿
ÎÒÃÇƽ³£¹æ¹æ¾Ø¾ØÓõĻù±¾ ¶¼ÊÇ¡£Æ½³£ÎÒÃÇ»á×Ô¾õµÄ°´ÕÕ·¶Ê½À´Éè¼ÆÎÒÃǵÄÊý¾Ý¿â£¬¸ºÔظߵã¿ÉÄÜ ¿¼ÂÇʹÓÃÏà¹ØµÄReplication»úÖÆÀ´Ìá¸ß¶ÁдµÄÍÌͺÍÐÔÄÜ£¬Õâ¿ÉÄÜÒѾ¿ÉÒÔÂú×ãºÜ¶àÐèÇ󣬵«ÕâÌ×»úÖÆ×ÔÉíµÄȱÏÝ»¹ÊDZȽÏÏÔ¶øÒ×¼ûµÄ£¨ÏÂÎÄ»áÌá ¼°£©¡£ÉÏÃæÌáµ½µÄ¡°×Ô¾õµÄ°´ÕÕ·¶Ê½Éè¼Æ¡±¡£¿¼Âǵ½Êý¾ÝÇзֵÄDBÉè¼Æ£¬½«Î¥±³Õâ¸öͨ³£µÄ¹æ¾ØºÍÔ¼Êø£¬ÎªÁËÇз֣¬ÎÒÃDz»µÃ²»ÔÚÊý¾Ý¿âµÄ±íÖгöÏÖÈßÓà×ֶΣ¬Óà ×÷Çø·Ö×ֶλòÕß½Ð×ö·Ö¿âµÄ±ê¼Ç×ֶΣ¬±ÈÈçÉÏÃæµÄarticleµÄÀý×ÓÖеÄuser_idÕâÑùµÄ×ֶΣ¨µ±È»£¬¸Õ²ÅµÄÀý×Ó²¢Ã»ÓкܺõÄÌåÏÖ³öuser_idµÄ ÈßÓàÐÔ£¬ÒòΪuser_idÕâ¸ö×ֶμ´Ê¹¾ÍÊDz»·Ö¿â£¬Ò²ÊÇÒª³öÏֵģ¬ËãÊÇÎÒÃǼñÁ˱ãÒË°É£©¡£µ±È»ÈßÓà×ֶεijöÏÖ²¢²»Ö»ÊÇÔÚ·Ö¿âµÄ³¡¾°Ï²ųöÏֵģ¬Ôںܶà´ó ÐÍÓ¦ÓÃÖУ¬ÈßÓàÒ²ÊDZØÐëµÄ£¬Õâ¸öÉæ¼°µ½¸ßЧDBµÄÉè¼Æ£¬±¾ÎIJ»ÔÙ׸Êö¡£
2.1.2ΪʲôҪÊý¾ÝÇзÖ
ÉÏÃæ¶ÔʲôÊÇÊý¾ÝÇзÖ×öÁË ¸ö¸ÅÒªµÄÃèÊöºÍ½âÊÍ£¬¶ÁÕß¿ÉÄÜ»áÒÉÎÊ£¬ÎªÊ²Ã´ÐèÒªÊý¾ÝÇзÖÄØ£¿ÏñOracleÕâÑù³ÉÊìÎȶ¨µÄÊý¾Ý¿â£¬×ãÒÔÖ§³Åº£Á¿Êý¾ÝµÄ´æ´¢Óë²éѯÁË£¿ÎªÊ²Ã´»¹ÐèÒªÊý¾ÝÇРƬÄØ£¿µÄÈ·£¬OracleµÄDBȷʵºÜ³ÉÊìºÜÎȶ¨£¬µ«ÊǸ߰ºµÄʹ Ó÷ÑÓú͸߶˵ÄÓ²¼þÖ§³Å²»ÊÇÿһ¸ö¹«Ë¾ÄÜÖ§¸¶µÄÆðµÄ¡£ÊÔÏëÒ»ÏÂÒ»Ä꼸ǧÍòµÄʹÓ÷ÑÓúͶ¯éüÉÏǧÍòÔªµÄСÐÍ»ú×÷ΪӲ¼þÖ§³Å£¬ÕâÊÇÒ»°ã¹«Ë¾ÄÜÖ§¸¶µÄÆðµÄÂ𣿼´ ʹ¾ÍÊÇÄÜÖ§¸¶µÄÆ𣬼ÙÈçÓиüºÃµÄ·½°¸£¬ÓиüÁ®¼ÛÇÒˮƽÀ©Õ¹ÐÔÄܸüºÃµÄ·½°¸£¬ÎÒÃÇΪʲô²»Ñ¡ÔñÄØ£¿
µ«ÊÇ£¬ÊÂÇé×ÜÊDz»¾¡ÈËÒâ¡£ ƽ³£ÎÒÃÇ»á×Ô¾õµÄ°´ÕÕ·¶Ê½À´Éè¼ÆÎÒÃǵÄÊý¾Ý¿â£¬¸ºÔظߵã¿ÉÄÜ¿¼ÂÇʹ ÓÃÏà¹ØµÄReplication»úÖÆÀ´Ìá¸ß¶ÁдµÄÍÌͺÍÐÔÄÜ£¬Õâ¿ÉÄÜÒѾ¿ÉÒÔÂú×ãºÜ¶àÐèÇ󣬵«ÕâÌ×»úÖÆ×ÔÉíµÄȱÏÝ»¹ÊDZȽÏÏÔ¶øÒ×¼ûµÄ¡£Ê×ÏÈËüµÄÓÐЧºÜÒÀÀµ ÓÚ¶Á²Ù×÷µÄ±ÈÀý£¬MasterÍùÍù»á³ÉΪƿ¾±ËùÔÚ£¬Ð´²Ù×÷ÐèҪ˳ÐòÅŶÓÀ´Ö´ÐУ¬¹ýÔصĻ°MasterÊ×ÏÈ¿¸²»×¡£¬SlavesµÄÊý¾Ýͬ²½µÄÑÓ³ÙÒ²¿ÉÄÜ±È½Ï ´ó£¬¶øÇÒ»á´ó´óºÄ·ÑCPUµÄ¼ÆËãÄÜÁ¦£¬ÒòΪwrite²Ù×÷ÔÚMasterÉÏÖ´ÐÐÒÔºó»¹ÊÇÐèÒªÔÚÿ̨slave»úÆ÷É϶¼ÅÜÒ»´Î¡£ÕâʱºòSharding¿ÉÄÜ »á³ÉΪ¼¦ÀßÁË¡£Replication¸ã²»¶¨£¬ÄÇôΪʲôSharding¿ÉÒÔ¹¤×÷ÄØ£¿µÀÀíºÜ¼òµ¥£¬ÒòΪËü¿ÉÒԺܺõÄÀ©Õ¹¡£ÎÒÃÇÖªµÀÿ̨»úÆ÷ÎÞÂÛÅäÖöàô ºÃËü¶¼ÓÐ×ÔÉíµÄ ÎïÀíÉÏÏÞ£¬ËùÒÔµ±ÎÒÃÇÓ¦ÓÃÒѾÄÜ´¥¼°»òÔ¶Ô¶³¬³öµ¥Ì¨»úÆ÷µÄij¸öÉÏÏÞµÄʱºò£¬ÎÒÃÇΩÓÐÑ°ÕÒ±ðµÄ»úÆ÷µÄ°ïÖú»òÕß¼ÌÐøÉý¼¶µÄÎÒÃǵÄÓ²¼þ£¬µ«³£¼ûµÄ·½°¸»¹ÊǺáÏòÀ© Õ¹,ͨ¹ýÌí¼Ó¸ü¶àµÄ»úÆ÷À´¹²Í¬³Ðµ£Ñ¹Á¦¡£ÎÒÃÇ»¹µÃ¿¼Âǵ±ÎÒÃǵÄÒµÎñÂß¼²»¶ÏÔö³¤£¬ÎÒÃǵĻúÆ÷Äܲ»ÄÜͨ¹ýÏßÐÔÔö³¤¾ÍÄÜÂú×ãÐèÇó£¿Sharding¿ÉÒÔÇáËÉµÄ ½«¼Æ Ë㣬´æ´¢£¬I/O²¢Ðзַ¢µ½¶ą̀»úÆ÷ÉÏ£¬ÕâÑù¿ÉÒÔ³ä·ÖÀûÓöą̀»úÆ÷¸÷ÖÖ´¦ÀíÄÜÁ¦£¬Í¬Ê±¿ÉÒÔ±ÜÃâµ¥µãʧ°Ü£¬ÌṩϵͳµÄ¿ÉÓÃÐÔ£¬½øÐкܺõĴíÎó¸ôÀë¡£
×ÛºÏÒÔÉÏÒòËØ£¬Êý¾ÝÇзÖÊÇ ºÜÓбØÒªµÄ£¬ÇÒÎÒÃÇÔÚ´ËÌÖÂÛµÄÊý¾ÝÇзÖÒ²Êǽ«MySql×÷Ϊ±³¾° µÄ¡£»ùÓڳɱ¾µÄ¿¼ÂÇ£¬ºÜ¶à¹«Ë¾Ò²Ñ¡ÔñÁËFreeÇÒOpenµÄMySql¡£¶ÔMySqlÓÐËùÁ˽âµÄ¿ª·¢ÈËÔ±¿ÉÄÜ»áÖªµÀ£¬MySQL 5Ö®ºó²ÅÓÐÁËÊý¾Ý±í·ÖÇø¹¦ÄÜ£¬ÄÇôÔÚ´Ë֮ǰ£¬ºÜ¶à MySQL µÄDZÔÚÓû§¶¼¶Ô MySQLµÄÀ©Õ¹ÐÔÓÐËù¹ËÂÇ£¬¶øÊÇ·ñ¾ß±¸·ÖÇø¹¦ÄܾͳÉÁ˺âÁ¿Ò»¸öÊý¾Ý¿â¿ÉÀ©Õ¹ÐÔÓë·ñµÄÒ»¸ö¹Ø¼üÖ¸±ê(µ±È»²»ÊÇΨһָ±ê)¡£Êý¾Ý¿âÀ©Õ¹ÐÔÊÇÒ»¸öÓÀºãµÄ»° Ì⣬MySQLµÄÍƹãÕß¾³£»á±»Îʵ½£ºÈçÔÚµ¥Ò»Êý¾Ý¿âÉÏ´¦ÀíÓ¦ÓÃÊý¾Ý×½½ó¼ûÖâ¶øÐèÒª½øÐзÖÇø»¯Ö®ÀàµÄ´¦Àí£¬ÊÇÈçºÎ°ìµ½µÄÄØ?´ð°¸Ò²ÊÇSharding£¬Ò² ¾ÍÊÇÎÒÃÇËù˵µÄÊý¾ÝÇзַ½°¸¡£
ÎÒÃÇÓÃÃâ·ÑµÄMySQLºÍÁ®¼ÛµÄServerÉõÖÁÊÇPC×ö¼¯Èº£¬´ïµ½Ð¡ÐÍ»ú+´óÐÍÉÌÒµDBµÄЧ¹û£¬¼õÉÙ´óÁ¿µÄ×ʽðͶÈ룬½µµÍÔËÓª³É±¾£¬ºÎÀÖ¶ø²»ÎªÄØ£¿ËùÒÔ£¬ÎÒÃÇÑ¡ÔñSharding£¬Óµ±§Sharding¡£
2.1.3Ôõô×öµ½Êý¾ÝÇзÖ
˵µ½Êý¾ÝÇз֣¬ÔÙ´ÎÎÒÃǽ²¶ÔÊý¾ÝÇзֵķ½·¨ºÍÐÎʽ½øÐбȽÏÏêϸµÄ²ûÊöºÍ˵Ã÷¡£
Êý¾ÝÇзֿÉÒÔÊÇÎïÀíÉϵģ¬¶ÔÊý¾Ýͨ¹ýһϵÁеÄÇзֹæÔò½«Êý¾Ý·Ö²¼µ½²»Í¬µÄDB·þÎñÆ÷ÉÏ£¬Í¨¹ý·ÓɹæÔò·ÓÉ·ÃÎÊÌض¨µÄÊý¾Ý¿â£¬ÕâÑùÒ»À´Ã¿´Î·ÃÎÊÃæ¶ÔµÄ¾Í²»Êǵ¥Ì¨·þÎñÆ÷ÁË£¬¶øÊÇN̨·þÎñÆ÷£¬ÕâÑù¾Í¿ÉÒÔ½µµÍµ¥Ì¨»úÆ÷µÄ¸ºÔØѹÁ¦¡£
Êý¾ÝÇзÖÒ²¿ÉÒÔÊÇÊý¾Ý¿âÄڵģ¬¶ÔÊý¾Ýͨ¹ýһϵÁеÄÇзֹæÔò£¬½«Êý¾Ý·Ö²¼µ½Ò»¸öÊý¾Ý¿âµÄ²»Í¬±í ÖУ¬±ÈÈ罫article·ÖΪarticle_001,article_002µÈ×Ó±í£¬Èô¸É¸ö×Ó±íˮƽƴºÏÓÐ×é³ÉÁËÂß¼ÉÏÒ»¸öÍêÕûµÄarticle±í£¬Õâ Ñù×öµÄÄ¿µÄÆäʵҲÊǺܼòµ¥µÄ¡£¾Ù ¸öÀý×Ó˵Ã÷£¬±ÈÈçarticle±íÖÐÏÖÔÚÓÐ5000wÌõÊý¾Ý£¬´ËʱÎÒÃÇÐèÒªÔÚÕâ¸ö±íÖÐÔö¼Ó£¨insert£©Ò»ÌõеÄÊý ¾Ý£¬insertÍê±Ïºó£¬Êý¾Ý¿â»áÕë¶ÔÕâÕűíÖØн¨Á¢Ë÷Òý£¬5000wÐÐÊý¾Ý½¨Á¢Ë÷ÒýµÄϵͳ¿ªÏú»¹ÊDz»ÈݺöÊӵġ£µ«ÊÇ·´¹ýÀ´£¬¼ÙÈçÎÒÃǽ«Õâ¸ö±í·Ö³É100 ¸ötableÄØ£¬´Óarticle_001Ò»Ö±µ½article_100£¬5000wÐÐÊý¾Ýƽ¾ùÏÂÀ´£¬Ã¿¸ö×Ó±íÀï±ß¾ÍÖ»ÓÐ50ÍòÐÐÊý¾Ý£¬ÕâʱºòÎÒÃÇÏòÒ»ÕÅ Ö»ÓÐ50wÐÐÊý¾ÝµÄtableÖÐinsertÊý¾Ýºó½¨Á¢Ë÷ÒýµÄʱ¼ä¾Í»á³ÊÊýÁ¿¼¶µÄϽµ£¬¼«´óÁËÌá¸ßÁËDBµÄÔËÐÐʱЧÂÊ£¬Ìá¸ßÁËDBµÄ²¢·¢Á¿¡£µ±È»·Ö±íµÄºÃ ´¦»¹²»ÖªÕâЩ£¬»¹ÓÐÖîÈçд²Ù×÷µÄËø²Ù×÷µÈ£¬¶¼»á´øÀ´ºÜ¶àÏÔÈ»µÄºÃ´¦¡£
×ÛÉÏ£¬·Ö¿â½µµÍÁ˵¥µã»úÆ÷µÄ¸ºÔØ£»·Ö±í£¬Ìá¸ßÁËÊý¾Ý²Ù×÷µÄЧÂÊ£¬ÓÈÆäÊÇWrite²Ù×÷µÄЧÂÊ¡£ÐÐÎÄÖÁ´ËÎÒÃÇÒÀȻûÓÐÉæ¼°µ½ÈçºÎÇзֵÄÎÊÌâ¡£½ÓÏÂÀ´£¬ÎÒÃǽ«¶ÔÇзֹæÔò½øÐÐÏ꾡µÄ²ûÊöºÍ˵Ã÷¡£
ÉÏÎÄÖÐÌáµ½£¬ÒªÏë×öµ½Êý¾ÝµÄˮƽÇз֣¬ÔÚÿһ¸ö±íÖж¼ÒªÓÐÏàÈßÓà×Ö·û×÷ΪÇзÖÒÀ¾ÝºÍ±ê¼Ç×ֶΣ¬Í¨³£µÄÓ¦ÓÃÖÐÎÒÃÇÑ¡ÓÃuser_id×÷ΪÇø·Ö×ֶΣ¬»ùÓڴ˾ÍÓÐÈçÏÂÈýÖÖ·Ö¿âµÄ·½Ê½ºÍ¹æÔò£º£¨µ±È»»¹¿ÉÒÔÓÐÆäËûµÄ·½Ê½£©
°´ºÅ¶Î·Ö£º
(1) user_idΪÇø·Ö£¬1¡«1000µÄ¶ÔÓ¦DB1£¬1001¡«2000µÄ¶ÔÓ¦DB2£¬ÒÔ´ËÀàÍÆ£»
Óŵ㣺¿É²¿·ÖǨÒÆ
ȱµã£ºÊý¾Ý·Ö²¼²»¾ù
(2)hashÈ¡Ä£·Ö£º
¶Ôuser_id½øÐÐ hash£¨»òÕßÈç¹ûuser_idÊÇÊýÖµÐ͵Ļ°Ö±½ÓʹÓÃuser_idµÄÖµÒ²¿É£©£¬È»ºóÓÃÒ»¸öÌض¨µÄÊý×Ö£¬±ÈÈçÓ¦ÓÃÖÐÐèÒª½«Ò»¸öÊý¾Ý¿âÇзֳÉ4¸öÊý¾Ý¿âµÄ »°£¬ÎÒÃǾÍÓÃ4Õâ¸öÊý×Ö¶Ôuser_idµÄhashÖµ½øÐÐÈ¡Ä£ÔËË㣬Ҳ ¾ÍÊÇuser_id%4,ÕâÑùµÄ»°Ã¿´ÎÔËËã¾ÍÓÐËÄÖÖ¿ÉÄÜ£º½á¹ûΪ1µÄʱºò¶ÔÓ¦DB1£»½á¹ûΪ2µÄʱºò¶ÔÓ¦DB2£»½á¹ûΪ3µÄʱºò¶ÔÓ¦DB3£»½á¹ûΪ0µÄʱ ºò¶ÔÓ¦DB4£¬ÕâÑùÒ»À´¾Í·Ç³£¾ùÔȵĽ«Êý¾Ý·ÖÅäµ½4¸öDBÖС£
Óŵ㣺Êý¾Ý·Ö²¼¾ùÔÈ
ȱµã£ºÊý¾ÝǨÒƵÄʱºòÂé·³£¬²»ÄÜ°´ÕÕ»úÆ÷ÐÔÄÜ·Ö̯Êý¾Ý
(3)ÔÚÈÏÖ¤¿âÖб£´æÊý¾Ý¿âÅäÖÃ
¾ÍÊǽ¨Á¢Ò»¸öDB£¬Õâ¸öDBµ¥¶À±£´æuser_idµ½DBµÄÓ³Éä¹Øϵ£¬Ã¿´Î·ÃÎÊÊý¾Ý¿âµÄʱºò¶¼ÒªÏȲéѯһ´ÎÕâ¸öÊý¾Ý¿â£¬ÒԵõ½¾ßÌåµÄDBÐÅÏ¢£¬È»ºó²ÅÄܽøÐÐÎÒÃÇÐèÒªµÄ²éѯ²Ù×÷¡£
Óŵ㣺Áé»îÐÔÇ¿£¬Ò»¶ÔÒ»¹Øϵ
ȱµã£ºÃ¿´Î²éѯ֮ǰ¶¼Òª¶àÒ»´Î²éѯ£¬ÐÔÄÜ´ó´òÕÛ¿Û
ÒÔÉϾÍÊÇͨ³£µÄ¿ª·¢ÖÐÎÒÃÇÑ¡ÔñµÄÈýÖÖ·½Ê½£¬ÓÐЩ¸´ÔÓµÄÏîÄ¿ÖпÉÄÜ»á»ìºÏʹÓÃÕâÈýÖÖ·½Ê½¡£Í¨¹ýÉÏÃæµÄÃèÊö£¬ÎÒÃǶԷֿâµÄ¹æÔòÒ²ÓÐÁ˼òµ¥µÄÈÏʶºÍÁ˽⡣µ±È»»¹»áÓиüºÃ¸üÍêÉƵķֿⷽʽ£¬»¹ÐèÒªÎÒÃDz»¶ÏµÄ̽Ë÷ºÍ·¢ÏÖ¡£
µÚ3Õ ±¾¿ÎÌâÑо¿µÄ»ù±¾ÂÖÀª
ÉÏÃæµÄÎÄ×Ö£¬ÎÒÃÇ°´ÕÕÈËÀà ÈÏÖªÊÂÎïµÄ¹æÂÉ£¬what?why?howÕâÑùµÄ·½Ê½²ûÊöÁËÊý¾Ý¿â ÇзֵÄһЩ¸ÅÄîºÍÒâÒåÒÔ¼°¶ÔһЩ³£¹æµÄÇзֹæÔò×öÁ˸ÅÒªµÄ½éÉÜ¡£±¾¿ÎÌâËùÌÖÂ۵ķֲ¼Êý¾Ý²ã²¢²»½ö½öÈç´Ë£¬ËüÊÇÒ»¸öÍêÕûµÄÊý¾Ý²ã½â¾ö·½°¸£¬Ëüµ½µ×ÊÇʲôÑùµÄ ÄØ£¿½ÓÏÂÀ´µÄÎÄ×Ö£¬ÎÒ½«Ïêϸ²ûÊö±¾Ñо¿¿ÎÌâµÄÍêÕû˼ÏëºÍʵÏÖ·½Ê½¡£
·Ö²¼Ê½Êý¾Ý·½°¸Ìṩ¹¦ÄÜÈçÏ£º
£¨1£©Ìṩ·Ö¿â¹æÔòºÍ·ÓɹæÔò£¨RouteRule¼ò³ÆRR£©£¬½«ÉÏÃæµÄ˵Ã÷ÖÐÌáµ½µÄÈýÖÐÇзֹæÔòÖ±½ÓÄÚǶÈ뱾ϵͳ£¬¾ßÌåµÄǶÈ뷽ʽÔÚ½ÓÏÂÀ´µÄÄÚÈÝÖнøÐÐÏêϸµÄ˵Ã÷ºÍÂÛÊö£»
£¨2£©ÒýÈ뼯Ⱥ£¨Group£©µÄ¸ÅÄ±£Ö¤Êý¾ÝµÄ¸ß¿ÉÓÃÐÔ£»
£¨3£©ÒýÈ븺Ôؾùºâ²ßÂÔ£¨LoadBalancePolicy¼ò³ÆLB£©£»
£¨4£©ÒýÈ뼯Ⱥ½Úµã¿ÉÓÃÐÔ̽²â»úÖÆ£¬¶Ôµ¥µã»úÆ÷µÄ¿ÉÓÃÐÔ½øÐж¨Ê±µÄÕì²â£¬ÒÔ±£Ö¤LB²ßÂÔµÄÕýȷʵʩ£¬ÒÔÈ·±£ÏµÍ³µÄ¸ß¶ÈÎȶ¨ÐÔ£»
£¨5£©ÒýÈë¶Á/д·ÖÀ룬Ìá¸ßÊý¾ÝµÄ²éѯËٶȣ»
½ö½öÊÇ·Ö¿â·Ö±íµÄÊý¾Ý²ãÉè¼ÆÒ²ÊDz»¹»ÍêÉƵģ¬µ±Ä³¸ö½ÚµãÉϵÄDB·þÎñÆ÷³öÏÖÁËå´»úµÄÇé¿öµÄʱ ºò£¬»áÊÇʲôÑùµÄÄØ£¿Êǵģ¬ÎÒÃDzÉÓÃÁËÊý¾Ý¿âÇзַ½°¸£¬Ò²¾ÍÊÇ˵ÓÐNÌ«»úÆ÷×é³ÉÁËÒ»¸öÍêÕûµÄDB£¬ Èç¹ûÓÐһ̨»úÆ÷å´»úµÄ»°£¬Ò²½ö½öÊÇÒ»¸öDBµÄN·ÖÖ®Ò»µÄ Êý¾Ý²»ÄÜ·ÃÎʶøÒÑ£¬ÕâÊÇÎÒÃÇÄܽÓÊܵģ¬ÆðÂë±ÈÇзÖ֮ǰµÄÇé¿öºÃºÜ¶àÁË£¬×ܲ»ÖÁÓÚÕû¸öDB¶¼²»ÄÜ·ÃÎÊ¡£Ò»°ãµÄÓ¦ÓÃÖУ¬ÕâÑùµÄ»úÆ÷¹ÊÕϵ¼ÖµÄÊý¾ÝÎÞ·¨·ÃÎÊÊÇ¿É ÒÔ½ÓÊܵģ¬¼ÙÉèÎÒÃǵÄϵͳÊÇÒ»¸ö¸ß²¢·¢µÄµç×ÓÉÌÎñÍøÕ¾ÄØ£¿µ¥½Úµã»úÆ÷å´»ú´øÀ´µÄ¾¼ÃËðʧÊǷdz£ÑÏÖصġ£Ò²¾ÍÊÇ˵£¬ÏÖÔÚÎÒÃÇÕâÑùµÄ·½°¸»¹ÊÇ´æÔÚÎÊÌâµÄ£¬ÈÝ´í ÐÔÄÜÊǾ²»Æð¿¼ÑéµÄ¡£µ±È»ÁË£¬ÎÊÌâ×ÜÊÇÓнâ¾ö·½°¸µÄ¡£ÎÒÃÇÒýÈ뼯ȺµÄ¸ÅÄÔÚ´ËÎÒ³Æ֮ΪGroup£¬Ò²¾ÍÊÇÿһ¸ö·Ö¿âµÄ½ÚµãÎÒÃÇÒýÈ붹̀»úÆ÷£¬Ã¿Ì¨»úÆ÷±£ ´æµÄÊý¾ÝÊÇÒ»ÑùµÄ£¬Ò»°ãÇé¿öÏÂÕⶹ̀»úÆ÷·Ö̯¸ºÔØ£¬µ±³öÏÖå´»úÇé¿ö£¬¸ºÔؾùºâÆ÷½«·ÖÅ为ÔظøÕą̂崻úµÄ»úÆ÷¡£ÕâÑùÒ»À´£¬
¾Í½â¾öÁËÈÝ´íÐÔµÄÎÊÌâ¡£ËùÒÔÎÒÃÇÒýÈëÁ˼¯ÈºµÄ¸ÅÄ²¢½«ÆäÄÚǶÈëÎÒÃǵĿò¼ÜÖУ¬³ÉΪ¿ò¼ÜµÄÒ»²¿·Ö¡£
ÈçÉÏͼËùʾ£¬Õû ¸öÊý¾Ý²ãÓÐGroup1£¬Group2£¬Group3Èý¸ö¼¯Èº×é³É£¬ÕâÈý¸ö¼¯ Ⱥ¾ÍÊÇÊý¾ÝˮƽÇзֵĽá¹û£¬µ±È»ÕâÈý¸ö¼¯ÈºÒ²¾Í×é³ÉÁËÒ»¸ö°üº¬ÍêÕûÊý¾ÝµÄDB¡£Ã¿Ò»¸öGroup°üÀ¨1¸öMaster£¨µ±È»MasterÒ²¿ÉÒÔÊǶà¸ö£©ºÍ N¸öSlave£¬ÕâЩMasterºÍSlaveµÄÊý¾ÝÊÇÒ»Öµġ£ ±ÈÈçGroup1ÖеÄÒ»¸öslave·¢ÉúÁËå´»úÏÖÏó£¬ÄÇô»¹ÓÐÁ½¸öslaveÊÇ¿ÉÒÔÓõģ¬ÕâÑùµÄÄ£ÐÍ×ÜÊDz»»áÔì³Éij²¿·ÖÊý¾Ý²»ÄÜ·ÃÎʵÄÎÊÌ⣬³ý·ÇÕû¸ö GroupÀïµÄ»úÆ÷È«²¿å´µô£¬µ«ÊÇ¿¼Âǵ½ÕâÑùµÄÊÂÇé·¢ÉúµÄ¸ÅÂʷdz£Ð¡£¨³ý·ÇÊǶϵçÁË£¬·ñÔò²»Ò×·¢Éú°É£©¡£
ÔÚûÓÐÒýÈ뼯ȺÒÔÇ°£¬ÎÒÃǵÄÒ»´Î²éѯµÄ¹ý³Ì´óÖÂÈçÏ£ºÇëÇóÊý¾Ý²ã£¬²¢´«µÝ±ØÒªµÄ·Ö¿âÇø·Ö×ֶΠ£¨Í¨³£Çé¿öÏÂÊÇuser_id£©?Êý¾Ý²ã¸ù¾ÝÇø·Ö×Ö¶ÎRouteµ½¾ßÌåµÄDB?ÔÚÕâ¸öÈ·¶¨µÄDBÄÚ½øÐÐÊý¾Ý²Ù×÷¡£Õâ ÊÇûÓÐÒýÈ뼯ȺµÄÇé¿ö£¬µ±Ê±ÒýÈ뼯Ⱥ»á ÊÇʲôÑù×ÓµÄÄØ£¿¿´Í¼Ò»¼´¿ÉµÃÖª£¬ÎÒÃǵÄ·ÓÉÆ÷ÉϹæÔòºÍ²ßÂÔÆäʵֻÄÜ·Óɵ½¾ßÌåµÄGroup£¬Ò²¾ÍÊÇÖ»ÄÜ·Óɵ½Ò»¸öÐéÄâµÄGroup£¬Õâ¸öGroup²¢²» ÊÇij¸öÌض¨µÄÎïÀí·þÎñÆ÷¡£½ÓÏÂÀ´ÐèÒª×öµÄ¹¤×÷¾ÍÊÇÕÒµ½¾ßÌåµÄÎïÀíµÄDB·þÎñÆ÷£¬ÒÔ½øÐоßÌåµÄÊý¾Ý²Ù×÷¡£»ùÓÚÕâ¸ö»·½ÚµÄÐèÇó£¬ÎÒÃÇÒýÈëÁ˸ºÔؾùºâÆ÷µÄ¸ÅÄî £¨LB£©¡£¸ºÔؾùºâÆ÷µÄÖ°Ôð¾ÍÊǶ¨Î»µ½Ò»Ì¨¾ßÌåµÄDB·þÎñÆ÷¡£¾ßÌåµÄ¹æÔòÈçÏ£º¸ºÔؾùºâÆ÷»á·ÖÎöµ±Ç°sqlµÄ¶ÁдÌØÐÔ£¬Èç¹ûÊÇд²Ù×÷»òÕßÊÇÒªÇóʵʱÐÔºÜÇ¿ µÄ²Ù×÷µÄ»°£¬Ö±½Ó½«²éѯ¸ºÔØ·Öµ½Master£¬Èç¹ûÊǶÁ²Ù×÷Ôòͨ¹ý¸ºÔؾùºâ²ßÂÔ·ÖÅäÒ»¸öSlave¡£ÎÒÃǵĸºÔؾùºâÆ÷µÄÖ÷ÒªÑо¿·ÅÏòÒ²¾ÍÊǸºÔØ·Ö·¢²ßÂÔ£¬ ͨ³£Çé¿öϸºÔؾùºâ°üÀ¨Ëæ»ú¸ºÔؾùºâºÍ¼ÓȨ¸ºÔؾùºâ¡£Ëæ»ú¸ºÔؾùºâºÜºÃÀí½â£¬¾ÍÊÇ´ÓN¸öSlaveÖÐËæ»úÑ¡È¡Ò»¸öSlave¡£ÕâÑùµÄËæ»ú¸ºÔؾùºâÊDz»¿¼ÂÇ »úÆ÷ÐÔÄܵģ¬ËüĬÈÏΪÿ̨»úÆ÷µÄÐÔÄÜÊÇÒ»ÑùµÄ¡£¼ÙÈçÕæʵµÄÇé¿öÊÇÕâÑùµÄ£¬ÕâÑù×öÒ²ÊÇÎ޿ɺñ·ÇµÄ¡£¼ÙÈçʵ¼ÊÇé¿ö²¢·ÇÈç´ËÄØ£¿Ã¿¸öSlaveµÄ»úÆ÷ÎïÀíÐÔÄÜºÍ ÅäÖò»Ò»ÑùµÄÇé¿ö£¬ÔÙʹÓÃËæ»úµÄ²»¿¼ÂÇÐÔÄܵĸºÔؾùºâ£¬ÊǷdz£²»¿ÆѧµÄ£¬ÕâÑùÒ»À´»á¸ø»úÆ÷ÐÔÄܲîµÄ»úÆ÷´øÀ´²»±ØÒªµÄ¸ß¸ºÔØ£¬ÉõÖÁ´øÀ´å´»úµÄΣÏÕ£¬Í¬ ʱ¸ßÐÔ ÄܵÄÊý¾Ý¿â·þÎñÆ÷Ò²²»Äܳä·Ö·¢»ÓÆäÎïÀíÐÔÄÜ¡£»ùÓÚ´Ë¿¼ÂÇ´Ó£¬ÎÒÃÇÒýÈëÁ˼ÓȨ¸ºÔؾùºâ£¬Ò²¾ÍÊÇÔÚÎÒÃǵÄϵͳÄÚ²¿Í¨¹ýÒ»¶¨µÄ½Ó¿Ú£¬¿ÉÒÔ¸øÿ̨DB·þÎñÆ÷·ÖÅäÒ» ¸öȨֵ£¬È»ºóÔÙÔËÐÐʱLB¸ù¾ÝȨֵÔÚ¼¯ÈºÖеıÈÖØ£¬·ÖÅäÒ»¶¨±ÈÀýµÄ¸ºÔظø¸ÃDB·þÎñÆ÷¡£µ±È»ÕâÑùµÄ¸ÅÄîµÄÒýÈ룬ÎÞÒÉÔö´óÁËϵͳµÄ¸´ÔÓÐԺͿÉά»¤ÐÔ¡£ÓÐµÃ±Ø ÓÐʧ£¬ÎÒÃÇҲûÓа취ÌÓ¹ýµÄ¡£
ÓÐÁ˷ֿ⣬ÓÐÁ˼¯Èº£¬ÓÐÁ˸ºÔؾùºâÆ÷£¬ÊDz»ÊǾÍÍòÊ´ó¼ªÁËÄØ£¿ÊÂÇéԶûÓÐÎÒÃÇÏëÏóµÄÄÇô¼ò µ¥¡£ËäÈ»ÓÐÁËÕâЩ¶«Î÷£¬»ù±¾ÉÏÄܱ£Ö¤ÎÒÃǵÄÊý¾Ý²ã¿ÉÒÔ³ÐÊܴܺóµÄѹÁ¦£¬µ«ÊÇÕâÑùµÄÉè¼Æ²¢²»ÄÜÍêÈ«¹æ±ÜÊý¾Ý¿âå´»úµÄΣº¦¡£¼Ù ÈçGroup1ÖеÄslave2å´»úÁË£¬ÄÇôϵͳµÄLB²¢²»ÄܵÃÖª£¬ÕâÑùµÄ»°ÆäʵÊǺÜΣÏյģ¬ÒòΪLB²»ÖªµÀ£¬Ëü»¹»áÒÔΪslave2Ϊ¿ÉÓÃ״̬£¬ËùÒÔ»¹ ÊÇ»á¸øslave2·ÖÅ为ÔØ¡£Õâ ÑùÒ»À´£¬ÎÊÌâ¾Í³öÀ´ÁË£¬¿Í»§¶ËºÜ×ÔÈ»µÄ¾Í»á·¢ÉúÊý¾Ý²Ù×÷ʧ°ÜµÄ´íÎó»òÕßÒì³£¡£ÕâÑùÊǷdz£²»ÓѺõģ¡ÔõÑù½â¾öÕâÑùµÄÎÊÌâÄØ£¿ÎÒÃÇÒýÈ뼯Ⱥ½ÚµãµÄ¿ÉÓÃÐÔ̽²â»ú ÖÆ£¬»òÕßÊÇ¿ÉÓÃÐÔµÄÊý¾ÝÍÆËÍ»úÖÆ¡£ ÕâÁ½ÖÖ»úÖÆÓÐʲô²»Í¬ÄØ£¿Ê×ÏÈ˵̽²â»úÖÆ°É£¬¹ËÃû˼Ò壬̽²â¼´Ê¹£¬¾ÍÊÇÎÒµÄÊý¾Ý²ã¿Í»§¶Ë£¬²»¶¨Ê±¶Ô¼¯ÈºÖи÷¸öÊý¾Ý¿â½øÐÐ ¿ÉÓÃÐԵij¢ÊÔ£¬ÊµÏÖÔÀí¾ÍÊdz¢ÊÔÐÔÁ´½Ó£¬»òÕßÊý¾Ý¿â¶Ë¿ÚµÄ³¢ÊÔÐÔ·ÃÎÊ£¬¶¼¿ÉÒÔ×öµ½£¬µ±È»Ò²¿ÉÒÔÓÃJDBC³¢ÊÔÐÔÁ´½Ó£¬ÀûÓÃJavaµÄException»ú ÖƽøÐпÉÓÃÐÔµÄÅжϣ¬¾ßÌåµÄ»áÔÚºóÃæµÄÎÄ×ÖÖÐÌáµ½¡£ÄÇÊý¾ÝÍÆËÍ»úÖÆÓÖÊÇʲôÄØ£¿ÆäʵÕâ¸ö¾ÍÒª·ÅÔÚÏÖʵµÄÓ¦Óó¡¾°ÖÐÀ´ÌÖÂÛÕâ¸öÎÊÌâÁË£¬Ò»°ãÇé¿öÏÂÓ¦ÓõÄDB Êý¾Ý¿âå´»úµÄ»°ÎÒÏàÐÅDBA¿Ï¶¨ÊÇÖªµÀµÄ£¬Õâ¸öʱºòDBAÊÖ¶¯µÄ½«Êý¾Ý¿âµÄµ±Ç°×´Ì¬Í¨¹ý³ÌÐòµÄ·½Ê½ÍÆË͵½¿Í»§¶Ë£¬Ò²¾ÍÊÇ·Ö²¼Ê½Êý¾Ý²ãµÄÓ¦Óöˣ¬Õâ¸öʱºòÔÚ ¸üÐÂÒ»¸ö±¾µØµÄDB״̬µÄÁÐ±í¡£²¢¸æÖªLB£¬Õâ¸öÊý¾Ý¿â½Úµã²»ÄÜʹÓã¬Çë²»Òª¸øËü·ÖÅ为ÔØ¡£Ò»¸öÊÇÖ÷¶¯µÄ¼àÌý»úÖÆ£¬Ò»¸öÊDZ»¶¯µÄ±»¸æÖªµÄ»úÖÆ¡£Á½Õ߸÷ÓÐËù ³¤¡£µ«ÊǶ¼¿ÉÒԴﵽͬÑùµÄЧ¹û¡£ÕâÑùÒ»À´¸Õ²Å¼ÙÉèµÄÎÊÌâ¾Í²»»á·¢ÉúÁË£¬¼´Ê¹¾ÍÊÇ·¢ÉúÁË£¬ÄÇô·¢ÉúµÄ¸ÅÂÊÒ²»á½µµ½×îµÍ¡£
ÉÏÃæµÄÎÄ×ÖÖÐÌáµ½µÄMasterºÍSlave£¬ ÎÒÃDz¢Ã»ÓÐ×öÌ«¶àÉîÈëµÄ½²½â¡£ÈçͼһËùʾ£¬Ò» ¸öGroupÓÉ1¸öMasterºÍN¸öSlave×é³É¡£ÎªÊ²Ã´Õâô×öÄØ£¿ÆäÖÐMaster¸ºÔðд²Ù×÷µÄ¸ºÔØ£¬Ò²¾ÍÊÇ˵һÇÐдµÄ²Ù×÷¶¼ÔÚMasterÉϽø ÐУ¬¶ø¶ÁµÄ²Ù×÷Ôò·Ö̯µ½SlaveÉϽøÐС£ÕâÑùÒ»À´µÄ¿ÉÒÔ´ó´óÌá¸ß¶ÁÈ¡µÄЧÂÊ¡£ÔÚÒ»°ãµÄ»¥ÁªÍøÓ¦ÓÃÖУ¬¾¹ýһЩÊý¾Ýµ÷²éµÃ³ö½áÂÛ£¬¶Á/дµÄ±ÈÀý´ó¸ÅÔÚ10£º1×óÓÒ£¬ Ò²¾ÍÊÇ˵´óÁ¿µÄÊý¾Ý²Ù×÷ÊǼ¯ÖÐÔÚ¶ÁµÄ²Ù×÷£¬ÕâÒ²¾ÍÊÇΪʲôÎÒÃÇ»áÓжà¸öSlaveµÄÔÒò¡£µ«ÊÇΪʲôҪ·ÖÀë¶ÁºÍдÄØ£¿ÊìϤDBµÄÑз¢ÈËÔ±¶¼ ÖªµÀ£¬Ð´²Ù×÷Éæ¼°µ½ËøµÄÎÊÌ⣬²»¹ÜÊÇÐÐËø»¹ÊDZíËø»¹ÊÇ¿éËø£¬¶¼ÊDZȽϽµµÍϵͳִÐÐЧÂʵÄÊÂÇé¡£ÎÒÃÇÕâÑùµÄ·ÖÀëÊÇ°Ñд²Ù×÷¼¯ÖÐÔÚÒ»¸ö½ÚµãÉÏ£¬¶ø¶Á²Ù×÷ÆäÆäËû µÄN¸ö½ÚµãÉϽøÐУ¬´ÓÁíÒ»¸ö·½ÃæÓÐЧµÄÌá¸ßÁ˶ÁµÄЧÂÊ£¬±£Ö¤ÁËϵͳµÄ¸ß¿ÉÓÃÐÔ¡£¶Áд·ÖÀëÒ²»áÒýÈëеÄÎÊÌ⣬±ÈÈçÎÒµÄMasterÉϵÄÊý¾ÝÔõÑùºÍ¼¯ÈºÖÐÆäËû µÄSlave»úÆ÷±£³ÖÊý¾ÝµÄͬ²½ºÍÒ»ÖÂÄØ?Õâ¸öÊÇÎÒÃDz»ÐèÒª¹ý¶àµÄ¹Ø×¢µÄÎÊÌ⣬MySqlµÄProxy»úÖÆ¿ÉÒÔ°ïÖúÎÒÃÇ×öµ½Õâµã£¬ÓÉÓÚProxy»úÖÆÓë±¾ ¿ÎÌâÏà¹ØÐÔ²»ÊÇÌ«Ç¿£¬
ÔÚÕâÀï²»×öÏêϸ½éÉÜ¡£
×ÛÉÏËùÊö£¬±¾¿ÎÌâÖÐËùÑо¿µÄ·Ö²¼Ê½Êý¾Ý²ãµÄ´óÌ幦ÄܾÍÊÇÈç´Ë¡£ÒÔÉÏÊǶԻù±¾ÔÀíµÄһЩÌÖÂۺͲûÊö¡£½ÓÏÂÀ´¾ÍϵͳÉè¼Æ²ãÃ棬½øÐÐÉîÈëµÄÆÊÎöºÍÑо¿¡£
µÚ4Õ ϵͳÉè¼Æ
4.1ϵͳʵÏÖ²ãÃæµÄÑ¡Ôñ
ÔÚÒýÑÔ²¿·ÖÖÐÌáµ½£¬¸Ãϵͳ µÄʵÏÖ²ãÃæÓÐÁ½ÖÖÑ¡Ôñ£¬Ò»ÖÖÊÇ»ùÓÚJDBC²ãÃæÉϵÄÑ¡Ôñ£¬Ò»ÖÖÊÇ»ù ÓÚÏÖÓÐÊý¾Ý³Ö¾Ã²ã¿ò¼Ü²ãÃæÉϵÄÑ¡Ôñ£¬±ÈÈçHibernate£¬ibatis¡£Á½ÖÖ²ãÃæ¸÷Óг¤´¦£¬Ò²¸÷Óв»×ãÖ®´¦¡£»ùÓÚJDBC²ãÃæÉϵÄϵͳʵÏÖ£¬ÏµÍ³¿ª·¢ ÄѶȺͺóÆÚµÄʹÓÃÄѶȶ¼½«´ó´óÌá¸ß¡£´ó´óÔö¼ÓÁËϵͳµÄ¿ª·¢·ÑÓúÍά»¤·ÑÓᣱ¾¿ÎÌâµÄ¶¨Î»ÊÇÔÚ³ÉÐ͵Äibatis³Ö¾Ã²ã¿ò¼ÜµÄ»ù´¡ÉϽøÐÐÉϲãµÄ·â×°£¬¶ø²»ÊÇ ¶ÔibatisÔ´ÂëµÄÖ±½ÓÐ޸ģ¬ÕâÑùÒ»À´Ê¹±¾ÏµÍ³²»»á¶ÔÏÖÓпò¼ÜÓÐÌ«¶àµÄÇÖÈëÐÔ£¬´Ó¶øÒ²Ôö¼ÓÁËʹÓõÄÁé»îÐÔ¡£Ö®ËùÒÔÑ¡Ôñibatis£¬ÔÒòÈçÏ£º
£¨1£©ibatisµÄѧϰ³É±¾·Ç³£µÍ£¬ÊìÁ·µÄJava Programmer¿ÉÔڷdz£µÄ¶Ìʱ¼äÄÚÊìÁ·Ê¹ÓÃibatis£»
£¨2£©ibatisÊÇÇáÁ¿ ¼¶µÄORM£¬Ö»ÊǼòµ¥µÄÍê³ÉÁËRO£¬ORµÄÓ³É䣬Æä²éѯÓï¾äÒ²ÊÇͨ ¹ýÅäÖÃÎļþsql-map.xmlÎļþÔÚÔÉúsqlµÄ²ãÃæ½øÐмòµ¥µÄÅäÖã¬Ò²¾ÍÊÇ˵ÎÒÃÇûÓÐÒýÈëÖîÈçHibernateÄÇÑùµÄHQLµÄ¸ÅÄ´Ó¶øÔöÇ¿ÁË sqlµÄ¿É¿ØÐÔ£¬ÓÅÐãµÄDBA¿ÉÒԺܺõĴÓsqlµÄ²ãÃæ¶Ôsql½øÐÐÓÅ»¯£¬Ê¹Êý¾Ý²ãµÄÓ¦ÓÃÓкÜÇ¿µÄ¿É¿ØÐÔ¡£HibernateËäÈ»ºÜÇ¿´ó£¬µ«ÊÇÓÉÓÚ HibernateÊÇORµÄÒ»¸öÖØÐÍ·â×°£¬ÇÒÒýÈëHQLµÄ¸ÅÄ²»±ãÓÚDBAÍŶӶÔsqlÓï¾äµÄ¿ØÖƺÍÐÔÄܵĵ÷ÓÅ¡£
»ùÓÚÒÔÉÏÁ½µãÀíÓÉ£¬±¾¿ÎÌâÔÚORMµÄ²úÆ·µÄÑ¡ÔñÉÏÑ¡ÔñÁËÒ×ѧÒ×ÓÃÇÒÇáÁ¿¼¶µÄ³Ö¾Ã²ã¿ò¼Üibatis¡£ÏÂÃæµÄÌÖÂÛÒ²¶¼ÊÇÌض¨ÓÚibatisµÄ»ù´¡ÉϵÄÌÖÂÛ¡£
4.2ÆäËû¿ªÔ´¿ò¼ÜµÄÑ¡Ôñ
ÔÚһЩ´óÐ͵ÄJavaÓ¦Óà ÖУ¬ÎÒÃÇͨ³£»á²ÉÓÃSpringÕâÑùµÄ¿ªÔ´¿ò¼Ü£¬ÓÈÆäÊÇIoC£¨DI£©Õⲿ·Ö£¬ÓÐЧµÄ°ïÖú¿ª·¢ÈËÔ±¹ÜÀí¶ÔÏóµÄÒÀÀµ¹ØϵºÍ²ã´Î£¬½µµÍϵͳ¸÷²ã´ÎÖ®¼äµÄʵÌåñî ºÏ¡£SpringµÄÓŵãºÍÓô¦ÎÒÏàÐÅÕâÊÇ¿ª·¢ÈËÔ±ÖÚËùÖÜ ÖªµÄ£¬Ôڴ˲»ÔÙ׸Êö¡£±¾¿ÎÌâµÄÊý¾Ý²ãÒ²½«²ÉÓÃSpring×öΪIoC£¨DI£©µÄ¿ò¼Ü¡£
ÍƼöÐÅÏ¢
- ¡¾ÊÓƵ²¥·Å¡¿JplayerÊÓƵ²¥·ÅÆ÷µÄʹÓÃ
- memcacheÄÚ´æÔÀí
- Memcache¼¼Êõ·ÖÏí£º½éÉÜ¡¢Ê¹Óᢴ洢¡¢Ëã·¨¡¢ÓÅ»¯....
- php³£ÓÃÕýÔò±í´ïʽ
- phpÐÔÄܼà²âÄ£¿éXHProf
- ÈÃCI¿ò¼ÜÖ§³Öservice²ã
- ʹÓÃPHPÉú³É´øLOGOµÄ¸öÐÔ»¯¶þάÂëͼÏñ
- ¹ØÓÚCodeIgniterÄã¿ÉÄܲ»ÖªµÀµÄ5¸ö֪ʶµã
- Memcache ºÁÃ뼶³¬Ê±¼°ÆäËû³£¼ûÎÊÌâ»ã×Ü
- [PHP±Ê¼Ç]PHPQueryÒ»¸ö´¦ÀíDOMµÄÀûÆ÷
ÈÈÃÅÐÅÏ¢
- 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ÎÞÃÜÂëµÇ¼
×î½ü¸üÐÂ
- PHP»ñÈ¡Óû§µÄÕæʵIP£¬²¢ÅжÏÊÇ·ñÄÚÍøIP
- PHP ´íÎóÈÕÖ¾ error_log
- ÀûÓÃbigpipe»úÖÆʵÏÖÒ³ÃæÄ£¿éµÄÒì²½äÖȾ chunked¼¼Êõ
- php¿ØÖÆÎļþÏÂÔØËÙ¶È
- js + php ¶ÁÈ¡¡¢²¥·ÅÊÓƵÁ÷ ¼æÈÝfirefox£¬c....
- ¡¾ÊÓƵ²¥·Å¡¿JplayerÊÓƵ²¥·ÅÆ÷µÄʹÓÃ
- UNICODE Óë UTF-8 µÄ¹Øϵ
- memcacheÄÚ´æÔÀí
- Memcache¼¼Êõ·ÖÏí£º½éÉÜ¡¢Ê¹Óᢴ洢¡¢Ëã·¨¡¢ÓÅ»¯....
- phpʹÓÃmb_detect_encoding¼ì²â×Ö·û´®±àÂë
ÆÀÂÛ