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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
58¼¯ÍÅÃæÏòÒÚ¼¶Óû§IM³¤Á¬½Ó·þÎñÉè¼ÆÓëʵ¼ù
 
×÷ÕߣºÕÔÖÒÉú
  3428  次浏览      29
2020-9-24
 
±à¼­ÍƼö:
±¾ÎÄÊ×ÏȽéÉÜÁ˳¤Á¬½Ó·þÎñµÄ¸ÅÄî¡¢¼Ü¹¹Éè¼Æ¡¢Ï̹߳ÜÀí¡¢ÄÚ´æ¹ÜÀí¡¢TCP²ð°üÁ÷³Ì¡¢³¤Á¬½Ó±£»î¡¢ÈÝÁ¿¿ØÖƵȣ¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚinfoq£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­ÍƼö¡£

³¤Á¬½Ó·þÎñ¼ò½é

΢ÁÄ£¬ÊÇ 58 Ò»¿îÁÄÌ칤¾ß£¬Ä¿Ç°ÒѾ­½ÓÈë 58 µÄ´ó²¿·Ö²úÆ·¡£¼°Ê±×¼È·Êý¾Ý´«Ê䣬ÊǶÔÒ»¿îÁÄÌ칤¾ß×î»ù±¾µÄÒªÇó¡£³¤Á¬½Ó·þÎñ¾ÍÊÇÔÚ¿Í»§¶Ëµ½·þÎñ¶ËÖ®¼ä½¨Á¢Ò»Ìõȫ˫¹¤µÄÊý¾Ýͨ·£¬ÊµÏÖ¿Í»§¶ËºÍ·þÎñÖ®¼äÂß¼­ÊÕ·¢Êý¾Ý£¬ÔÚÏßÀëÏߵȹ¦ÄÜ¡£

½ÇÉ«

³¤Á¬½Ó·þÎñÔÚÕû¸ö΢ÁÄϵͳÖУ¬Î»ÓÚ¿Í»§¶ËÓëºǫ́Âß¼­Ö®¼ä£»

Õû¸öºǫ́·þÎñ×îÖØÒªµÄÖ±½Ó¶ÔÍâ½Ó¿ÚÖ®Ò» (ÁíÒ»¸öÊǶÌÁ¬½ÓÇëÇóµÄ nginx)£»

³¤Á¬½Ó·þÎñ¶ÔÍâºÍ¶ÔÄڵľù²ÉÓà tcp Á¬½Ó¡£

ϵͳƿ¾±

³¤Á¬½Ó·þÎñÖ÷Òª¹¦ÄÜÊÇÊÕ·¢Êý¾Ý£¬±£³ÖÔÚÏߣ¬Ê¹ÓõÄϵͳ×ÊÔ´Ö÷Òª°üÀ¨£ºCPU£¬ÄÚ´æ£¬Íø¿¨£»

µ±Á¬½Ó·Ç³£»îÔ¾µÄʱºò£¬´óÁ¿Êý¾Ý½ÓÊÕÓë·¢ËÍ£¬»áÓõ½¸ü¶àµÄ cpu ºÍÍø¿¨£»µ±´óÁ¿Óû§ÔÚÏßµÄʱºò£¬ÐèҪά³ÖÕâЩÁ¬½Ó£¬±£³Ö»á»°£¬ÐèÒªÓõ½´óÁ¿Äڴ棻

¿¼Âǵ½Î¢ÁĵÄʵ¼Ê³¡¾°£¬app ¶ËÕ¼ÓкܴóµÄ±ÈÀý£¬ÓÉÓÚÊÖ»úµÄÍøÂç»·¾³Ïà¶Ô pc À´Ëµ£¬²»Ì«Îȶ¨£¬ÐèÒª´¦Àí´óÁ¿Á¬½ÓµÄн¨Óë¶Ï¿ª£¬ËùÒÔϵͳ¶Ô cpu ʹÓÃÂʱȽϸߡ£

Éè¼ÆÄѵã

Éè¼Æµ¥Ì¨ÎïÀí»úÁ¬½ÓÊý 100W µÄ´¦ÀíÄÜÁ¦£»

cpu ×ÊÔ´³ä·ÖÀûÓã¬Ï̵߳ķÖÅ䣻

ÄÚ´æºÏÀí·ÖÅ䣬Êý¾Ý½á¹¹Ñ¡Ôñ£»

Òì²½»¯£¬°þÀëÒµÎñÂß¼­ºÍÍøÂç io Ö®¼äµÄÏ໥ÒÀÀµ¡£

¼Ü¹¹Éè¼Æ

¼Ü¹¹µÄÉè¼ÆÐèÒª¿¼ÂÇ tcp Á¬½Ó¹ÜÀíÓëÓ¦ÓòãЭÒé½âÎöÓë´¦ÀíÏà·ÖÀ룬ÒÔÏÂÊÇϵͳÖ÷ÒªµÄ¹¦ÄÜÄ£¿é£º

tcp Á¬½Ó²ã (ºÚÉ«ÐéÏß¿ò)- Á¬½Ó±£³Ö£¬session ¹ÜÀíµÈ£¬ÊµÏÖÁË tcp ºÍ tls ²ã£»

BlayServer - Âß¼­²ã·þÎñ£¬Âß¼­²ã½Úµã¹ÜÀí£¬Ð­Òé½âÎöµÈ£»

ClientServer - ¿Í»§¶Ë·þÎñ£¬¿Í»§¶ËЭÒé½âÎö£»

protocol - http£¬websocket£¬protocol ЭÒé·â×°£»

tools - json£¬log£¬config£¬crypto¡£

Ï̹߳ÜÀí

ΪÁ˳ä·ÖµØÊ¹Óà CPU£¬ÐèÒªºÏÀíµÄ½øÐÐÏ̹߳滮¡£Õû¸ö³¤Á¬½Ó·þÎñʹÓÃʼþÇý¶¯£¬°üÀ¨£º¶¨Ê±Æ÷ʼþºÍ io ʼþ£¨listen fd£¬socket fd, pipe fd£©, ËùÒÔÏ̹߳滮¾ÍÊǺÏÀí¸øÕâЩʼþ·ÖÅäÏ̡߳£

Ïß³ÌÓÅ»¯

´óÁ¿Á¬½Ó socket ÐèҪƽ¾ù·ÖÅäµ½¸÷¸öỊ̈߳»

еÄÁ¬½ÓÇëÇóÁ¿±È½Ï´ó£¬listen Ïß³ÌѹÁ¦½Ï´ó£¬ÐèÒª¿¼ÂǶàÏ̴߳¦Àí¡£

ÕâÀïÖ÷񻃾¼°µ½ÒÔÏ 3 ÖÖ fd µÄÏ̷߳ÖÅ䣺

¼àÌý fd£¬°üÀ¨¼àÌýÂß¼­²ãµÄÁ¬½ÓÇëÇóºÍ¼àÌý¿Í»§¶ËµÄÁ¬½ÓÇëÇ󣬲¢ÇÒÖ§³ÖÆô¶¯¶à¸ö¼àÌý¶Ë¿Ú£¬Ã¿¸ö¶Ë¿Ú¶à¸öÏß³Ìͬʱ¹¤×÷£¨¿ÉÅäÖã©£¬ÕûÌå»á°´Ë³Ðò·ÖÅäµ½Ị̈߳»

Á¬½Ó fd£¬°üÀ¨Âß¼­²ãµÄÁ¬½ÓºÍ¿Í»§¶ËµÄÁ¬½Ó£¬²ÉÓà fd È¡ÓàÏß³ÌÊý£¬±£Ö¤Æ½¾ù·ÖÅäµ½ËùÓÐỊ̈߳»

pipe fd, ¸ºÔð±¾Ï̹߳ܵÀÖÐÊý¾ÝµÄ¶ÁÈ¡£¬Ã¿¸öÏß³ÌÒ»¸ö¡£

ÕâÑùʹµÃÿ¸öÏß³ÌµÄ CPU ʹÓÃÂÊÏ൱¡£

Ï̼߳äͨÐÅ

¿Í»§¶Ë fd ºÍ listen fd£¬²ÉÓò»Í¬µÄ¹æÔò·ÖÅ䵽ͬһ×éÏß³ÌÖУ¬µ±¿Í»§¶ËµÄÊý¾ÝÐèÒª·¢¸øÂß¼­²ã£¬»òÊÇÂß¼­²ãÊý¾ÝÐèÒª·¢¸ø¿Í»§¶Ë£¬¾Í´æÔÚ¿Í»§¶ËÁ¬½ÓºÍÂß¼­²ãµÄÁ¬½Ó´æÔÚͬһÏ̻߳ò²»Í¬Ïß³ÌÁ½ÖÖÇé¿ö£¬²»Í¬Ïß³ÌÖ®¼ä´«ÊäÊý¾ÝÐèÒªÓõ½Ïß³ÌͨÐÅ¡£½â¾ö²»Í¬Ï̷߳ÃÎÊ×ÊÔ´£¬´«ÊäÊý¾ÝÖ÷Òª¿¼ÂÇÁËÏÂÃæ¼¸ÖÖ·½Ê½:

¼ÓËø (±ÈÈç session ¶ÁÐ´Ëø£¬´Ó¶øÈà session ¿ÉÒÔÔÚ¶àÏß³ÌÖвÙ×÷) - »áµ¼Ö¶à¸öÏ߳̾ºÕù×ÊÔ´£¬×èÈûỊ̈߳»

¹²ÏíÄڴ棬ÐèÒª¼ÓËø±£Ö¤Ô­×ÓÐÔ£¬ÐèÒªÏß³ÌÉèÖö¨Ê±Æ÷×ö¿É¶ÁÐÔ¼ì²â£¬ÊµÏÖÆðÀ´±È½Ï¸´ÔÓ£»

ÎÒÃDzÉÓòÙ×÷ϵͳÌṩµÄ¹ÜµÀ -pipe ½â¾öÏ̼߳äͨÐŵÄÎÊÌâ¡£

pipe ͨÐÅЭÒ飺

close session£¬Ò»¸öÏß³ÌÐèÒª¹Ø±ÕÁíÒ»¸öÏß³ÌÉϵÄÁ¬½Ó£¬±ÈÈ磺ÊÕµ½Âß¼­²ãÐèÒª°Ñij¸öÓû§ÌßÏÂÏßµÄÃüÁ

send to session, Ò»¸öÏ̸߳ø±ðÒ»¸öÏß³ÌÉϵÄÁ¬½Ó·¢ËÍÊý¾Ý£¬±ÈÈ磺¸øÄ³¸öÓû§ÍÆËÍÏûÏ¢£»

Ó¦Óòãʼþ£¬Ó¦Óòãʼþ¿çÏß³Ìת·¢£¬Ò»ÖÖͨÓõĿçÏ̵߳÷Óá£

ÄÚ´æ¹ÜÀí

ÔÚ³¤Á¬½Ó·þÎñ¹¤×÷¹ý³ÌÖУ¬»áÓдóÁ¿»á»°²»Í£´´½¨ºÍÏú»Ù£¬ÔڻỰ¹ý³ÌÖУ¬ÓÖ»áÓдóÁ¿³¤¶È²»µÈµÄÊý¾ÝͨÐÅ£¬³¤Ê±¼äÎȶ¨µÄ·þÎñÐèÒªºÏÀí¸ßЧµÄÄÚ´æÊ¹Óᣳ¤Á¬½Ó·þÎñÖжÔÄÚ´æµÄʹÓ㬰üÀ¨ÒÔϼ¸¸ö·½Ã棺²Ù×÷ϵͳ Tcp ЭÒéÕ»ÄÚ´æÊ¹Ó㬷þÎñÖÐ session ¹ÜÀí£¬¶ÁдÊý¾Ý»º´æ (buffer) µÈ¡£

˵Ã÷£º

ÆäÖÐ×îÖ÷ÒªµÄÄÚ´æÊ¹ÓÃÊÇ tcp ЭÒéÕ»£¬°üÀ¨ tcb ºÍ¶Áд»º´æ£¬ÆäËüÄÚ´æÊ¹ÓÃÌåÏÖÔÚ session ´æ´¢ºÍ session ¶Áд buffer£»

ÓÉÓÚÔÚ tcp ÉϲãʵÏÖÁ˸ü¼ÓÂß¼­ÓÑºÃµÄ buffer(ºóÃæ»áÏêϸ½²µ½)£¬Êµ¼Ê²¿ÊðÖпÉÒÔ°Ñ tcp ЭÒéÕ»ÖеĶÁд buffer ÉèÖóɱȽÏСµÄ¿Õ¼ä£¬±ÈÈçÉèÖÃΪ 1k¡£

session ¾²Ì¬ÄÚ´æÄ£ÐÍ

µ±Ò»¸ö¿Í»§¶ËÔÚÏߣ¬·þÎñ¶Ë»áÉú³ÉÒ»¸ö session ±£´æ¸ÃÁ¬½ÓµÄ״̬£¬Ò»Ð©Âß¼­ÐÅÏ¢£¬ÒÔ¼° socket ÐÅÏ¢µÈ¡£ ´óÁ¿µÄ»á»°±£³Ö£¬ÐèÒª·þÎñ¶ËºÏÀíµÄ¹ÜÀíÕâЩ session¡£

¿¼ÂÇÒÔϼ¸ÖÖ´æ´¢½á¹¹£º

hash - Äܹ»ÊµÏֱȽϿìËÙ´æÈ¡£¬ÐèÒª×Ô¼ºÊµÏÖ hash Ëã·¨£¬¾­³£·ÖÅäÊÍ·ÅÄÚ´æ»áµ¼ÖÂÄÚ´æË鯬£»

¹Ì¶¨Êý×é - ÐèÒªÒ»¿ªÊ¼·ÖÅä´ó¿éÄڴ棬²»Ö§³Ö¶¯Ì¬À©Õ¹£¬µ«´æÈ¡¿ìËÙ£¬²»»áÓÐÄÚ´æË鯬£»

¶¯Ì¬Êý¾Ý - ¶¯Ì¬À©Õ¹£¬´æÈ¡¿ìËÙ£¬ÎÞÄÚ´æË鯬£¬µ«À©Õ¹µÄʱºò»áÓдó¿éÄÚ´æ·ÖÅäÓ뿽±´¡£

³¤Á¬½Ó·þÎñ²ÉÓÃÊý×é´æ´¢ session£º

Ô¤·ÖÅä 100W session È«Á¿µÄ¿Õ¼ä£¬Ï൱ÓÚ 100Wsession µÄÊý×飨һ¹² 418M£©£¬´óС¿É½ÓÊÜ£¬²¢ÇÒÓÐÈÝÁ¿Ê¹ÓÃ¼à¿Ø£¬·ÀÖ¹¿Õ¼äÂúÁ˽¨Á¢Á¬½Óʧ°Ü£»

Ö±½ÓʹÓà session ¶ÔÓ¦µÄ fd ×÷Ϊϱ꣬ʵÏÖ´æÈ¡ O(1)£»

ÓÉÓÚ fd ·ÖÅä²ßÂÔÊÇ´ÓСµ½´ó·ÖÅä¿ÕÏеģ¬ËùÒÔ¿ÉÒÔ±£Ö¤Êý×éÔÚµ±Ç°Á¬½ÓÊýÒÔϵĿռäÊDZ¥ºÍµÄ£¬¿Õ¼äÀûÓÃÂʱȽϸߡ£

buffer

ÔÚ socket ¶Áд¹ý³ÌÖУ¬»áÓöµ½ÒÔϼ¸¸öÎÊÌ⣺

µ±Ïò socket ÖÐдÊý¾ÝµÄʱºò£¬Èç¹ûµ±Ç°²»×ãÒÔдÏÂҪдµÄËùÓÐÊý¾Ý£¬ÄÇô»áдÈ벿·ÖÊý¾Ý£¬Ê£ÏµÄÊý¾ÝÐèÒªÔÚ socket ¿ÉдµÄʱºò¼ÌÐøÐ´È룬ÒÔ±£Ö¤Êý¾ÝµÄÁ¬¹áÐÔ£¬ÕâÀïÐèÒªÓÐÒ»¸ö±£´æ²¢¼Ç¼ÐèҪдÈëµÄÊý¾ÝµÄÊý¾Ý½á¹¹£¬²¢ÇÒÐèÒª±£Ö¤Ð´ÈëµÄÊý¾ÝµÄÏȺó˳Ðò£¬ÏÈÈëÏȳö£»

µ±´Ó socket ÖжÁÊý¾ÝµÄʱºò£¬tcp Ö»±£Ö¤Êý¾ÝÁ÷µÄ˳ÐòÐÔ£¬²¢²»ÖªµÀÓ¦ÓòãЭÒé°ü´óС£¬ËùÒÔÐèÒª´Ó tcp Á÷ÖзÖÀë³öÒ»¸ö¸öÓ¦ÓòãЭÒé°ü£¬ÔÚ½â¾ö²ð°üºÍÕ³°üÎÊÌâµÄ¹ý³ÌÖУ¬»áÓöµ½Êý¾Ý°ü²»¹»µÄÇé¿öÏ£¬ÐèÒªµÈ´ýºóÐøÊý¾ÝµÄ¶ÁÈ룬ֱµ½¶Áµ½µÄÊý¾Ý¹¹³ÉÒ»¸öÍêÕûµÄÓ¦ÓòãЭÒé°ü£¬È»ºó°Ñ¾Í¸öЭÒéÕûÌå·µ»Ø¸øÉϲ㣻

ÔÚ·¢ËͺͽÓÊյĹý³ÌÖУ¬ÐèÒªÖ§³Ö´óС²»Ò»ÑùµÄÓ¦ÓòãÊý¾Ý°ü£¨ÁÄÌìÄÚÈÝΪһ¸ö×Ö»òÊÇ 1M µÄ×Ö£©£¬ËùÒÔÕâÀïÐèÒªÒ»¸ö¿ÉÒÔ·¢ËͲð½â´óÓ¦Óòã°üµÄ»º´æ¶ÓÁС£

ΪÁËÂú×ãÒÔÉϹ¦ÄܺÍÒªÇó£¬ÎÒÃÇÉè¼ÆÁË buffer£º

·ÖÅäÓëÊͷŲÉÓù̶¨´æ´¢µ¥Ôª·ÀÖ¹²úÉúÄÚ´æË鯬£»

¶¯Ì¬À©Õ¹µÄË«ÏòÑ­»·Á´±í£¨¶ÓÁУ©£»

¶ÔÍâÌṩÁËÁ¬ÐøÊý¾Ý´æÈ¡½Ó¿Ú¡£

tcp ²ð°üÁ÷³Ì

tcp ÊÇÃæÏò×Ö·ûÁ÷µÄ´«Ê䣬tcp ±£Ö¤ÁË´«ÊäÊý¾ÝµÄ˳ÐòÐԺͿɿ¿ÐÔ£¬µ±½ÓÊÕµ½×Ö·ûÁ÷µÄʱºò£¬ÈçºÎ´Ó×Ö·ûÁ÷ÖзÖÀë³öÒ»¶Î¶ÎÉϲãЭÒ飬ÊÇ tcp ²ð°üÓ¦¸Ã¿¼ÂǵÄÎÊÌâ¡£

ÈçÉÏͼËùʾ£¬Âß¼­²ãÐèҪʵÏÖ getProtocolSize ºÍ receiveCallback Á½¸ö½Ó¿Ú£¬Ç°Õßͨ¹ý²ÎÊýÖд«ÈëµÄÊý¾ÝÅжϳöµ±Ç°Ó¦ÓòãЭÒé°ü´óС£¬ºóÕßÊÇ·µ»ØÓ¦ÓòãЭÒé°üµÄ»Øµ÷¡£ µ± socket ¶Áʼþ·¢Éúʱ£¬Ê×ÏÈ´Ó socket ÖжÁÈ¡Êý¾Ý£¬Ð´Èë buffer ÖУ¬È»ºó£¬µ÷Óà buffer µÄÔ¤¶Á½Ó¿Ú£¨Ö»ÊÇ·µ»Ø¶ÓÁÐÍ·²¿µÄÖ»¶ÁÖ¸Õ룬²¢²»¿½±´Êý¾Ý£©£¬µ÷Óà getProtocolSize ½Ó¿Ú£¬ÓÉÂß¼­²ã·µ»ØÓ¦ÓòãЭÒé°ü´óС£¨Ö»ÓÐÓ¦ÓòãÂß¼­²ÅÖªµÀ×Ô¼º¸Ãʶ±ðÄÄÖÖЭÒ飩£¬ÔÙ¸ù¾Ý¸Ã´óС£¬´Ó buffer ¶ÓÁÐÖжÁ³öЭÒé°ü£¬×îºóͨ¹ý receiveCallback ·µ»Ø¸øÉϲ㴦Àí¡£

³¤Á¬½Ó±£»î

ÓÉÓÚ tcp ×ÔÉíµÄ¶Ï¿ªÈ·ÈÏ»úÖÆ£¬Èç¹ûÒ»Ìõ tcp Á¬½ÓÖмäÍøÂç¶Ï¿ª£¬´Ëʱ¿Í»§¶ËºÍ·þÎñ¶ËÎïÀíÍøÂçµÄ¶Ï¿ªµ¼ÖÂÁ˿ͻ§¶ËºÍ·þÎñ¶Ë¶¼Ã»Óа취֪ͨ¶Ô·½Á¬½ÓµÄ¶Ï¿ª£¬ÕâÑù£¬·þÎñ¶ËºÍ¿Í»§¶Ë¾Í»á´æÔÚËÀÁ¬½Ó£¬Ôì³É¼ÙÔÚÏߣ¬Õ¼ÓõÄ×ÊÔ´µÃ²»µ½ÓÐЧµÄ»ØÊÕ¡£³¤Á¬½Ó±£»îÖ÷ÒªÓÐÏÂÃæÁ½ÖÖ·½Ê½£º

tcp keepalive£¬Í¨¹ýÉèÖà keepalive ²ÎÊý£¬tcp ЭÒéÕ»»áÔÚ³¬¹ýÒ»¶¨Ê±¼äûÓÐÊý¾Ý½»»¥µÄʱºò£¬·¢ËÍ keepalive ̽²â°ü£¬Èç¹ûÁ¬½Ó¼¸´Î¶¼Ã»ÓÐÊÕµ½»Ø°ü£¬Ôò¶Ï¿ªÁ¬½Ó¡£ ÓŵãÊÇ£¬tcp ЭÒéÕ»ÌṩµÄ¹¦ÄÜ£¬¸ü¼ÓÎȶ¨£¬²¢ÇÒÕ¼ÓýÏÉٵĴø¿í£»

²ÉÓÃÓ¦ÓòãÐÄÌø°üµÄ·½Ê½£¬¿Í»§¶Ë¶¨Ê±Ïò·þÎñ¶Ë·¢ËÍÐÄÌø°ü£¬·þÎñ¶ËÊÕµ½ÐÄÌø°üºóÁ¢¼´½øÐлذü£¬¿Í»§¶ËÈç¹ûûÓмì²âµ½»Ø°ü£¬Ôò¶Ï¿ªÁ¬½Ó£»·þÎñ¶Ë¼ì²â³¬Ê±»¹Ã»ÓÐÊÕµ½ÐÄÌø°ü£¬Ôò¶Ï¿ªÁ¬½Ó¡£ÓŵãÖ÷ÒªÊÇÓ¦ÓòãÓиÐÖª£¬¿É¿Ø£¬²¢ÇÒ¿ÉÒÔ´øÐ©ÒµÎñÊý¾Ý£¬±ÈÈçʱ¼ä´Á¡£

΢Áij¤Á¬½Ó£¬¿¼Âǵ½¶à¶ËÖ§³Ö£¨android, ios, web µÈ£©£¬¼æÈÝÀϰ汾ʵÏÖ·½Ê½£¬Ó¦ÓòãЭÒéÖ÷ҪʹÓà http£¬ÌṩÁË http-chunk ºÍ http-long-polling£¬Á½ÖÖ http ½ÓÈ뷽ʽ£¬ÕâÑù¾ÍÏÞÖÆÁ˿ͻ§¶ËÉÏ·¢Êý¾Ý£¬ËùÒÔÎÒÃDzÉÓÃÁË·þÎñ¶ËÏ·¢ÐÄÌø£¬ºÍ keepalive ½áºÏµÄ·½Ê½£¬ÊµÏÖ·þÎñ¶ËºÍ¿Í»§¶ËµÄ±£»î, ÈçÏÂͼ£º

·þÎñ¶Ëͨ¹ý¿ªÆô tcp keepalive ½øÐб£»î£¬µ±Ò»ÌõÁ¬½Ó³¬¹ýÒ»¶¨Ê±¼äûÓл, ·þÎñ¶Ë»á·¢ keepalive °ü£¬Èç¹ûÁ¬Ðø 3 ´Î¶¼Ã»ÊÕµ½»Ø°ü£¬·þÎñ¶Ë¾Í»áÈÏΪÕâÊÇÒ»¸öËÀÁ¬½Ó£¬´Ó¶ø¹Ø±ÕËü£»

¶ø¶ÔÓÚ¿Í»§¶Ë£¬·þÎñ¶Ë»á¶¨Ê±Ï·¢ÐÄÌø°ü£¬¿Í»§¶Ëͨ¹ý¼à²âÐÄÌø°üÀ´Åбðµ±Ç°Á¬½ÓÊÇ·ñ¹¤×÷Õý³££¬Èç¹û²»ÄÜÕý³£ÊÕµ½ÐÄÌø°ü£¬Ôò»áÖØÐ½¨Á¢ÐµÄÁ¬½Ó¡£

ÈÝÁ¿¿ØÖÆ

ÔÚ tcp Á¬½Ó½¨Á¢µ½Í¨ÐŵÄÁ÷³ÌÖУ¬ÎªÁË·ÀֹһЩ¶ñÒâÁ¬½ÓÓë¹¥»÷£¬³¤Á¬½Ó·þÎñ×öÁËÈÝÁ¿¿ØÖÆ£¬Èç¹ûÌåÏÖÔÚÏÂÃæ¼¸¸ö·½Ã棺

¿Í»§¶Ë½¨Á¢ tcp Á¬½Óµ½ tls ÎÕÊÖÔÙµ½·¢³öµÇ¼Êý¾Ý·µ»ØµÇ¼½á¹û£¬Õâ¸ö¹ý³ÌÊÇÁ¬¹áµÄ£¬Èç¹û¿Í»§¶ËÍ£ÔÚÖмäµÄijһ²½¶ø²»ÍùϽøÐУ¬¾Í»áÒ»Ö±Õ¼×Å·þÎñ¶Ë×ÊÔ´£¬Õë¶ÔÕâÖÖÇé¿ö£¬·þÎñ¶ËÔö¼ÓÁ˶¨Ê±¿ØÖÆ£¬ÔÚ tcp Á¬½ÓÖ®ºó 30s£¬»¹Ã»ÓÐÊÕµ½µÇ¼ÇëÇ󣬷þÎñ¶Ë»áÖ÷¶¯¶Ï¿ªÁ¬½Ó£»

ÔÚ·þÎñÖÐͳ¼ÆÁËÕýÔÚ½øÐÐ tls ÎÕÊÖ£¬ÕýÔÚ½øÐеǼУÑéµÄÁ¬½ÓÊýÁ¿£¬·Ö±ðÉèÖÃÉÏÏÞ£¬·ÀÖ¹µ±Í¬Ê±³öÏÖ´óÁ¿ÇëÇóµÄʱºò£¬¶Ôºó¶Ë·þÎñµÄ³å»÷£»

Ôö¼ÓÁ˻ỰͨÐŹý³ÌÖÐ buffer ÄÚ´æÊ¹ÓÃÁ¿µÄÉÏÏÞ£¬·ÀÖ¹¶Ô¶Ë²»½ÓÊÕÊý¾Ý£¬µ¼Ö·þÎñ¶ËÊý¾Ý»ýѹ£»

Ôö¼Ó ip ͳ¼Æ·þÎñ£¬µ±½¨Á¢Á¬½Óºó£¬»á½«ÐÂÁ¬½ÓµÄ ip µÈÐÅÏ¢·¢Ë͵½ ip ͳ¼Æ·þÎñ£¬¶ÔÕû¸ö·þÎñµÄ¿Í»§¶Ë ip Çé¿ö×÷ͳ¼Æ¼à¿Ø£¬Ôö¼Ó ip ºÚÃûµ¥¹¦ÄÜ¡£

×Ü ½á

³¤Á¬½Ó·þÎñÊÇ΢ÁĵĻù´¡·þÎñ£¬Îȶ¨ÐÔÓÈÆäÖØÒª£»

ÔÚÎȶ¨ÐԵĻù´¡ÉÏ£¬Í¨¹ý tls ÎÕÊÖÓÅ»¯µÈ£¬²»¶ÏÌá¸ß½¨Á¢Á¬½ÓµÄËÙ¶È£¬¸üºÃµÄÓ¦¶Ô¶ÏÍø£¬ÈõÍøµÈ¸´ÔÓµÄÍâÍø»·¾³£»

ͨ¹ýÖ§³Ö¸ü¶àµÄÓ¦ÓòãЭÒ飬Ìá¸ß¶à¶Ë¶àÉ豸µÄ½ÓÈëÄÜÁ¦£»

ͨ¹ý¼à¿Ø£¬²»¶ÏÍÚ¾òDZÔÚÔÚ°²È«Íþв£¬Í¬Ê±Ô¤·À³£¼ûµÄÍøÂ簲ȫÎÊÌâ¡£

ÕâÆª·ÖÏíÖ÷ÒªÔÚ³¤Á¬½Ó·þÎñµÄÕûÌå¼Ü¹¹£¬Ị̈߳¬ÄÚ´æ·ÖÅäµÈһЩÆÕ±éÎÊÌâ¼¼ÊõÑ¡ÐÍ·½Ãæ½øÐÐÕûÌåÐԵĽéÉÜ£¬Ëæ×ÅÒµÎñµÄ½ÓÈëÓëÓû§µÄÔö³¤£¬³¤Á¬½Ó·þÎñÒ²°éËæ×ÅеÄÌôÕ½£¬ÔÚÎȶ¨ÐÔ£¬¸ß²¢·¢£¬¸ßЧÂÊ£¬°²È«ÐÔ·½ÃæµÄ̽Ë÷ÓëÌá¸ßÓÀԶûÓо¡Í·¡£

×îºó£¬»¶Ó­¶Ô·Ö²¼Ê½³¤Á¬½Ó·þÎñ£¬linux ÄÚºËÍøÂçЭÒéÕ»¸ÐÐËȤµÄͬѧһÆð½»Á÷¡£

 

   
3428 ´Îä¯ÀÀ       29
????

HTTP????
nginx??????
SD-WAN???
5G?????
 
????

??????????
IPv6???????
??????????
???????
????

????????
????????
???????????????
??????????
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ