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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
´óÐÍÍøÕ¾¼Ü¹¹ÏµÁУº¸ºÔؾùºâÏê½â£¨Ï£©
 
×÷ÕߣºBoyan Mihaylov À´Ô´£ºInfoQ ·¢²¼ÓÚ£º2016-1-29
  2679  次浏览      27
 

Ò»¡¢Èí¼þ¸ºÔؾùºâ¸ÅÊö

Ó²¼þ¸ºÔؾùºâÐÔÄÜÓÅÔ½£¬¹¦ÄÜÈ«Ãæ£¬µ«ÊǼ۸ñ°º¹ó£¬Ò»°ãÊʺϳõÆÚ»òÕßÍÁºÀ¼¶¹«Ë¾³¤ÆÚʹÓá£Òò´ËÈí¼þ¸ºÔؾùºâÔÚ»¥ÁªÍøÁìÓò´óÁ¿Ê¹Óᣳ£ÓõÄÈí¼þ¸ºÔؾùºâÈí¼þÓÐNginx£¬Lvs£¬HaProxyµÈ¡£±¾ÎIJο¼´óÁ¿Îĵµ£¬²¿·ÖΪֱ½Ó¿½±´£¬²Î¿¼³ö´¦¼û¸ºÔؾùºâÏê½â£¨4£©¡£

¶þ¡¢Ngnix¸ºÔؾùºâ

NgnixÊÇÒ»¿îÇáÁ¿¼¶µÄWeb·þÎñÆ÷/·´Ïò´úÀí·þÎñÆ÷£¬¹¤×÷ÔÚÆß²ãHttpЭÒéµÄ¸ºÔؾùºâϵͳ¡£¾ßÓиßÐÔÄÜ¡¢¸ß²¢·¢¡¢µÍÄÚ´æÊ¹ÓõÈÌØµã¡£ÊÇÒ»¸öÇáÁ¿¼¶µÄHttpºÍ·´Ïò´úÀí·þÎñÆ÷¡£NginxʹÓÃepoll and kqueue×÷Ϊ¿ª·¢Ä£ÐÍ¡£Äܹ»Ö§³Ö¸ß´ï 50,000 ¸ö²¢·¢Á¬½ÓÊýµÄÏìÓ¦¡£

²Ù×÷ϵͳ£ºLiunx£¬Windows£¨Linux¡¢FreeBSD¡¢Solaris¡¢Mac OS X¡¢AIXÒÔ¼°Microsoft Windows£©

¿ª·¢ÓïÑÔ£ºC

²¢·¢ÐÔÄÜ£º¹Ù·½Ö§³ÖÿÃë5Íò²¢·¢£¬Êµ¼Ê¹úÄÚÒ»°ãµ½Ã¿Ãë2Íò²¢·¢£¬ÓÐÓÅ»¯µ½Ã¿Ãë10Íò²¢·¢µÄ¡£¾ßÌåÐÔÄÜ¿´Ó¦Óó¡¾°¡£

2.1.ÌØµã

1.Ä£¿é»¯Éè¼Æ£ºÁ¼ºÃµÄÀ©Õ¹ÐÔ£¬¿ÉÒÔͨ¹ýÄ£¿é·½Ê½½øÐй¦ÄÜÀ©Õ¹¡£

2.¸ß¿É¿¿ÐÔ£ºÖ÷¿Ø½ø³ÌºÍworkerÊÇͬ²½ÊµÏֵģ¬Ò»¸öworker³öÏÖÎÊÌ⣬»áÁ¢¿ÌÆô¶¯ÁíÒ»¸öworker¡£

3.ÄÚ´æÏûºÄµÍ£ºÒ»Íò¸ö³¤Á¬½Ó£¨keep-alive£©,½öÏûºÄ2.5MBÄÚ´æ¡£

4.Ö§³ÖÈȲ¿Ê𣺲»ÓÃÍ£Ö¹·þÎñÆ÷£¬ÊµÏÖ¸üÐÂÅäÖÃÎļþ£¬¸ü»»ÈÕÖ¾Îļþ¡¢¸üзþÎñÆ÷³ÌÐò°æ±¾¡£

5.²¢·¢ÄÜÁ¦Ç¿£º¹Ù·½Êý¾ÝÿÃëÖ§³Ö5Íò²¢·¢£»

6.¹¦Äܷḻ£ºÓÅÐãµÄ·´Ïò´úÀí¹¦ÄܺÍÁé»îµÄ¸ºÔؾùºâ²ßÂÔ

2.2.¹¦ÄÜ

2.2.1»ù±¾¹¦ÄÜ

Ö§³Ö¾²Ì¬×ÊÔ´µÄweb·þÎñÆ÷¡£

http,smtp,pop3ЭÒéµÄ·´Ïò´úÀí·þÎñÆ÷¡¢»º´æ¡¢¸ºÔؾùºâ£»

Ö§³ÖFASTCGI£¨fpm£©

Ö§³ÖÄ£¿é»¯£¬¹ýÂËÆ÷£¨ÈÃÎı¾¿ÉÒÔʵÏÖѹËõ£¬½ÚÔ¼´ø¿í£©,ssl¼°Í¼Ïñ´óСµ÷Õû¡£

ÄÚÖõĽ¡¿µ¼ì²é¹¦ÄÜ

»ùÓÚÃû³ÆºÍipµÄÐéÄâÖ÷»ú

¶¨ÖÆ·ÃÎÊÈÕÖ¾

Ö§³Öƽ»¬Éý¼¶

Ö§³ÖKEEPALIVE

Ö§³Öurl rewrite

Ö§³Ö·¾¶±ðÃû

Ö§³Ö»ùÓÚIPºÍÓû§ÃûµÄ·ÃÎÊ¿ØÖÆ¡£

Ö§³Ö´«ÊäËÙÂÊÏÞÖÆ£¬Ö§³Ö²¢·¢ÊýÏÞÖÆ¡£

2.2.2À©Õ¹¹¦ÄÜ

2.2.3ÐÔÄÜ

NginxµÄ¸ß²¢·¢£¬¹Ù·½²âÊÔÖ§³Ö5Íò²¢·¢Á¬½Ó¡£Êµ¼ÊÉú²ú»·¾³Äܵ½2-3Íò²¢·¢Á¬½ÓÊý¡£10000¸ö·Ç»îÔ¾µÄHTTP keep-alive Á¬½Ó½öÕ¼ÓÃÔ¼2.5MBÄÚ´æ¡£ÈýÍò²¢·¢Á¬½ÓÏ£¬10¸öNginx½ø³Ì£¬ÏûºÄÄÚ´æ150M¡£ÌÔ±¦tengineÍŶӲâÊÔ½á¹ûÊÇ¡°24GÄÚ´æ»úÆ÷ÉÏ£¬´¦Àí²¢·¢ÇëÇó¿É´ï200Íò¡±¡£

2.3¼Ü¹¹

2.3.1NginxµÄ»ù±¾¹¤×÷ģʽ

Ò»¸ömaster½ø³Ì£¬Éú³ÉÒ»¸ö»òÕß¶à¸öworker½ø³Ì¡£µ«ÊÇÕâÀïmasterÊÇʹÓÃrootÉí·ÝÆô¶¯µÄ£¬ÒòΪnginxÒª¹¤×÷ÔÚ80¶Ë¿Ú¡£¶øÖ»ÓйÜÀíÔ±²ÅÓÐȨÏÞÆô¶¯Ð¡ÓÚµÍÓÚ1023µÄ¶Ë¿Ú¡£masterÖ÷ÒªÊǸºÔðµÄ×÷ÓÃÖ»ÊÇÆô¶¯worker£¬¼ÓÔØÅäÖÃÎļþ£¬¸ºÔðϵͳµÄƽ»¬Éý¼¶¡£ÆäËüµÄ¹¤×÷Êǽ»¸øworker¡£ÄÇôµ±worker±»Æô¶¯Ö®ºó£¬Ò²Ö»ÊǸºÔðһЩweb×î¼òµ¥µÄ¹¤×÷£¬¶øÆäËûµÄ¹¤×÷¶¼ÊÇÓÐworkerÖе÷ÓõÄÄ£¿éÀ´ÊµÏֵġ£

Ä£¿éÖ®¼äÊÇÒÔÁ÷Ë®Ïߵķ½Ê½ÊµÏÖ¹¦Äܵġ£Á÷Ë®Ïߣ¬Ö¸µÄÊÇÒ»¸öÓû§ÇëÇó£¬Óɶà¸öÄ£¿é×éºÏ¸÷×ԵŦÄÜÒÀ´ÎʵÏÖÍê³ÉµÄ¡£±ÈÈ磺µÚÒ»¸öÄ£¿éÖ»¸ºÔð·ÖÎöÇëÇóÊײ¿£¬µÚ¶þ¸öÄ£¿éÖ»¸ºÔð²éÕÒÊý¾Ý£¬µÚÈý¸öÄ£¿éÖ»¸ºÔðѹËõÊý¾Ý£¬ÒÀ´ÎÍê³É¸÷×Ô¹¤×÷¡£À´ÊµÏÖÕû¸ö¹¤×÷µÄÍê³É¡£

ËûÃÇÊÇÈçºÎʵÏÖÈȲ¿ÊðµÄÄØ£¿ÆäʵÊÇÕâÑùµÄ£¬ÎÒÃÇÇ°ÃæËµmaster²»¸ºÔð¾ßÌåµÄ¹¤×÷£¬¶øÊǵ÷ÓÃworker¹¤×÷£¬ËûÖ»ÊǸºÔð¶ÁÈ¡ÅäÖÃÎļþ£¬Òò´Ëµ±Ò»¸öÄ£¿éÐ޸ĻòÕßÅäÖÃÎļþ·¢Éú±ä»¯£¬ÊÇÓÉmaster½øÐжÁÈ¡£¬Òò´Ë´Ëʱ²»»áÓ°Ïìµ½worker¹¤×÷¡£ÔÚmaster½øÐжÁÈ¡ÅäÖÃÎļþÖ®ºó£¬²»»áÁ¢¼´µÄ°ÑÐ޸ĵÄÅäÖÃÎļþ¸æÖªworker¡£¶øÊÇÈñ»Ð޸ĵÄworker¼ÌÐøÊ¹ÓÃÀϵÄÅäÖÃÎļþ¹¤×÷£¬µ±worker¹¤×÷Íê±ÏÖ®ºó£¬Ö±½Óµ±µôÕâ¸ö×Ó½ø³Ì£¬¸ü»»ÐµÄ×Ó½ø³Ì£¬Ê¹ÓÃÐµĹæÔò¡£

2.3.2NginxÖ§³ÖµÄsendfile»úÖÆ

Sendfile»úÖÆ£¬Óû§½«ÇëÇ󷢸øÄںˣ¬Äں˸ù¾ÝÓû§µÄÇëÇóµ÷ÓÃÏàÓ¦Óû§½ø³Ì£¬½ø³ÌÔÚ´¦ÀíʱÐèÒª×ÊÔ´¡£´ËʱÔÙ°ÑÇëÇ󷢸øÄںˣ¨½ø³ÌûÓÐÖ±½ÓIOµÄÄÜÁ¦£©£¬ÓÉÄں˼ÓÔØÊý¾Ý¡£Äں˲éÕÒµ½Êý¾ÝÖ®ºó£¬»á°ÑÊý¾Ý¸´ÖƸøÓû§½ø³Ì£¬ÓÉÓû§½ø³Ì¶ÔÊý¾Ý½øÐзâ×°£¬Ö®ºó½»¸øÄںˣ¬ÄÚºËÔÚ½øÐÐtcp/ipÊײ¿µÄ·â×°£¬×îºóÔÙ·¢¸ø¿Í»§¶Ë¡£Õâ¸ö¹¦ÄÜÓû§½ø³ÌÖ»ÊÇ·¢ÉúÁËÒ»¸ö·â×°±¨ÎĵĹý³Ì£¬È´ÒªÈÆÒ»´óȦ¡£Òò´ËnginxÒýÈëÁËsendfile»úÖÆ£¬Ê¹µÃÄÚºËÔÚ½ÓÊܵ½Êý¾ÝÖ®ºó£¬²»ÔÙÒÀ¿¿Óû§½ø³Ì¸øÓè·â×°£¬¶øÊÇ×Ô¼º²éÕÒ×Ô¼º·â×°£¬¼õÉÙÁËÒ»¸öºÜ³¤Ò»¶Îʱ¼äµÄÀË·Ñ£¬ÕâÊÇÒ»¸öÌáÉýÐÔÄܵĺËÐĵ㡣

ÒÔÉÏÄÚÈÝÕª×ÔÍøÓÑ·¢²¼µÄÎÄÕ£¬¼òµ¥Ò»¾ä»°ÊÇ×ÊÔ´µÄ´¦Àí£¬Ö±½Óͨ¹ýÄÚºË²ã½øÐÐÊý¾Ý´«µÝ£¬±ÜÃâÁËÊý¾Ý´«µÝµ½Ó¦Óò㣬ӦÓòãÔÙ´«µÝµ½Äں˲ãµÄ¿ªÏú¡£

Ŀǰ¸ß²¢·¢µÄ´¦Àí£¬Ò»°ã¶¼²ÉÓÃsendfileģʽ¡£Í¨¹ýÖ±½Ó²Ù×÷Äں˲ãÊý¾Ý£¬¼õÉÙÓ¦ÓÃÓëÄں˲ãÊý¾Ý´«µÝ¡£

2.3.3NginxͨÐÅÄ£ÐÍ£¨I/O¸´ÓûúÖÆ£©

¿ª·¢Ä£ÐÍ£ºepollºÍkqueue¡£

Ö§³ÖµÄʼþ»úÖÆ£ºkqueue¡¢epoll¡¢rt signals¡¢/dev/poll ¡¢event ports¡¢selectÒÔ¼°poll¡£

Ö§³ÖµÄkqueueÌØÐÔ°üÀ¨EV_CLEAR¡¢EV_DISABLE¡¢NOTE_LOWAT¡¢EV_EOF£¬¿ÉÓÃÊý¾ÝµÄÊýÁ¿£¬´íÎó´úÂë.

Ö§³Ösendfile¡¢sendfile64ºÍsendfilev;ÎļþAIO£»DIRECTIO;Ö§³ÖAccept-filtersºÍTCP_DEFER_ACCEP.

ÒÔÉϸÅÄî½Ï¶à£¬´ó¼Ò×ÔÐаٶȻò¹È¸è£¬ÖªÊ¶ÁìÓòÊÇÍøÂçͨÐÅ£¨BIO,NIO,AIO£©ºÍ¶àÏ̷߳½ÃæµÄ֪ʶ¡£

2.4¾ùºâ²ßÂÔ

nginxµÄ¸ºÔؾùºâ²ßÂÔ¿ÉÒÔ»®·ÖΪÁ½´óÀࣺÄÚÖòßÂÔºÍÀ©Õ¹²ßÂÔ¡£ÄÚÖòßÂÔ°üº¬¼ÓȨÂÖѯºÍip hash£¬ÔÚĬÈÏÇé¿öÏÂÕâÁ½ÖÖ²ßÂÔ»á±àÒë½ønginxÄںˣ¬Ö»ÐèÔÚnginxÅäÖÃÖÐÖ¸Ã÷²ÎÊý¼´¿É¡£À©Õ¹²ßÂÔÓкܶ࣬Èçfair¡¢Í¨ÓÃhash¡¢consistent hashµÈ£¬Ä¬Èϲ»±àÒë½ønginxÄںˡ£ÓÉÓÚÔÚnginx°æ±¾Éý¼¶ÖиºÔؾùºâµÄ´úÂëûÓб¾ÖÊÐԵı仯£¬Òò´ËÏÂÃæ½«ÒÔnginx1.0.15Îȶ¨°æÎªÀý£¬´ÓÔ´Âë½Ç¶È·ÖÎö¸÷¸ö²ßÂÔ¡£

2.4.1. ¼ÓȨÂÖѯ£¨weighted round robin£©

ÂÖѯµÄÔ­ÀíºÜ¼òµ¥£¬Ê×ÏÈÎÒÃǽéÉÜÒ»ÏÂÂÖѯµÄ»ù±¾Á÷³Ì¡£ÈçÏÂÊÇ´¦ÀíÒ»´ÎÇëÇóµÄÁ÷³Ìͼ£º

ͼÖÐÓÐÁ½µãÐèҪעÒ⣬µÚÒ»£¬Èç¹û¿ÉÒ԰ѼÓȨÂÖѯËã·¨·ÖΪÏÈÉîËÑË÷ºÍÏȹãËÑË÷£¬ÄÇônginx²ÉÓõÄÊÇÏÈÉîËÑË÷Ëã·¨£¬¼´½«Ê×ÏȽ«ÇëÇó¶¼·Ö¸ø¸ßÈ¨ÖØµÄ»úÆ÷£¬Ö±µ½¸Ã»úÆ÷µÄȨֵ½µµ½ÁË±ÈÆäËû»úÆ÷µÍ£¬²Å¿ªÊ¼½«ÇëÇó·Ö¸øÏÂÒ»¸ö¸ßÈ¨ÖØµÄ»úÆ÷£»µÚ¶þ£¬µ±ËùÓкó¶Ë»úÆ÷¶¼downµôʱ£¬nginx»áÁ¢¼´½«ËùÓлúÆ÷µÄ±ê־λÇå³É³õʼ״̬£¬ÒÔ±ÜÃâÔì³ÉËùÓеĻúÆ÷¶¼´¦ÔÚtimeoutµÄ״̬£¬´Ó¶øµ¼ÖÂÕû¸öǰ¶Ë±»º»×¡¡£

2.4.2. ip hash

ip hashÊÇnginxÄÚÖõÄÁíÒ»¸ö¸ºÔؾùºâµÄ²ßÂÔ£¬Á÷³ÌºÍÂÖѯºÜÀàËÆ£¬Ö»ÊÇÆäÖеÄËã·¨ºÍ¾ßÌåµÄ²ßÂÔÓÐЩ±ä»¯£¬ÈçÏÂͼËùʾ£º

2.4.3. fair

fair²ßÂÔÊÇÀ©Õ¹²ßÂÔ£¬Ä¬Èϲ»±»±àÒë½ønginxÄںˡ£ÆäÔ­ÀíÊǸù¾Ýºó¶Ë·þÎñÆ÷µÄÏìӦʱ¼äÅжϸºÔØÇé¿ö£¬´ÓÖÐÑ¡³ö¸ºÔØ×îÇáµÄ»úÆ÷½øÐзÖÁ÷¡£ÕâÖÖ²ßÂÔ¾ßÓкÜÇ¿µÄ×ÔÊÊÓ¦ÐÔ£¬µ«ÊÇʵ¼ÊµÄÍøÂç»·¾³ÍùÍù²»ÊÇÄÇô¼òµ¥£¬Òò´ËÒªÉ÷Óá£

2.4.4 ͨÓÃhash¡¢Ò»ÖÂÐÔhash

ÕâÁ½ÖÖÒ²ÊÇÀ©Õ¹²ßÂÔ£¬ÔÚ¾ßÌåµÄʵÏÖÉÏÓÐЩ²î±ð£¬Í¨ÓÃhash±È½Ï¼òµ¥£¬¿ÉÒÔÒÔnginxÄÚÖõıäÁ¿Îªkey½øÐÐhash£¬Ò»ÖÂÐÔhash²ÉÓÃÁËnginxÄÚÖõÄÒ»ÖÂÐÔhash»·£¬¿ÉÒÔÖ§³Ömemcache¡£

2.5³¡¾°

NgnixÒ»°ã×÷ΪÈë¿Ú¸ºÔؾùºâ»òÄÚ²¿¸ºÔؾùºâ£¬½áºÏ·´Ïò´úÀí·þÎñÆ÷ʹÓá£ÒÔϼܹ¹Ê¾Àý£¬½ö¹©²Î¿¼£¬¾ßÌåʹÓøù¾Ý³¡¾°¶ø¶¨¡£

2.5.1Èë¿Ú¸ºÔؾùºâ¼Ü¹¹

Ngnix·þÎñÆ÷ÔÚÓû§·ÃÎʵÄ×îǰ¶Ë¡£¸ù¾ÝÓû§ÇëÇóÔÙת·¢µ½¾ßÌåµÄÓ¦Ó÷þÎñÆ÷»ò¶þ¼¶¸ºÔؾùºâ·þÎñÆ÷£¨LVS£©

2.5.2ÄÚ²¿¸ºÔؾùºâ¼Ü¹¹

LVS×÷ΪÈë¿Ú¸ºÔؾùºâ£¬½«ÇëÇóת·¢µ½¶þ¼¶Ngnix·þÎñÆ÷£¬NgnixÔÙ¸ù¾ÝÇëÇóת·¢µ½¾ßÌåµÄÓ¦Ó÷þÎñÆ÷¡£

2.5.3Ngnix¸ß¿ÉÓÃ

·Ö²¼Ê½ÏµÍ³ÖУ¬Ó¦ÓÃÖ»²¿Êðһ̨·þÎñÆ÷»á´æÔÚµ¥µã¹ÊÕÏ£¬¸ºÔؾùºâͬÑùÓÐÀàËÆµÄÎÊÌâ¡£Ò»°ã¿É²ÉÓÃÖ÷±¸»ò¸ºÔؾùºâÉ豸¼¯ÈºµÄ·½Ê½½ÚÔ¼µ¥µã¹ÊÕÏ»ò¸ß²¢·¢ÇëÇó·ÖÁ÷¡£

Ngnix¸ß¿ÉÓã¬ÖÁÉÙ°üº¬Á½¸öNgnix·þÎñÆ÷£¬Ò»Ì¨Ö÷·þÎñÆ÷£¬Ò»Ì¨±¸·þÎñÆ÷£¬Ö®¼äʹÓÃKeepalived×ö½¡¿µ¼à¿ØºÍ¹ÊÕϼì²â¡£¿ª·ÅVIP¶Ë¿Ú£¬Í¨¹ý·À»ðǽ½øÐÐÍⲿӳÉä¡£

DNS½âÎö¹«ÍøµÄIPʵ¼ÊΪVIP¡£

Èý¡¢LVS¸ºÔؾùºâ

LVSÊÇÒ»¸ö¿ªÔ´µÄÈí¼þ£¬ÓɱÏÒµÓÚ¹ú·À¿Æ¼¼´óѧµÄÕÂÎÄáÔ²©Ê¿ÓÚ1998Äê5Ô´´Á¢£¬ÓÃÀ´ÊµÏÖLinuxƽ̨ϵļòµ¥¸ºÔؾùºâ¡£LVSÊÇLinux Virtual ServerµÄËõд£¬Òâ˼ÊÇLinuxÐéÄâ·þÎñÆ÷¡£

»ùÓÚIP²ãµÄ¸ºÔؾùºâµ÷¶È¼¼Êõ£¬ËüÔÚ²Ù×÷ϵͳºËÐIJãÉÏ£¬½«À´×ÔIP²ãµÄTCP/UDPÇëÇó¾ùºâµØ×ªÒƵ½²»Í¬µÄ ·þÎñÆ÷£¬´Ó¶ø½«Ò»×é·þÎñÆ÷¹¹³ÉÒ»¸ö¸ßÐÔÄÜ¡¢¸ß¿ÉÓõÄÐéÄâ·þÎñÆ÷¡£

²Ù×÷ϵͳ£ºLiunx

¿ª·¢ÓïÑÔ£ºC

²¢·¢ÐÔÄÜ£ºÄ¬ÈÏ4096£¬¿ÉÒÔÐ޸ĵ«ÐèÒªÖØÐ±àÒë¡£

3.1.¹¦ÄÜ

LVSµÄÖ÷Òª¹¦ÄÜÊÇʵÏÖIP²ã£¨ÍøÂç²ã£©¸ºÔؾùºâ£¬ÓÐNAT,TUN,DRÈýÖÖÇëÇóת·¢Ä£Ê½¡£

3.1.1LVS/NAT·½Ê½µÄ¸ºÔؾùºâ¼¯Èº

NATÊÇÖ¸Network Address Translation£¬ËüµÄת·¢Á÷³ÌÊÇ£ºDirector»úÆ÷ÊÕµ½Íâ½çÇëÇ󣬸ÄдÊý¾Ý°üµÄÄ¿±êµØÖ·£¬°´ÏàÓ¦µÄµ÷¶ÈËã·¨½«Æä·¢Ë͵½ÏàÓ¦Real ServerÉÏ£¬Real Server´¦ÀíÍê¸ÃÇëÇóºó£¬½«½á¹ûÊý¾Ý°ü·µ»Øµ½ÆäĬÈÏÍø¹Ø£¬¼´Director»úÆ÷ÉÏ£¬Director»úÆ÷ÔÙ¸ÄдÊý¾Ý°üµÄÔ´µØÖ·£¬×îºó½«Æä·µ»Ø¸øÍâ½ç¡£ÕâÑù¾ÍÍê³ÉÒ»´Î¸ºÔص÷¶È¡£

¹¹¼ÜÒ»¸ö×î¼òµ¥µÄLVS/NAT·½Ê½µÄ¸ºÔؾùºâ¼¯ÈºReal Server¿ÉÒÔÊÇÈκεIJÙ×÷ϵͳ£¬¶øÇÒÎÞÐè×öÈκÎÌØÊâµÄÉ趨£¬Î©Ò»Òª×öµÄ¾ÍÊǽ«ÆäĬÈÏÍø¹ØÖ¸ÏòDirector»úÆ÷¡£Real Server¿ÉÒÔʹÓþÖÓòÍøµÄÄÚ²¿IP(192.168.0.0/24)¡£DirectorÒªÓÐÁ½¿éÍø¿¨£¬Ò»¿éÍø¿¨°ó¶¨Ò»¸öÍⲿIPµØÖ· (10.0.0.1)£¬ÁíÒ»¿éÍø¿¨°ó¶¨¾ÖÓòÍøµÄÄÚ²¿IP(192.168.0.254)£¬×÷ΪReal ServerµÄĬÈÏÍø¹Ø¡£

LVS/NAT·½Ê½ÊµÏÖÆðÀ´×îΪ¼òµ¥£¬¶øÇÒReal ServerʹÓõÄÊÇÄÚ²¿IP£¬¿ÉÒÔ½ÚÊ¡Real IPµÄ¿ªÏú¡£µ«ÒòΪִÐÐNATÐèÒªÖØÐ´Á÷¾­DirectorµÄÊý¾Ý°ü£¬ÔÚËÙ¶ÈÉÏÓÐÒ»¶¨ÑÓ³Ù£»

µ±Óû§µÄÇëÇó·Ç³£¶Ì£¬¶ø·þÎñÆ÷µÄ»ØÓ¦·Ç³£´óµÄÇé¿öÏ£¬»á¶ÔDirectorÐγɺܴóѹÁ¦£¬³ÉΪÐÂµÄÆ¿¾±£¬´Ó¶øÊ¹Õû¸öϵͳµÄÐÔÄÜÊܵ½ÏÞÖÆ¡£

3.1.2LVS/TUN·½Ê½µÄ¸ºÔؾùºâ¼¯Èº

TUNÊÇÖ¸IP Tunneling£¬ËüµÄת·¢Á÷³ÌÊÇ£ºDirector»úÆ÷ÊÕµ½Íâ½çÇëÇ󣬰´ÏàÓ¦µÄµ÷¶ÈËã·¨,ͨ¹ýIPËíµÀ·¢Ë͵½ÏàÓ¦Real Server£¬Real Server´¦ÀíÍê¸ÃÇëÇóºó£¬½«½á¹ûÊý¾Ý°üÖ±½Ó·µ»Ø¸ø¿Í»§¡£ÖÁ´ËÍê³ÉÒ»´Î¸ºÔص÷¶È¡£

×î¼òµ¥µÄLVS/TUN·½Ê½µÄ¸ºÔؾùºâ¼¯Èº¼Ü¹¹Ê¹ÓÃIP Tunneling¼¼Êõ£¬ÔÚDirector»úÆ÷ºÍReal Server»úÆ÷Ö®¼ä¼ÜÉèÒ»¸öIP Tunnel£¬Í¨¹ýIP Tunnel½«¸ºÔØ·ÖÅäµ½Real Server»úÆ÷ÉÏ¡£DirectorºÍReal ServerÖ®¼äµÄ¹ØÏµ±È½ÏËÉÉ¢£¬¿ÉÒÔÊÇÔÚͬһ¸öÍøÂçÖУ¬Ò²¿ÉÒÔÊÇÔÚ²»Í¬µÄÍøÂçÖУ¬Ö»ÒªÁ½ÕßÄܹ»Í¨¹ýIP TunnelÏàÁ¬¾ÍÐС£ÊÕµ½¸ºÔØ·ÖÅäµÄReal Server»úÆ÷´¦ÀíÍêºó»áÖ±½Ó½«·´À¡Êý¾ÝËͻظø¿Í»§£¬¶ø²»±ØÍ¨¹ýDirector»úÆ÷¡£Êµ¼ÊÓ¦ÓÃÖУ¬·þÎñÆ÷±ØÐëÓµÓÐÕýʽµÄIPµØÖ·ÓÃÓÚÓë¿Í»§»úÖ±½ÓͨÐÅ£¬²¢ÇÒËùÓзþÎñÆ÷±ØÐëÖ§³ÖIPËíµÀЭÒé¡£

¸Ã·½Ê½ÖÐDirector½«¿Í»§ÇëÇó·ÖÅäµ½²»Í¬µÄReal Server£¬Real Server´¦ÀíÇëÇóºóÖ±½Ó»ØÓ¦¸øÓû§£¬ÕâÑùDirector¾ÍÖ»´¦Àí¿Í»§»úÓë·þÎñÆ÷µÄÒ»°ëÁ¬½Ó£¬¼«´óµØÌá¸ßÁËDirectorµÄµ÷¶È´¦ÀíÄÜÁ¦£¬Ê¹¼¯ÈºÏµÍ³ÄÜÈÝÄɸü¶àµÄ½ÚµãÊý¡£ÁíÍâTUN·½Ê½ÖеÄReal Server¿ÉÒÔÔÚÈκÎLAN»òWANÉÏÔËÐУ¬ÕâÑù¿ÉÒÔ¹¹Öþ¿çµØÓòµÄ¼¯Èº£¬ÆäÓ¦¶ÔÔÖÄѵÄÄÜÁ¦Ò²¸üÇ¿£¬µ«ÊÇ·þÎñÆ÷ÐèҪΪIP·â×°¸¶³öÒ»¶¨µÄ×ÊÔ´¿ªÏú£¬¶øÇÒºó¶ËµÄReal Server±ØÐëÊÇÖ§³ÖIP TunnelingµÄ²Ù×÷ϵͳ¡£

3.3.3LVS/TUN·½Ê½µÄ¸ºÔؾùºâ¼¯Èº

DRÊÇÖ¸Direct Routing£¬ËüµÄת·¢Á÷³ÌÊÇ£ºDirector»úÆ÷ÊÕµ½Íâ½çÇëÇ󣬰´ÏàÓ¦µÄµ÷¶ÈËã·¨½«ÆäÖ±½Ó·¢Ë͵½ÏàÓ¦Real Server£¬Real Server´¦ÀíÍê¸ÃÇëÇóºó£¬½«½á¹ûÊý¾Ý°üÖ±½Ó·µ»Ø¸ø¿Í»§£¬Íê³ÉÒ»´Î¸ºÔص÷¶È¡£

¹¹¼ÜÒ»¸ö×î¼òµ¥µÄLVS/DR·½Ê½µÄ¸ºÔؾùºâ¼¯ÈºReal ServerºÍDirector¶¼ÔÚͬһ¸öÎïÀíÍø¶ÎÖУ¬DirectorµÄÍø¿¨IPÊÇ192.168.0.253£¬ÔÙ°ó¶¨ÁíÒ»¸öIP£º 192.168.0.254×÷Ϊ¶ÔÍâ½çµÄvirtual IP£¬Íâ½ç¿Í»§Í¨¹ý¸ÃIPÀ´·ÃÎÊÕû¸ö¼¯ÈºÏµÍ³¡£Real ServerÔÚloÉϰó¶¨IP£º192.168.0.254£¬Í¬Ê±¼ÓÈëÏàÓ¦µÄ·ÓÉ¡£

LVS/DR·½Ê½ÓëÇ°ÃæµÄLVS/TUN·½Ê½ÓÐЩÀàËÆ£¬Ç°Ì¨µÄDirector»úÆ÷Ò²ÊÇÖ»ÐèÒª½ÓÊպ͵÷¶ÈÍâ½çµÄÇëÇ󣬶ø²»ÐèÒª¸ºÔð·µ»ØÕâЩÇëÇóµÄ·´À¡½á¹û£¬ËùÒÔÄܹ»¸ºÔظü¶àµÄReal Server£¬Ìá¸ßDirectorµÄµ÷¶È´¦ÀíÄÜÁ¦£¬Ê¹¼¯ÈºÏµÍ³ÈÝÄɸü¶àµÄReal Server¡£µ«LVS/DRÐèÒª¸ÄдÇëÇó±¨ÎĵÄMACµØÖ·£¬ËùÒÔËùÓзþÎñÆ÷±ØÐëÔÚͬһÎïÀíÍø¶ÎÄÚ¡£

3.3¼Ü¹¹

LVS¼ÜÉèµÄ·þÎñÆ÷¼¯ÈºÏµÍ³ÓÐÈý¸ö²¿·Ö×é³É£º×îǰ¶ËµÄ¸ºÔؾùºâ²ã£¨Loader Balancer£©£¬ÖмäµÄ·þÎñÆ÷Ⱥ×é²ã£¬ÓÃServer Array±íʾ£¬×îµ×²ãµÄÊý¾Ý¹²Ïí´æ´¢²ã£¬ÓÃShared Storage±íʾ¡£ÔÚÓû§¿´À´ËùÓеÄÓ¦Óö¼ÊÇ͸Ã÷µÄ£¬Óû§Ö»ÊÇÔÚʹÓÃÒ»¸öÐéÄâ·þÎñÆ÷ÌṩµÄ¸ßÐÔÄÜ·þÎñ¡£

LVSµÄÌåϵ¼Ü¹¹Èçͼ£º

LVSµÄ¸÷¸ö²ã´ÎµÄÏêϸ½éÉÜ£º

Load Balancer²ã£ºÎ»ÓÚÕû¸ö¼¯ÈºÏµÍ³µÄ×îǰ¶Ë£¬ÓÐһ̨»òÕß¶ą̀¸ºÔص÷¶ÈÆ÷£¨Director Server£©×é³É£¬LVSÄ£¿é¾Í°²×°ÔÚDirector ServerÉÏ£¬¶øDirectorµÄÖ÷Òª×÷ÓÃÀàËÆÓÚÒ»¸ö·ÓÉÆ÷£¬Ëüº¬ÓÐÍê³ÉLVS¹¦ÄÜËùÉ趨µÄ·ÓÉ±í£¬Í¨¹ýÕâЩ·Óɱí°ÑÓû§µÄÇëÇó·Ö·¢¸øServer Array²ãµÄÓ¦Ó÷þÎñÆ÷£¨Real Server£©ÉÏ¡£Í¬Ê±£¬ÔÚDirector ServerÉÏ»¹Òª°²×°¶ÔReal Server·þÎñµÄ¼à¿ØÄ£¿éLdirectord£¬´ËÄ£¿éÓÃÓÚ¼à²â¸÷¸öReal Server·þÎñµÄ½¡¿µ×´¿ö¡£ÔÚReal Server²»¿ÉÓÃʱ°ÑËü´ÓLVS·ÓɱíÖÐÌÞ³ý£¬»Ö¸´Ê±ÖØÐ¼ÓÈë¡£

Server Array²ã£ºÓÉÒ»×éʵ¼ÊÔËÐÐÓ¦Ó÷þÎñµÄ»úÆ÷×é³É£¬Real Server¿ÉÒÔÊÇWEB·þÎñÆ÷¡¢MAIL·þÎñÆ÷¡¢FTP·þÎñÆ÷¡¢DNS·þÎñÆ÷¡¢ÊÓÆµ·þÎñÆ÷ÖеÄÒ»¸ö»òÕß¶à¸ö£¬Ã¿¸öReal ServerÖ®¼äͨ¹ý¸ßËÙµÄLAN»ò·Ö²¼ÔÚ¸÷µØµÄWANÏàÁ¬½Ó¡£ÔÚʵ¼ÊµÄÓ¦ÓÃÖУ¬Director ServerÒ²¿ÉÒÔͬʱ¼æÈÎReal ServerµÄ½ÇÉ«¡£

Shared Storage²ã£ºÊÇΪËùÓÐReal ServerÌṩ¹²Ïí´æ´¢¿Õ¼äºÍÄÚÈÝÒ»ÖÂÐÔµÄ´æ´¢ÇøÓò£¬ÔÚÎïÀíÉÏ£¬Ò»°ãÓдÅÅÌÕóÁÐÉ豸×é³É£¬ÎªÁËÌṩÄÚÈݵÄÒ»ÖÂÐÔ£¬Ò»°ã¿ÉÒÔͨ¹ýNFSÍøÂçÎļþϵͳ¹²ÏíÊý ¾Ý£¬µ«ÊÇNFSÔÚ·±Ã¦µÄÒµÎñϵͳÖУ¬ÐÔÄܲ¢²»ÊǺܺ㬴Ëʱ¿ÉÒÔ²ÉÓü¯ÈºÎļþϵͳ£¬ÀýÈçRed hatµÄGFSÎļþϵͳ£¬oracleÌṩµÄOCFS2ÎļþϵͳµÈ¡£

´ÓÕû¸öLVS½á¹¹¿ÉÒÔ¿´³ö£¬Director ServerÊÇÕû¸öLVSµÄºËÐÄ£¬Ä¿Ç°£¬ÓÃÓÚDirector ServerµÄ²Ù×÷ϵͳֻÄÜÊÇLinuxºÍFreeBSD£¬linux2.6Äں˲»ÓÃÈκÎÉèÖþͿÉÒÔÖ§³ÖLVS¹¦ÄÜ£¬¶øFreeBSD×÷Ϊ Director ServerµÄÓ¦Óû¹²»ÊǺܶ࣬ÐÔÄÜÒ²²»ÊǺܺ᣶ÔÓÚReal Server£¬¼¸ºõ¿ÉÒÔÊÇËùÓеÄϵͳƽ̨£¬Linux¡¢windows¡¢Solaris¡¢AIX¡¢BSDϵÁж¼ÄܺܺõÄÖ§³Ö¡£

3.4¾ùºâ²ßÂÔ

LVSĬÈÏÖ§³Ö°ËÖÖ¸ºÔؾùºâ²ßÂÔ£¬¼òÊöÈçÏ£º

3.4.1.ÂÖѯµ÷¶È£¨Round Robin£©

µ÷¶ÈÆ÷ͨ¹ý¡°ÂÖѯ¡±µ÷¶ÈËã·¨½«ÍⲿÇëÇó°´Ë³ÐòÂÖÁ÷·ÖÅäµ½¼¯ÈºÖеÄÕæÊµ·þÎñÆ÷ÉÏ£¬Ëü¾ùµÈµØ¶Ô´ýÿһ̨·þÎñÆ÷£¬¶ø²»¹Ü·þÎñÆ÷ÉÏʵ¼ÊµÄÁ¬½ÓÊýºÍϵͳ¸ºÔØ¡£

3.4.2.¼ÓȨÂÖѯ£¨Weighted Round Robin£©

µ÷¶ÈÆ÷ͨ¹ý¡°¼ÓȨÂÖѯ¡±µ÷¶ÈËã·¨¸ù¾ÝÕæÊµ·þÎñÆ÷µÄ²»Í¬´¦ÀíÄÜÁ¦À´µ÷¶È·ÃÎÊÇëÇó¡£ÕâÑù¿ÉÒÔ±£Ö¤´¦ÀíÄÜÁ¦Ç¿µÄ·þÎñÆ÷ÄÜ´¦Àí¸ü¶àµÄ·ÃÎÊÁ÷Á¿¡£µ÷¶ÈÆ÷¿ÉÒÔ×Ô¶¯ÎÊÑ¯ÕæÊµ·þÎñÆ÷µÄ¸ºÔØÇé¿ö£¬²¢¶¯Ì¬µØµ÷ÕûÆäȨֵ¡£

3.4.3.×îÉÙÁ´½Ó£¨Least Connections£©

µ÷¶ÈÆ÷ͨ¹ý¡°×îÉÙÁ¬½Ó¡±µ÷¶ÈËã·¨¶¯Ì¬µØ½«ÍøÂçÇëÇóµ÷¶Èµ½Òѽ¨Á¢µÄÁ´½ÓÊý×îÉٵķþÎñÆ÷ÉÏ¡£Èç¹û¼¯ÈºÏµÍ³µÄÕæÊµ·þÎñÆ÷¾ßÓÐÏà½üµÄϵͳÐÔÄÜ£¬²ÉÓá°×îСÁ¬½Ó¡±µ÷¶ÈËã·¨¿ÉÒԽϺõؾùºâ¸ºÔØ¡£

3.4.4.¼ÓȨ×îÉÙÁ´½Ó£¨Weighted Least Connections£©

ÔÚ¼¯ÈºÏµÍ³ÖеķþÎñÆ÷ÐÔÄܲîÒì½Ï´óµÄÇé¿öÏ£¬µ÷¶ÈÆ÷²ÉÓá°¼ÓȨ×îÉÙÁ´½Ó¡±µ÷¶ÈËã·¨ÓÅ»¯¸ºÔؾùºâÐÔÄÜ£¬¾ßÓнϸßȨֵµÄ·þÎñÆ÷½«³ÐÊܽϴó±ÈÀýµÄ»î¶¯Á¬½Ó¸ºÔØ¡£µ÷¶ÈÆ÷¿ÉÒÔ×Ô¶¯ÎÊÑ¯ÕæÊµ·þÎñÆ÷µÄ¸ºÔØÇé¿ö£¬²¢¶¯Ì¬µØµ÷ÕûÆäȨֵ¡£

3.4.5.»ùÓÚ¾Ö²¿ÐÔµÄ×îÉÙÁ´½Ó£¨Locality-Based Least Connections£©

¡°»ùÓÚ¾Ö²¿ÐÔµÄ×îÉÙÁ´½Ó¡±µ÷¶ÈËã·¨ÊÇÕë¶ÔÄ¿±êIPµØÖ·µÄ¸ºÔؾùºâ£¬Ä¿Ç°Ö÷ÒªÓÃÓÚCache¼¯ÈºÏµÍ³¡£¸ÃËã·¨¸ù¾ÝÇëÇóµÄÄ¿±êIPµØÖ·ÕÒ³ö¸ÃÄ¿±êIPµØÖ·×î½üʹÓõķþÎñÆ÷£¬Èô¸Ã·þÎñÆ÷ÊÇ¿ÉÓõÄÇÒûÓг¬ÔØ£¬½«ÇëÇó·¢Ë͵½¸Ã·þÎñÆ÷£»Èô·þÎñÆ÷²»´æÔÚ£¬»òÕ߸÷þÎñÆ÷³¬ÔØÇÒÓзþÎñÆ÷´¦ÓÚÒ»°ëµÄ¹¤×÷¸ºÔØ£¬ÔòÓá°×îÉÙÁ´½Ó¡± µÄÔ­ÔòÑ¡³öÒ»¸ö¿ÉÓõķþÎñÆ÷£¬½«ÇëÇó·¢Ë͵½¸Ã·þÎñÆ÷¡£

3.4.6.´ø¸´ÖƵĻùÓÚ¾Ö²¿ÐÔ×îÉÙÁ´½Ó£¨Locality-Based Least Connections with Replication£©

¡°´ø¸´ÖƵĻùÓÚ¾Ö²¿ÐÔ×îÉÙÁ´½Ó¡±µ÷¶ÈËã·¨Ò²ÊÇÕë¶ÔÄ¿±êIPµØÖ·µÄ¸ºÔؾùºâ£¬Ä¿Ç°Ö÷ÒªÓÃÓÚCache¼¯ÈºÏµÍ³¡£ËüÓëLBLCËã·¨µÄ²»Í¬Ö®´¦ÊÇËüҪά»¤´ÓÒ»¸öÄ¿±êIPµØÖ·µ½Ò»×é·þÎñÆ÷µÄÓ³É䣬¶øLBLCË㷨ά»¤´ÓÒ»¸öÄ¿±êIPµØÖ·µ½Ò»Ì¨·þÎñÆ÷µÄÓ³Éä¡£¸ÃËã·¨¸ù¾ÝÇëÇóµÄÄ¿±êIPµØÖ·ÕÒ³ö¸ÃÄ¿±êIPµØÖ·¶ÔÓ¦µÄ·þÎñÆ÷×飬°´¡°×îСÁ¬½Ó¡±Ô­Ôò´Ó·þÎñÆ÷×éÖÐÑ¡³öһ̨·þÎñÆ÷£¬Èô·þÎñÆ÷ûÓг¬ÔØ£¬½«ÇëÇó·¢Ë͵½¸Ã·þÎñÆ÷£»Èô·þÎñÆ÷³¬ÔØ£¬Ôò°´¡°×îСÁ¬½Ó¡±Ô­Ôò´ÓÕâ¸ö¼¯ÈºÖÐÑ¡³öһ̨·þÎñÆ÷£¬½«¸Ã·þÎñÆ÷¼ÓÈëµ½·þÎñÆ÷×éÖУ¬½«ÇëÇó·¢Ë͵½¸Ã·þÎñÆ÷¡£Í¬Ê±£¬µ±¸Ã·þÎñÆ÷×éÓÐÒ»¶Îʱ¼äûÓб»Ð޸쬽«×îæµÄ·þÎñÆ÷´Ó·þÎñÆ÷×éÖÐɾ³ý£¬ÒÔ½µµÍ¸´ÖƵij̶ȡ£

3.4.7.Ä¿±êµØÖ·É¢ÁУ¨Destination Hashing£©

¡°Ä¿±êµØÖ·É¢ÁС±µ÷¶ÈËã·¨¸ù¾ÝÇëÇóµÄÄ¿±êIPµØÖ·£¬×÷ΪɢÁмü£¨Hash Key£©´Ó¾²Ì¬·ÖÅäµÄÉ¢ÁбíÕÒ³ö¶ÔÓ¦µÄ·þÎñÆ÷£¬Èô¸Ã·þÎñÆ÷ÊÇ¿ÉÓõÄÇÒδ³¬ÔØ£¬½«ÇëÇó·¢Ë͵½¸Ã·þÎñÆ÷£¬·ñÔò·µ»Ø¿Õ¡£

3.4.8.Ô´µØÖ·É¢ÁУ¨Source Hashing£©

¡°Ô´µØÖ·É¢ÁС±µ÷¶ÈËã·¨¸ù¾ÝÇëÇóµÄÔ´IPµØÖ·£¬×÷ΪɢÁмü£¨Hash Key£©´Ó¾²Ì¬·ÖÅäµÄÉ¢ÁбíÕÒ³ö¶ÔÓ¦µÄ·þÎñÆ÷£¬Èô¸Ã·þÎñÆ÷ÊÇ¿ÉÓõÄÇÒδ³¬ÔØ£¬½«ÇëÇó·¢Ë͵½¸Ã·þÎñÆ÷£¬·ñÔò·µ»Ø¿Õ¡£

³ý¾ß±¸ÒÔÉϸºÔؾùºâËã·¨Í⣬»¹¿ÉÒÔ×Ô¶¨Òå¾ùºâ²ßÂÔ¡£

3.5³¡¾°

Ò»°ã×÷ΪÈë¿Ú¸ºÔؾùºâ»òÄÚ²¿¸ºÔؾùºâ£¬½áºÏ·´Ïò´úÀí·þÎñÆ÷ʹÓá£Ïà¹Ø¼Ü¹¹¿É²Î¿¼Ngnix³¡¾°¼Ü¹¹¡£

4¡¢HaProxy¸ºÔؾùºâ

HAProxyÒ²ÊÇʹÓý϶àµÄÒ»¿î¸ºÔؾùºâÈí¼þ¡£HAProxyÌṩ¸ß¿ÉÓÃÐÔ¡¢¸ºÔؾùºâÒÔ¼°»ùÓÚTCPºÍHTTPÓ¦ÓõĴúÀí£¬Ö§³ÖÐéÄâÖ÷»ú£¬ÊÇÃâ·Ñ¡¢¿ìËÙ²¢ÇÒ¿É¿¿µÄÒ»ÖÖ½â¾ö·½°¸¡£ÌرðÊÊÓÃÓÚÄÇЩ¸ºÔØÌØ´óµÄwebÕ¾µã¡£ÔËÐÐģʽʹµÃËü¿ÉÒԺܼòµ¥°²È«µÄÕûºÏµ½µ±Ç°µÄ¼Ü¹¹ÖУ¬Í¬Ê±¿ÉÒÔ±£»¤ÄãµÄweb·þÎñÆ÷²»±»±©Â¶µ½ÍøÂçÉÏ¡£

4.1.ÌØµã

Ö§³ÖÁ½ÖÖ´úÀíģʽ£ºTCP£¨ËIJ㣩ºÍHTTP£¨Æß²ã£©£¬Ö§³ÖÐéÄâÖ÷»ú£»

ÅäÖüòµ¥£¬Ö§³Öurl¼ì²âºó¶Ë·þÎñÆ÷״̬£»

×ö¸ºÔؾùºâÈí¼þʹÓã¬Ôڸ߲¢·¢Çé¿öÏ£¬´¦ÀíËٶȸßÓÚnginx£»

TCP²ã¶àÓÃÓÚMysql´Ó£¨¶Á£©·þÎñÆ÷¸ºÔؾùºâ¡£ £¨¶ÔMysql½øÐиºÔؾùºâ£¬¶Ôºó¶ËµÄDB½Úµã½øÐмì²âºÍ¸ºÔؾùºâ£©

Äܹ»²¹³äNginxµÄһЩȱµã±ÈÈçSessionµÄ±£³Ö£¬CookieÒýµ¼µÈ¹¤×÷

4.2.¾ùºâ²ßÂÔ

Ö§³ÖËÄÖÖ³£ÓÃËã·¨£º

1.roundrobin£ºÂÖѯ£¬ÂÖÁ÷·ÖÅäµ½ºó¶Ë·þÎñÆ÷£»

2.static-rr£º¸ù¾Ýºó¶Ë·þÎñÆ÷ÐÔÄÜ·ÖÅ䣻

3.leastconn£º×îСÁ¬½ÓÕßÓÅÏÈ´¦Àí£»

4.source£º¸ù¾ÝÇëÇóÔ´IP£¬ÓëNginxµÄIP_HashÀàËÆ¡£

Îå¡¢±¾´Î·ÖÏí×ܽá

ÒÔÉÏÊDZ¾ÖܵķÖÏí£¬´ÓÖ÷Òª½²½âÁËÈí¼þ¸ºÔؾùºâµÄÓ¦Óñ³¾°£¬Ngnix¸ºÔؾùºâ£¬LVS¸ºÔؾùºâ£¬Haproxy¸ºÔؾùºâ¡£

ÒòΪʱ¼ä¹ØÏµ£¬ÓÐЩ½²½âµÄ²»Ï¸Ö£¬´ó¼Ò¿ÉÒÔÎÊ϶ÈÄï/Google£¬Ï£Íû±¾´Î·ÖÏí¶Ô´ó¼ÒÓаïÖú¡£

   
2679 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

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

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù