2019-08-08
1 Ïàʶ¸ºÔØÆ½ºâ
¼ÇµÃµÚÒ»ci½Ó´¥NginxÊÇÔÚʵÑéÊÒ£¬ÄÇʱ¼äÔÚ·þÎñÆ÷²¿ÊðÍøÕ¾ÐèÒªÓÃNginx¡£NginxÊÇÒ»¸ö·þÎñ×é¼þ£¬ÓÃÀ´·´ÏòÊðÀí¡¢¸ºÔØÆ½ºâºÍHTTP»º´æµÈ¡£ÄÇôÕâÀïµÄ¸ºÔØÆ½ºâÊÇʲô£¿
¸ºÔØÆ½ºâ¼ò³ÆLB£¨Load Balance£©£¬È·ÇеÄ˵ÊÇÒ»ÖÖÊÖÒÕ½â¾ö·½°¸£¬ÓÃÓÚÔÚ¶à¸ö×ÊÔ´£¨·ºÖ¸·þÎñÆ÷£©ÖзÖÅä¸ºÔØ£¬µ½´ï×îÓÅ»¯×ÊԴʹÓã¬×èÖ¹×°±¸¹ýÔØ¡£
×ÊÔ´¼´ÊÇÿ¸ö·þÎñʵÀýµÄÖ´ÐвÙ×÷µ¥Ôª£¬¸ºÔØÆ½ºâ¾ÍÊǽ«´óÁ¿µÄÊý¾Ý´¦ÖÃÉÍ·£²Ù×÷·Ö̯µ½¶à¸ö²Ù×÷µ¥Ôª¾ÙÐÐÖ´ÐУ¬ÓÃÀ´½â¾ö»¥ÁªÍøÂþÑÜʽϵͳµÄ´óÁ÷Á¿¡¢¸ß²¢·¢ºÍ¸ß¿ÉÓõÄÎÊÌâ¡£
ÄÇô£¬Ê²Ã´ÊǸ߿ÉÓÃÄØ£¿
2 ¸ß¿ÉÓõļÄÒå
Ê×ÏÈÈÃÎÒÃÇÏàʶһÏÂʲôÊǸ߿ÉÓã¿
¸ß¿ÉÓÃÊÇCAP¶¨ÀíÊÇÂþÑÜʽϵͳµÄ»ù´¡£¬Ò²ÊÇÂþÑÜʽϵͳµÄ3¸öÖ¸±ê£º
ÄÇHigh Availability-¸ß¿ÉÓÃÊÇʲô£¿
¸ß¿ÉÓüò³ÆHA£¬ÊÇϵͳһÖÖÌØÕ÷»òÕßÖ¸±ê£¬Í¨³£ÊÇÖ¸Ìṩһ¶¨ÐÔÄÜÉϵķþÎñÔËÐÐʱ¼ä£¬¸ßÓÚÆ½¾ùÕý³£Ê±¼ä¶Î¡£·´Ö®£¬Ïû³ýϵͳ·þÎñ²»ÐÐÓõÄʱ¼ä¡£
ȨºâϵͳÊÇ·ñÖª×ã¸ß¿ÉÓ㬾ÍÊǵ±Ò»Ì¨»òÕß¶ą̀·þÎñÆ÷å´»úµÄʱ¼ä£¬ÏµÍ³ÕûÌåºÍ·þÎñÒÀÈ»Õý³£¿ÉÓá£
ºÃ±Èϵ¥·þÎñ£¬¿ÉÒÔʹÓôøÓиºÔØÆ½ºâµÄ¶à¸öϵ¥·þÎñʵÀý£¬È¡´úµ¥Ò»µÄϵ¥·þÎñʵÀý£¬×ÝÈ»ÓÃÈßÓàµÄ·½Ê½À´Ìá¸ß¿É¿¿ÐÔ¡£
×ܶøÑÔÖ®£¬¸ºÔØÆ½ºâ£¨Load Balance£©ÊÇÂþÑÜʽϵͳ¼Ü¹¹Éè¼ÆÖбØÐë˼Á¿µÄÒòËØÖ®Ò»¡£Ò»banͨ¹ý¸ºÔØÆ½ºâ£¬ÈßÓàͳһ¸ö·þÎñʵÀýµÄ·½Ê½£¬½â¾öÂþÑÜʽϵͳµÄ´óÁ÷Á¿¡¢¸ß²¢·¢ºÍ¸ß¿ÉÓõÄÎÊÌâ¡£¸ºÔØÆ½ºâ½¹µã¹Øjian£ºÔÚÓÚÊÇ·ñ·ÖÅäÔȳơ£
3 Á½¸ö¸ºÔØÆ½ºâ°¸Àý·ÖÏí
°¸Àý1
΢·þÎñ¼Ü¹¹ÖУ¬Íø¹ØÂ·Óɵ½ÏêϸµÄ·þÎñʵÀýhello£º
°¸Àý2
΢·þÎñ¼Ü¹¹ÖУ¬A·þÎñŲÓÃB·þÎñµÄ¼¯Èº¡£Í¨¹ýÁËRibbon¿Í»§¶Ë¸ºÔØÆ½ºâ×é¼þ£º
¡ñ ¸ºÔØÆ½ºâÕ½ÂÔËã·¨²¢²»¸ß¼¶£¬×î¼òÆÓµÄÊÇËæ»úÑ¡ÔñºÍÂÖÑ¡£
4»¥ÁªÍøÂþÑÜʽϵͳ½â¾ö·½°¸
³£¼ûµÄ¼¸¸ö»¥ÁªÍøÂþÑÜʽϵͳ¼Ü¹¹·Ö²ãÈçÏ£º
Ò»¸öÇëÇó´ÓµÚ1²ãµ½µÚ4²ã£¬²ã²ã»á¼û¶¼ÐèÒª¸ºÔØÆ½ºâ¡£¼´Ã¿¸öÉÏÓÎŲÓÃÏÂÓζà¸öÓªÒµ·½µÄʱ¼ä£¬ÐèÒªÔȳÆÅ²Óá£ÕâÑùÕûϵһÇÐÀ´¿´£¬¾Í½ÏÁ¿¸ºÔØÆ½ºâ¡£
µÚ Ò» ²ã
¿Í»§¶Ë²ã -> ·´ÏòÊðÀí²ãµÄ¸ºÔØÆ½ºâ
¿Í»§¶Ë²ã -> ·´ÏòÊðÀí²ãµÄ¸ºÔØÆ½ºâÔõÑùʵÏÖÄØ£¿
ÃÕµ×ÊÇ£ºDNSµÄÂÖѯ¡£DNS¿ÉÒÔͨ¹ýA£¨Address£¬·µ»ØÓòÃûÖ¸ÏòµÄIPµØÖ·£©ÉèÖöà¸öIPµØÖ·¡£ºÃ±ÈÕâÀï»á¼ûbysocket.comµÄDNSÉèÖÃÁËip1ºÍip2¡£ÎªÁË·´ÏòÊðÀí²ãµÄ¸ß¿ÉÓã¬ÖÁÉÙ»áÓÐÁ½ÌõA¼Í¼¡£ÕâÑùÈßÓàµÄÁ½¸öip¶ÔÓ¦µÄnginx·þÎñʵÀý£¬·ÀÖ¹µ¥µã¹ÊÕÏ¡£
ÿciÇëÇóbysocket.comÓòÃûµÄʱ¼ä£¬Í¨¹ýDNSÂÖѯ£¬·µ»Ø¶ÔÓ¦µÄipµØÖ·£¬Ã¿¸öip¶ÔÓ¦µÄ·´ÏòÊðÀí²ãµÄ·þÎñʵÀý£¬Ò²¾ÍÊÇnginxµÄÍâÍøip¡£ÕâÑù¿ÉÒÔ×öµ½Ã¿Ò»¸ö·´ÏòÊðÀí²ãʵÀý»ñµÃµÄÇëÇó·ÖÅäÊÇÆ½ºâµÄ¡£
µÚ ¶þ ²ã
·´ÏòÊðÀí²ã -> Web²ãµÄ¸ºÔØÆ½ºâ
·´ÏòÊðÀí²ã -> Web²ãµÄ¸ºÔØÆ½ºâÔõÑùʵÏÖÄØ£¿
ÊÇͨ¹ý·´ÏòÊðÀí²ãµÄ¸ºÔØÆ½ºâÄ£¿é´¦ÖÃÉÍ·£¡£ºÃ±ÈnginxÓжàÖÖÆ½ºâÒªÁ죺
1ÇëÇóÂÖѯ
ÇëÇóanʱ¼ä˳Ðò£¬ÖðÒ»·ÖÅäµ½web²ã·þÎñ£¬È»ºóÖܶø¸´shi¡£ÈôÊÇweb²ã·þÎñdownµô£¬×Ô¶¯ÌÞ³ý¡£
2ip ¹þÏ£
anÕÕipµÄ¹þÏ£Öµ£¬È·¶¨Â·Óɵ½¶ÔÓ¦µÄweb²ã¡£Ö»ÒªÊÇÓû§µÄipÊÇÔȳƵģ¬ÄÇôÇëÇóµ½Web²ãÒ²ÊÇÔȳƵġ£
ÉÐÓиöÀûÒæ¾ÍÊÇͳһ¸öipµÄÇëÇó»á·Ö·¢µ½ÏàͬµÄweb²ã·þÎñ¡£ÕâÑùÿ¸öÓû§Àο¿»á¼ûÒ»¸öweb²ã·þÎñ£¬¿ÉÒÔ½â¾ösessionµÄÎÊÌâ¡£
3weightÈ¨ÖØ¡¢fair¡¢url_hashµÈ
µÚ Èý ²ã
Web ²ã -> ÓªÒµ·þÎñ²ãµÄ¸ºÔØÆ½ºâ
Web ²ã -> ÓªÒµ·þÎñ²ãµÄ¸ºÔØÆ½ºâÔõÑùʵÏÖÄØ£¿
ºÃ±ÈDubboÊÇÒ»¸ö·þÎñÖÎÀí·½°¸£¬°üÂÞ·þÎñ×¢²á¡¢·þÎñ½µ¼¶¡¢»á¼û¿ØÖÆ¡¢¶¯Ì¬ÉèÖ÷ÓɹæÔò¡¢È¨Öص÷ÖΡ¢¸ºÔØÆ½ºâ¡£ÆäÖÐÒ»¸öÌØÕ÷¾ÍÊÇÖÇÄܸºÔØÆ½ºâ£ºÄÚÖöàÖÖ¸ºÔØÆ½ºâÕ½ÂÔ£¬ÖÇÄܸÐÖªÏÂÓνڵ㿵½¡×´Ì¬£¬ÏÔÖøïÔÌŲÓÃÑÓ³Ù£¬Ìá¸ßϵͳÍÌÍÂÁ¿¡£
ΪÁË×èÖ¹µ¥µã¹ÊÕϺÍÖ§³Ö·þÎñµÄºáÏòÀ©ÈÝ£¬Ò»¸ö·þÎñͨ³£»á²¿Êð¶à¸öʵÀý£¬¼´Dubbo¼¯Èº²¿Ê𡣻Ὣ¶à¸ö·þÎñʵÀý³ÉΪһ¸ö·þÎñÌṩ·½£¬È»ºóƾ֤ÉèÖõÄËæ»ú¸ºÔØÆ½ºâÕ½ÂÔ£¬ÔÚ20¸öProviderÖÐËæ»úÑ¡ÔñÁËÒ»¸öÀ´Å²Ó㬼ÙÉèËæ»úµ½Á˵Ú7¸öProvider¡£LoadBalance×é¼þ´ÓÌṩÕßµØÖ·ÁбíÖУ¬Ê¹ÓÃÆ½ºâÕ½ÂÔ£¬Ñ¡Ôñѡһ¸öÌṩÕß¾ÙÐÐŲÓã¬ÈôÊÇŲÓÃʧ°Ü£¬ÔÙÑ¡Áíһ̨ŲÓá£
DubboÄÚÖÃÁË4ÖÖ¸ºÔØÆ½ºâÕ½ÂÔ:
¡ñ RandomLoadBalance:Ëæ»ú¸ºÔØÆ½ºâ¡£Ëæ»úµÄÑ¡ÔñÒ»¸ö¡£ÊÇDubboµÄĬÈϸºÔØÆ½ºâÕ½ÂÔ¡£
¡ñ RoundRobinLoadBalance:ÂÖѯ¸ºÔØÆ½ºâ¡£ÂÖѯѡÔñÒ»¸ö¡£
¡ñ LeastActiveLoadBalance:×îÉÙ»îԾŲÓÃÊý£¬Ïàͬ»îÔ¾ÊýµÄËæ»ú¡£»îÔ¾ÊýָŲÓÃǰºó¼ÆÊý²î¡£Ê¹ÂýµÄProviderÊÕµ½¸üÉÙÇëÇó£¬ÓÉÓÚÔ½ÂýµÄProviderµÄŲÓÃǰºó¼ÆÊý²î»áÔ½´ó¡£
¡ñ ConsistentHashLoadBalance:Ò»ÖÂÐÔ¹þÏ£¸ºÔØÆ½ºâ¡£Ïàͬ²ÎÊýµÄÇëÇó×ÜÊÇÂäÔÚͳһ̨»úеÉÏ¡£
ͬÑù£¬ÓÉÓÚÓªÒµµÄÐèÒª£¬Ò²¿ÉÒÔʵÏÖ×Ô¼ºµÄ¸ºÔØÆ½ºâÕ½ÂÔ¡£
µÚ ËÄ ²ã
ÓªÒµ·þÎñ²ã -> Êý¾Ý´æ´¢²ãµÄ¸ºÔØÆ½ºâ
Êý¾Ý´æ´¢²ãµÄ¸ºÔØÆ½ºâ£¬Ò»banͨ¹ýDBProxyʵÏÖ¡£ºÃ±ÈMySQL·Ö¿â·Ö±í¡£
µ±µ¥¿â»òÕßµ¥±í»á¼ûÌ«´ó£¬Êý¾ÝÁ¿Ì«´óµÄqing¿öÏ£¬ÐèÒª¾ÙÐд¹Ö±²ð·ÖºÍˮƽ²ð·ÖÁ½¸öά¶È¡£ºÃ±ÈˮƽÇзֹæÔò£º
µ«Åãͬ×ÅÕâ¿éµÄ¸ºÔػ᷺ÆðÏÂÃæµÄÎÊÌ⣬ÐèÒª½â¾ö£º
ÏÖ×´·Ö¿â·Ö±íµÄ²úÎï·½°¸Ðí¶à£¬°üÂÞ°¢ÀïµÄCobar¡¢µ±µ±sharding-jdbcµÈ¶¼ÊÇ¡£
5С½á
¶ÔÍâ¿´À´£¬¸ºÔØÆ½ºâÊÇÒ»¸öϵͳ»òÈí¼þµÄÕûÌå¡£¶ÔÄÚ¿´À´£¬²ã²ãÉÏÏÂÓÎŲÓá£Ö»Òª´æÔÚŲÓ㬾ÍÐèҪ˼Á¿¸ºÔØÆ½ºâÕâ¸öÒòËØ¡£ÒÔÊǸºÔØÆ½ºâ£¨Load Balance£©ÊÇÂþÑÜʽϵͳ¼Ü¹¹Éè¼ÆÖбØÐë˼Á¿µÄÒòËØÖ®Ò»¡£Ë¼Á¿Ö÷ÒªÊÇÔõÑùÈÃÏÂÓÎÎüÊÕµ½µÄÇëÇóÊÇÔȳÆÂþÑܵģº
ÎÄÕÂȪԴÓÚÄàÍß½³£ºhttps://mp.weixin.qq.com/s/AdCtiXBLTJrWfcNV9LO2wA
ÉÏһƪ £ºLinux&UnixÌØÈ¨Õ˺Żá¼ûÇå¾²¿ÉÊÓ»¯½â¾ö·½°¸
ÏÂһƪ £ºÌýÔÆ£ÖúÁ¦Ð¡·¨Ê½ÎȹÌÔËÐÐ