ʹÓÃMySQL Proxy½â¾öMySQLÖ÷´Óͬ²½ÑÓ³Ù
MySQLµÄÖ÷´Óͬ²½»úÖÆ·Ç³£·½±ãµÄ½â¾öÁ˸߲¢·¢¶ÁµÄÓ¦ÓÃÐèÇ󣬸øWeb·½ Ãæ¿ª·¢´øÀ´Á˼«´óµÄ±ãÀû¡£µ«ÕâÖÖ·½Ê½Óиö±È½Ï´óµÄȱÏÝÔÚÓÚMySQLµÄͬ²½»úÖÆÊÇÒÀÀµSlaveÖ÷¶¯ÏòMaster·¢ÇëÇóÀ´»ñÈ¡Êý¾ÝµÄ£¬¶øÇÒÓÉÓÚ·þÎñÆ÷¸º ÔØ¡¢ÍøÂçÓµ¶ÂµÈ·½ÃæµÄÔÒò£¬MasterÓëSlaveÖ®¼äµÄÊý¾Ýͬ²½ÑÓ³ÙÊÇÍêȫûÓб£Ö¤µÄ¡£¶ÌÔÚ1ÃëÄÚ£¬³¤Ôò¼¸Ãë¡¢¼¸Ê®ÃëÉõÖÁ¸ü³¤¶¼ÓпÉÄÜ¡£
ÓÉÓÚÊý¾ÝÑÓ³ÙÎÊÌâµÄ´æÔÚ£¬µ±Ó¦ÓóÌÐòÔÚMasterÉϽøÐÐÊý¾Ý¸üУ¬È»ºóÓÖÁ¢¿ÌÐèÒª´ÓÊý¾Ý¿âÖжÁÈ¡Êý¾Ýʱ£¬ÕâʱºòÈç¹ûÓ¦ÓóÌÐò´ÓSlaveÉÏÈ¡Êý¾Ý(ÕâÒ²Êǵ±Ç°Web¿ª·¢µÄ³£¹æ×ö·¨)£¬¾Í¿ÉÄܳöÏÖ¶ÁÈ¡²»µ½ÆÚÍûµÄÊý¾Ý£¬Ôì³É³ÌÐòÔËÐÐÒì³£¡£
½â¾öÕâ¸öÎÊÌâÓжàÖÖ·½Ê½£¬±ÈÈç×î¼òµ¥µÄÔÚËùÓеÄinsertºÍupdateÖ®ºó£¬Ç¿ÖÆsleep¼¸ÃëÖÓ¡£ÕâÊǷdz£´Ö³µÄ·½Ê½£¬¶ÔÓÚ¸üвÙ×÷²»ÊǺܸߵÄÖÐСÐÍϵͳ£¬´Ë·½Ê½»ù±¾Äܽâ¾öÎÊÌâ¡£
ÁíÍâÒ»ÖÖ·½Ê½ÊÇÓ¦ÓóÌÐò°Ñ±»¸üеÄÊý¾Ý±£´æÔÚ±¾»úµÄÄÚ´æ(»òÕß¼¯ÖÐʽ»º´æ)ÖУ¬Èç¹ûÔÚдÈëÊý¾ÝÍê³ÉºóÐèÒªÖ±½Ó¶ÁÈ¡Êý¾Ý£¬Ôò´Ó±¾»úÄÚ´æÖжÁÈ¡¡£ÕâÖÖ·½Ê½µÄȱµãÊǼ«´óµÄÔö¼ÓÁËÓ¦ÓóÌÐòµÄ¸´ÔÓ¶È£¬¶øÇÒ¿É¿¿ÐÔ²¢²»ÄÜÍêÈ«µÃµ½±£ÕÏ¡£
ʹÓÃMySQL Proxy¿ÉÒԺܷ½±ãµÄ½â¾öÕâ¸öÎÊÌâ¡£
MySQL ProxyÊÇ»ùÓÚMySQL Client ºÍ MySQL ServerÖ®¼äµÄ´úÀí³ÌÐò£¬Äܹ»Íê³É¶ÔClientËù·¢ÇëÇóµÄ¼à¿Ø¡¢Ð޸ġ£
´ÓClient½Ç¶È¿´£¬Í¨¹ýProxy·ÃÎÊServerºÍÖ±½Ó·ÃÎÊServerûÓÐÈκÎÇø±ð¡£¶ÔÓÚ¼ÈÓеijÌÐò¶øÑÔ£¬Ö»Òª°ÑÖ±½Ó±»·ÃÎʵÄServerµÄIPµØÖ·ºÍ¶Ë¿ÚºÅ»»³ÉProxyµÄIPµØÖ·ºÍ¶Ë¿ÚºÅ¾Í¿ÉÒÔ¡£
MySQL ProxyµÄ¹¤×÷ÔÀíÒ²½Ï¼òµ¥¡£ÔÚProxyÆô¶¯Ê±¿ÉÒÔÖ¸¶¨ProxyËùÐèҪʹÓõÄlua½Å±¾£¬ÔÚlua½Å±¾ÖÐÔ¤ÏÈʵÏÖ6¸ö·½·¨£º
- connect_server() // ½ÓÊÕµ½ClientµÄÁ¬½ÓÇëÇóʱµ÷ÓÃ
- read_handshake() //
- read_auth() // ¶ÁÈ¡ClientµÄÈÏÖ¤ÐÅϢʱµ÷ÓÃ
- read_auth_result() // ¶ÁÈ¡ÈÏÖ¤½á¹ûʱµ÷ÓÃ
- read_query() // ¶ÁÈ¡ClientµÄqueryÇëÇóʱµ÷ÓÃ
- read_query_result() //¶ÁÈ¡query½á¹ûʱµ÷ÓÃ
µ±Proxy½ÓÊÕµ½ClientÇëÇóʱ£¬ÔÚÇëÇóµÄ²»Í¬µÄ½×¶Î»áµ÷ÓÃÉÏÃæµÄ²»Í¬·½·¨¡£ÕâÑùProxyʹÓÃÕ߾ͿÉÒÔ¸ù¾Ý×Ô¼ºµÄÒµÎñÐèÇó£¬×ÔÓɵÄʵÏÖÕâ6¸ö·½·¨´ïµ½Ä¿µÄ¡£
ͨ¹ýÔÚread_query()ÖмÓÈë´úÂ룬ÎÒÃÇ¿ÉÒÔ½ØÈ¡³öµ±Ç°µÄÇëÇóÊÇinsert¡¢update»¹ÊÇselect£¬È»ºó°ÑinsertºÍupdateÇëÇó·¢Ë͵½MasterÖУ¬°ÑselectÇëÇó·¢Ë͵½SlaveÖУ¬ÕâÑù¾Í½â¾öÁ˶Áд·ÖÀëµÄÎÊÌâ¡£
ÔÚ½â¾öÁ˶Áд·ÖÀëºó£¬ÈçºÎ½â¾öͬ²½ÑÓ³ÙÄØ£¿
·½·¨ÊÇÔÚMasterÉÏÔö¼ÓÒ»¸ö×ÔÔö±í£¬Õâ¸ö±í½öº¬ÓÐ1¸öµÄ×ֶΡ£µ±Master½ÓÊÕµ½ÈκÎÊý¾Ý¸üеÄÇëÇóʱ£¬¾ù»á´¥·¢Õâ¸ö´¥·¢Æ÷£¬¸Ã´¥·¢Æ÷¸üÐÂ×ÔÔö±íÖеļǼ¡£ÈçÏÂͼËùʾ£º
ÓÉÓÚCount_tableÒ²²ÎÓëMysqµÄÖ÷´Óͬ²½£¬Òò´ËÔÚMasterÉÏ×÷µÄUpdate¸üÐÂÒ²»áͬ²½µ½SlaveÉÏ¡£µ±Clientͨ¹ýProxy½øÐÐÊý¾Ý¶Áȡʱ£¬Proxy¿ÉÒÔÏÈÏòMasterºÍSlaveµÄCount_table±í·¢ËͲéѯÇëÇ󣬵±¶þÕßµÄÊý¾ÝÏàͬʱ£¬Proxy¿ÉÒÔÈ϶¨MasterºÍSlaveµÄÊý¾Ý״̬ÊÇÒ»Öµģ¬È»ºó°ÑselectÇëÇó·¢Ë͵½Slave·þÎñÆ÷ÉÏ£¬·ñÔò¾Í·¢Ë͵½MasterÉÏ¡£ÈçÏÂͼËùʾ£º
ͨ¹ýÕâÖÖ·½Ê½£¬¾Í¿ÉÒԱȽÏÍêÃÀµÄ½á¹ûMySQLµÄͬ²½ÑÓ³Ù²»¿É¿ØÎÊÌâ¡£Ö®ËùÒÔËù¡°±È½ÏÍêÃÀ¡±£¬ÊÇÒòΪÕâÖÖ·½°¸doubleÁ˲éѯÇëÇ󣬶ÔMasterºÍ Slave¹¹³ÉÁ˶îÍâµÄѹÁ¦¡£²»¹ýÓÉÓÚProxyÓëÕæÊµµÄMysql Server²ÉÓÃÁ¬½Ó³ØµÄ·½Ê½Á¬½Ó£¬Òò´Ë¶îÍâµÄѹÁ¦»¹ÊÇ¿ÉÒÔ½ÓÊܵġ£
ÍÆ¼öÐÅÏ¢
ÈÈÃÅÐÅÏ¢
- 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ÎÞÃÜÂëµÇ¼
ÆÀÂÛ