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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Я³ÌAppµÄÍøÂçÐÔÄÜÓÅ»¯Êµ¼ù
 
×÷Õߣº³ÂºÆÈ» À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2015-05-25
  3325  次浏览      32
 

Ê×ÏȽéÉÜÒ»ÏÂЯ³ÌAppµÄÍøÂç·þÎñ¼Ü¹¹¡£ÓÉÓÚЯ³ÌÒµÎñÖڶ࣬¿ª·¢×ÊÔ´µ¼ÖÂÎÞ·¨È«²¿Ê¹ÓÃNativeÀ´ÊµÏÖÒµÎñÂß¼­£¬Òò´ËÓÐÏ൱һ²¿·ÖƵµÀ»ùÓÚHybridʵÏÖ¡£ÍøÂçͨѶÊôÓÚ»ù´¡&ÒµÎñ¿ò¼Ü²ãÖлù´¡ÉèÊ©µÄÒ»²¿·Ö£¬ÎªAppÌṩͳһµÄÍøÂç·þÎñ£º

Native¶ËµÄÍøÂç·þÎñ

NativeÄ£¿éÊÇЯ³ÌµÄºËÐÄÒµÎñÄ£¿é£¨¾Æµê¡¢»úƱ¡¢»ð³µÆ±¡¢¹¥ÂԵȣ©£¬NativeÄ£¿éµÄÍøÂç·þÎñÖ÷Ҫͨ¹ýTCPÁ¬½ÓʵÏÖ£¬¶ø·Ç³£¼ûµÄRestful HTTP APIÄÇÖÖHTTPÁ¬½Ó£¬Ö»ÓÐÉÙÊýÇáÁ¿¼¶·þÎñʹÓÃHTTP½Ó¿Ú×÷Ϊ²¹³ä¡£

TCPÁ¬½ÓÍøÂç·þÎñÄ£¿éʹÓÃÁ˳¤Á¬½Ó+¶ÌÁ¬½Ó»úÖÆ£¬¼´ÓÐÒ»¸ö³¤Á¬½Ó³Ø±£³ÖÒ»¶¨ÊýÄ¿³¤Á¬½Ó£¬ÓÃÓÚ¼õÉÙÿ´Î·þÎñ¶îÍâµÄÁ¬½Ó£¬·þÎñÍê³Éºó»á½«¸ÃÁ¬½ÓSocket·Å»Ø³¤Á¬½Ó³Ø£¬¼ÌÐø±£³ÖÁ¬½Ó״̬£¨Ò»¶Îʱ¼ä¿ÕÏкó»á±»»ØÊÕ£©£»¶ÌÁ¬½Ó×÷Ϊ²¹³ä£¬Ã¿´Î·þÎñÍê³Éºó±ã»áÖ÷¶¯¹Ø±ÕÁ¬½Ó¡£

TCPÍøÂç·þÎñµÄPayloadʹÓõÄÊÇ×Ô¶¨ÒåµÄÊý¾Ý¼°ÐòÁл¯Ð­Ò飻HTTP·þÎñµÄPayload±È½Ï¼òµ¥£¬¼´³£¼ûµÄJSONÊý¾Ý¸ñʽ¡£]

Hybrid¶ËµÄÍøÂç·þÎñ

HybridÄ£¿éÓÉÓÚÊÇÔÚWebViewÖÐչʾ±¾µØ»òÕßÖ±Á¬µÄH5Ò³Ãæ£¬Ò³ÃæÂß¼­·¢ÆðµÄÍøÂç·þÎñ¶¼ÊÇͨ¹ýϵͳWebViewµÄHTTPÇëÇóʵÏֵġ£ÉÙÁ¿ÒµÎñ³¡¾°£¨ÐèÒª¼ÓÃܺÍÖ§¸¶µÈ£©ÒÔHybridÇŽӽӿÚÐÎʽµÄNative TCPͨµÀÀ´Íê³ÉÍøÂç·þÎñ¡£

ÏÂͼÊÇÍøÂç·þÎñµÄ²¿Êð¼Ü¹¹Í¼£º

Я³ÌAppËùÓÐÍøÂç·þÎñ£¬ÎÞÂÛÊÇTCP»¹ÊÇHTTP¶¼»áÏÈÁ¬½Óµ½Ò»¸öAPI Gateway·þÎñÆ÷¡£Èç¹ûÊÇTCP·þÎñ£¬»áÏÈÁ¬½ÓÉÏTCP Gateway£¬TCP Gateway»á¸ºÔð½«ÇëÇóͨ¹ýHTTPת·¢µ½ºó¶ËµÄSOA·þÎñ½Ó¿Ú¡£HTTP GatewayµÄÔ­ÀíÓëÖ®ÀàËÆ¡£TCP GatewayºÍHTTP GatewayµÄÇø±ð½ö½öÔÚ¿Í»§¶Ëµ½·þÎñ¶ËµÄÁ¬½Ó·½Ê½²»Í¬¶øÒÑ¡£GatewayµÄ×÷ÓóýÁËÒµÎñÇëÇó»¹ÓÐÁ÷Á¿¿ØÖƺÍÈÛ¶Ï¡£

Òª·¢ÏÖ³£¼ûÍøÂçÐÔÄÜÎÊÌ⣬ÏÈÀ´¿´¿´Ò»¸öÍøÂç·þÎñ×öÁËÄÄЩÊÂÇ飺

1.DNS Lookup

2.TCP Handshake

3.TLS Handshake

4.TCP/HTTP Request/Response

Ê×ÏÈ»áÊÇDNS½âÎö£¬È»ºóTCPÁ¬½ÓÎÕÊÖ£¬TLSÁ¬½ÓÎÕÊÖ£¨Èç¹ûÓеϰ£©£¬Á¬½Ó³É¹¦ºóÔÙ·¢ËÍTCP»òHTTPÇëÇóÒÔ¼°ÊÕµ½ÏìÓ¦¡£Èç¹ûÄܹ»½«ÕâЩ¹ý³ÌÖðÒ»ÊáÀí²¢È·±£²»»á´æÔÚÃ÷ÏÔµÄÐÔÄÜÎÊÌ⣬ÄÇô»ù±¾¿ÉÒÔÈ·±£»ñµÃ²»´íµÄÍøÂçÐÔÄÜ¡£ÍøÂç·þÎñÀïÓÐÒ»¸öÖØÒªµÄÐÔÄܱê×¼£¬¼´RTT(Round-Trip Time)£¬Íù·µÊ±ÑÓ£¬Ëü±íʾ´Ó·¢ËͶ˷¢ËÍÊý¾Ý¿ªÊ¼£¬µ½·¢ËͶËÊÕµ½À´×Ô½ÓÊն˵ÄÈ·ÈÏ£¨½ÓÊÕ¶ËÊÕµ½Êý¾Ýºó±ãÁ¢¼´·¢ËÍÈ·ÈÏ£©Ëù¼ä¸ôµÄʱ¼ä¡£ÀíÏëÇé¿öÏ¿ÉÒÔ¼ÙÉè4GÍøÂçRTTΪ100ms£¬3GÍøÂçRTTΪ200ms£¬ºÜÈÝÒ×¾ÍÄܼÆËã³öÎÒÃǵÄAppÍøÂç·þÎñºÄʱµÄÏÂÏÞ£¬µ±È»»¹Òª¼ÓÉÏ·þÎñÆ÷´¦Àíʱ¼ä¡£

³£¼ûµÄÍøÂçÐÔÄÜÎÊÌâÓÐÈçϼ¸ÖÖ£º

ÎÊÌâÒ»£ºDNSÎÊÌâ

DNS³öÎÊÌâµÄ¸ÅÂÊÆäʵ±È´ó¼Ò¸Ð¾õµÄÒª´ó£¬Ê×ÏÈÊÇDNS±»½Ù³Ö»òÕßʧЧ£¬2015Äê³õÒµÄڱȽÏÖªÃûµÄ¾ÍÓÐAppleÄÚ²¿DNSÎÊÌâµ¼ÖÂApp Store¡¢iTunes ConnectÕË»§ÎÞ·¨µÇ¼£»¾©¶«ÒòΪCDNÓòÃû¸¶·ÑÎÊÌâµ¼Ö·þÎñÍ£°Ú¡£Ð¯³ÌÔÚÈ¥Äê11ÔÂÒ²Óöµ½¹ýDNSÎÊÌ⣬Ö÷ÓòÃû±»¹úÍâ·þÎñÉÌÎóÁÐÈëºÚÃûµ¥£¬µ¼ÖÂÖ÷Õ¾ºÍH5µÈËùÓÐÕ¾µãÎÞ·¨·ÃÎÊ£¬µ«ÊÇApp¿Í»§¶ËµÄNative·þÎñ¶¼Õý³££¬Ô­ÒòºóÃæ½éÉÜ¡£

ÁíÒ»¸ö³£¼ûÎÊÌâ¾ÍÊÇDNS½âÎöÂý»òÕßʧ°Ü£¬ÀýÈç¹úÄÚÖйúÔËÓªÉÌÍøÂçµÄDNS¾ÍºÜÂý£¬Ò»´ÎDNS²éѯµÄºÄʱÉõÖÁ¶¼ÄܸÏÉÏÒ»´ÎÁ¬½ÓµÄºÄʱ£¬ÓÈÆä2GÍøÂçÇé¿öÏ£¬DNS½âÎöʧ°ÜÊǺܳ£¼ûµÄ¡£Òò´ËÈç¹ûÖ±½ÓʹÓÃDNS£¬¶ÔÓÚÊ×´ÎÍøÂç·þÎñÇëÇóºÄʱºÍÕûÌå·þÎñ³É¹¦Âʶ¼Óзdz£´óµÄÓ°Ïì¡£

ÎÊÌâ¶þ£ºTCPÁ¬½ÓÎÊÌâ

DNS³É¹¦ºóÄõ½IP£¬±ã¿ÉÒÔ·¢ÆðTCPÁ¬½Ó¡£HTTPЭÒéµÄÍøÂç²ãÒ²ÊÇTCPÁ¬½Ó£¬Òò´ËTCPÁ¬½ÓµÄ³É¹¦ºÍºÄʱҲ³ÉÎªÍøÂçÐÔÄܵÄÒ»¸öÒòËØ¡£ÎÒÃÇ·¢ÏÖ³£¼ûµÄÎÊÌâÓÐTCP¶Ë¿Ú±»·â£¨ÀýÈçÉϺ£³¤¿í¶Ô·ÇHTTP³£¼û¶Ë¿Ú80¡¢8080¡¢443µÄ·âËø£©£¬ÒÔ¼°TCPÁ¬½Ó³¬Ê±Ê±³¤ÎÊÌâ¡£¶Ë¿Ú±»·â£¬Ö±½Óµ¼ÖÂÎÞ·¨Á¬½Ó£»Á¬½Ó³¬Ê±Ê±³¤¹ý¶Ì£¬ÔÚµÍËÙÍøÂçÉÏ¿ÉÄÜ×ÜÊÇÎÞ·¨Á¬½Ó³É¹û£»Á¬½Ó³¬Ê±¹ý³¤£¬ÓÖÓпÉÄܵ¼ÖÂÓû§³¤Ê±¼äµÈ´ý£¬Óû§ÌåÑé²î¡£ºÜ¶àʱºò¾¡¿ìʧ°ÜÖØÐ·¢ÆðÒ»´ÎÁ¬½Ó»áºÜ¿ì£¬ÕâÒ²ÊÇÒÆ¶¯ÍøÂç´ø¿í²»Îȶ¨Çé¿öϵÄÒ»¸ö³£¼ûÇé¿ö¡£

ÎÊÌâÈý£ºWrite/ReadÎÊÌâ

DNS LookupºÍTCPÁ¬½Ó³É¹¦ºó£¬¾Í»á¿ªÊ¼·¢ËÍRequest£¬·þÎñ¶Ë´¦Àíºó·µ»ØResponse£¬Èç¹ûÊÇHTTPÁ¬½Ó£¬ÒµÄڴ󲿷ÖAppÊÇʹÓõÚÈý·½SDK»òÕßϵͳÌṩµÄAPIÀ´ÊµÏÖ£¬ÄÇôֻÄÜÉèÖÃЩ»º´æ²ßÂԺͳ¬Ê±Ê±¼ä¡£iOSÉϵÄNSURLConnection³¬Ê±Ê±¼äÔÚ²»Í¬°æ±¾ÉÏ»¹Óв»Í¬µÄ¶¨Ò壬ºÜ¶àʱºòÐèÒª×Ô¼ºÉèÖÃTimerÀ´ÊµÏÖ£»Èç¹ûÊÇÖ±½ÓʹÓÃTCPÁ¬½ÓʵÏÖÍøÂç·þÎñ£¬¾ÍÒª×Ô¼º¶Ô¶Áд³¬Ê±Ê±¼ä¸ºÔð£¬ÓëÍøÂçÁ¬½Ó³¬Ê±Ê±³¤²ÎÊýÀàËÆ£¬Ì«Ð¡ÁËÔÚµÍËÙÍøÂçºÜÈÝÒ×¶Áдʧ°Ü£¬Ì«´óÁËÓÖ¿ÉÄÜÓ°ÏìÓû§ÌåÑ飬Òò´ËÐèÒª·Ç³£Ð¡Ðĵش¦Àí¡£

ÎÒÃÇ»¹Óöµ½ÁíÒ»ÀàÎÊÌ⣬ijЩ¾ÆµêWi-Fi¶ÔʹÓ÷Ç80¡¢8080ºÍ443µÈ³£¼ûHTTP¶Ë¿ÚµÄ·þÎñ½øÐÐÁËÏÞÖÆ£¬¼´Ê¹·¢ËÍRequestÊÇÕý³£µÄ£¬·þÎñ¶ËÄܹ»Õý³£ÊÕµ½£¬µ«ÊÇResponseÈ´±»¾ÆµêÍøÂçproxy»ò·À»ðǽÀ¹½Ø£¬¿Í»§¶Ë×îÖÕ»áµÈ´ý¶ÁÈ¡³¬Ê±¡£

ÒÆ¶¯ÍøÂçºÍ´«Í³ÍøÂçÁíÒ»¸öºÜ´óµÄÇø±ðÊÇConnection MigrationÎÊÌâ¡£¶¨ÒåÒ»¸öSocketÁ¬½ÓÊÇËÄÔª×飨¿Í»§¶ËIP£¬¿Í»§¶ËPort£¬·þÎñ¶ËIP£¬·þÎñ¶ËPort£©£¬µ±Óû§µÄÍøÂçÔÚWIFI/4G/3G/2GÀàÐÍÖÐÇл»Ê±£¬Æä¿Í»§¶ËIP»á·¢Éú±ä»¯£¬Èç¹û´ËʱÕýÔÚ½øÐÐÍøÂç·þÎñͨѶ£¬ÄÇôSocketÁ¬½Ó×ÔÉíÒѾ­Ê§Ð§£¬×îÖÕÒ²»áµ¼ÖÂÍøÂç·þÎñʧ°Ü¡£

ÎÊÌâËÄ£º´«ÊäPayload¹ý´ó

´«µÄ¶à¾Í´«µÄÂý£¬Èç¹ûû×ö¹ýÌØ±ðÓÅ»¯£¬´«ÊäPayload¿ÉÄÜ»á±Èʵ¼ÊËùÐèÒªµÄ´óºÜ¶à£¬ÄÇô¶ÔÓÚÕûÌåÍøÂç·þÎñºÄʱӰÏì·Ç³£´ó¡£

ÎÊÌâÎ壺¸´ÔӵĹúÄÚÍâÍøÂçÇé¿ö

¹úÄÚÔËÓªÉÌ»¥ÁªºÍº£Íâ·ÃÎʹúÄÚ´ø¿íµÍ´«ÊäÂýµÄÎÊÌâÒ²ÁîÈËÄѷdz£Í·ÌÛ¡£

¿´ÏÂЯ³ÌAppÓû§µÄÍøÂçÀàÐÍ·Ö²¼£º

Wi-FiÓû§Õ¼±ÈÒѳ¬¹ý60%£¬4GÓû§Á¿Õý½Ó½ü3GÓû§Á¿£¬2GÓû§ÔÚÖð²½¼õÉÙ£¬Óû§µÄÍøÂçÔ½À´Ô½ºÃ¡£4G/3G/2GÍøÂçµÄ´ø¿íºÍÑÓ³Ù²î±ðºÜ´ó£¬¶ø´ø¿íºÍÑÓ³ÙÊÇÍøÂçÐÔÄܵÄÖØÒªÖ¸±ê£º

Õë¶ÔЯ³ÌAppÓû§µÄÍøÂç´ø¿íºÍÑÓ³Ù£¬ÎÒÃDzÉÑùÁ˺£ÄÚÍâ¸÷8¸ö³ÇÊеÄÊý¾Ý£º

×¢ÒâÍøÂç´ø¿íºÍÑÓ³Ù²¢Ã»ÓÐÖ±½ÓÏà¹ØÐÔ£¬´ø¿í¸ß²»Òâζ×ÅÑӳٵͣ¬ÑÓ³ÙÔÙµÍÒ²²»¿ÉÄÜ¿ì¹ý¹âËÙ¡£´ÓÉÏͼÎÒÃÇ¿ÉÒÔ¿´µ½º£ÄÚÍâ´ø¿íÏà²îºÜ´ó£¬µ«ÊÇÑÓ³Ù»ù±¾Ò»Ö¡£

Õë¶ÔÉÏÃæÕâЩÎÊÌ⣬ÔÚÍøÂ縴ÔÓ»·¾³ºÍ¹úÄÚÔËÓªÉÌ»¥Í¨×´¿öÎÞÄÜΪÁ¦µÄÇé¿öÏ£¬¾ÍÕë¶ÔÐÔµØÖðÒ»ÓÅ»¯£¬ÒÔÆÚ´ïµ½Ä¿±ê£ºÁ¬µÃÉÏ¡¢Á¬µÃ¿ì¡¢´«Êäʱ¼ä¶Ì¡£

ÓÅ»¯Êµ¼ùÒ»£ºÓÅ»¯DNS½âÎöºÍ»º´æ

ÓÉÓÚÎÒÃǵÄAppÍøÂç·þÎñÖ÷Òª»ùÓÚTCPÁ¬½Ó£¬ÎªÁ˽«DNSʱ¼ä½µÖÁ×îµÍ£¬ÎÒÃÇÄÚÖÃÁËServer IPÁÐ±í£¬¸ÃÁбí¿ÉÒÔÔÚAppÆô¶¯·þÎñÖÐÏ·¢¸üС£AppÆô¶¯ºóµÄÊ×´ÎÍøÂç·þÎñ»á´ÓServer IPÁбíÖÐȡһ¸öIPµØÖ·½øÐÐTCPÁ¬½Ó£¬Í¬Ê±DNS½âÎö»á²¢ÐнøÐУ¬DNS³É¹¦ºó£¬»á·µ»Ø×îÊʺÏÓû§ÍøÂçµÄServer IP£¬ÄÇôÕâ¸öServer IP»á±»¼ÓÈëµ½Server IPÁбíÖб»ÓÅÏÈʹÓá£

Server IPÁбíÊÇÓÐÈ¨ÖØ»úÖÆµÄ£¬DNS½âÎö·µ»ØµÄIPºÜÃ÷ÏÔ¾ßÓÐ×î¸ßµÄÈ¨ÖØ£¬Ã¿´Î´ÓServer IPÁбíÖÐÈ¡IP»áÈ¡È¨ÖØ×î¸ßµÄIP¡£ÁбíÖÐIPÈ¨ÖØÒ²ÊǶ¯Ì¬¸üÐµģ¬¸ù¾ÝÁ¬½Ó»òÕß·þÎñµÄ³É¹¦Ê§°ÜÀ´¶¯Ì¬µ÷Õû£¬ÕâÑù¼´Ê¹DNS½âÎöʧ°Ü£¬Óû§ÔÚʹÓÃÒ»¶Îʱ¼äºóÒ²»áѡȡµ½ÊʺϵÄServer IP¡£

ÓÅ»¯Êµ¼ù¶þ£ºÍøÂçÖÊÁ¿¼ì²â£¨¸ù¾ÝÍøÂçÖÊÁ¿À´¸Ä±ä²ßÂÔ£©

Õë¶ÔÍøÂçÁ¬½ÓºÍ¶Áд²Ù×÷µÄ³¬Ê±Ê±¼ä£¬ÎÒÃÇÌá³öÁËÍøÂçÖÊÁ¿¼ì²â»úÖÆ¡£Ä¿Ç°×öµ½µÄÊǸù¾ÝÓû§ÊÇÔÚ2G/3G/4G/Wi-FiµÄÍøÂç»·¾³À´ÉèÖò»Í¬µÄ³¬Ê±²ÎÊý£¬ÒÔ¼°ÍøÂç·þÎñµÄ²¢·¢ÊýÁ¿¡£2G/3G/4GÍøÂç»·¾³¶Ô²¢·¢TCPÁ¬½ÓµÄÊýÁ¿ÊÇÓÐÏÞÖÆµÄ£¨2GÍøÂçÏÂÔËÓªÉ̾­³£Ö»ÄÜÔÊÐíµ¥¸öHostÒ»¸öTCPÁ¬½Ó£©£¬Òò´ËÍøÂç·þÎñÖØÒª²ÎÊýÄܹ»¸ù¾ÝÍøÂçÖÊÁ¿×´¿öÀ´¶¯Ì¬É趨¶ÔÐÔÄܺÍÌåÑé¶¼·Ç³£ÖØÒª¡£

²»¹ýĿǰЯ³ÌAppÍøÂç00ÖÊÁ¿¼ì²âµÄÁ£¶È»¹±È½Ï´Ö£¬ÎÒÃÇÕýÔÚ×öµÄÓÅ»¯¾ÍÊÇÄܹ»²âËãµ½Óû§µ±Ç°µÄÍøÂçRTT£¬¸ù¾ÝRTTÖµÀ´ÉèÖòÎÊý£¬ÄÇ»á¸ü¼Ó׼ȷ¡£Facebook AppµÄ×ö·¨ÊÇHTTPÍøÂç·þÎñÔÚHTTP ResponseµÄHeaderÖÐÏ·¢ÁËÔ¤¹ÀµÄRTTÖµ£¬¿Í»§¶Ë¸ù¾ÝÕâ¸öRTTÖµ±ãÄܹ»Éè¼Æ²»Í¬µÄ²úÆ·ºÍ·þÎñ²ßÂÔ¡£

ÓÅ»¯Êµ¼ùÈý£ºÌá¹©ÍøÂç·þÎñÓÅÏȼ¶ºÍÒÀÀµ»úÖÆ

ÓÉÓÚÍøÂç¶Ô²¢·¢TCPÁ¬½ÓµÄÏÞÖÆ£¬¾ÍÐèÒªÄܹ»¿ØÖƲ»±ØÒªµÄÍøÂç·þÎñÊýÁ¿£¬Òò´ËÎÒÃÇÔÚͨѶģ¿éÖмÓÈëÁËÍøÂç·þÎñÓÅÏȼ¶ºÍÒÀÀµ»úÖÆ¡£·¢ËÍÒ»¸öÍøÂç·þÎñ£¬¿ÉÒÔÉèÖÃËüµÄÓÅÏȼ¶£¬¸ßÓÅÏȼ¶µÄ·þÎñÓÅÏÈʹÓó¤Á¬½Ó£¬ µÍÓÅÏȼ¶µÄ¾ÍÊÇÓöÌÁ¬½Ó¡£³¤Á¬½ÓÓÉÓÚÊÇ´Ó³¤Á¬½Ó³ØÖÐÈ¡µ½µÄTCPÁ¬½Ó£¬Òò´Ë½ÚÊ¡ÁËTCPÁ¬½Óʱ¼ä¡£

ÍøÂç·þÎñÒÀÀµ»úÖÆÊÇÖ¸¿ÉÒÔÉèÖÃÊý¸ö·þÎñµÄÒÀÀµ¹ØÏµ£¬¼´Ö÷´Ó·þÎñ¡£¼ÙÉèÒ»¸öAppÒ³ÃæÒª·¢¶à¸ö·þÎñ£¬Ö÷·þÎñ³É¹¦µÄÇé¿öÏ£¬²ÅÈ¥·¢×Ó·þÎñ£¬Èç¹ûÖ÷·þÎñʧ°ÜÁË£¬×Ô·þÎñ¾ÍÎÞÐèÔÙ¹ØÐijɹ¦»òÕßʧ°Ü£¬»áÖ±½Ó±»È¡Ïû¡£Èç¹ûÖ÷·þÎñ³É¹¦ÁË£¬ÄÇô×Ó·þÎñ¾Í»á×Ô¶¯´¥·¢¡£

ÓÅ»¯Êµ¼ùËÄ£ºÌá¹©ÍøÂç·þÎñÖØ·¢»úÖÆ

ÒÆ¶¯ÍøÂç²»Îȶ¨£¬Èç¹ûÒ»´ÎÍøÂç·þÎñʧ°Ü£¬¾ÍÁ¢¿Ì·´À¡¸øÓû§Äãʧ°ÜÁË£¬ÌåÑé²¢²»ÓѺá£ÎÒÃÇÌṩÁËÍøÂç·þÎñÖØ·¢»úÖÆ£¬¼´µ±ÍøÂç·þÎñÔÚÁ¬½Óʧ°Ü¡¢Ð´Requestʧ°Ü¡¢¶ÁResponseʧ°Üʱ×Ô¶¯ÖØ·¢·þÎñ£»³¤Á¬½Óʧ°Üʱ¾ÍÓöÌÁ¬½ÓÀ´×öÖØ·¢²¹³¥£¬¶ÌÁ¬½Ó·þÎñʧ°Üʱµ±È»»¹ÊÇÓöÌÁ¬½ÓÀ´²¹³¥¡£ÕâÖÖ»úÖÆÔö¼ÓÁËÓû§ÌåÑéµ½µÄ·þÎñ³É¹¦¸ÅÂÊ¡£

µ±È»²»ÊÇËùÓÐÍøÂç·þÎñ¶¼¿ÉÒÔÖØ·¢£¬ÀýÈ統϶©µ¥·þÎñÔÚ¶ÁÈ¡Responseʧ°Üʱ£¬¾Í²»ÄÜÖØ·¢£¬ÒòΪϵ¥ÇëÇó¿ÉÄÜÒѾ­µ½´ï·þÎñÆ÷£¬´ËÊ±ÖØ·¢·þÎñ¿ÉÄÜ»áÔì³ÉÖØ¸´¶©µ¥£¬ËùÒÔÎÒÃÇÌí¼ÓÁËÖØ·¢·þÎñ¿ª¹Ø£¬ÒµÎñ¶Î¿ÉÒÔ×ÔÐпØÖÆÊÇ·ñÐèÒª¡£

ÓÅ»¯Êµ¼ùÎ壺¼õÉÙÊý¾Ý´«ÊäÁ¿

ÎÒÃÇÓÅ»¯ÁËTCP·þÎñPayloadÊý¾ÝµÄ¸ñʽºÍÐòÁл¯/·´ÐòÁл¯Ëã·¨£¬´Ó×Ô¶¨Òå¸ñʽת»»µ½ÁËProtocol BufferÊý¾Ý¸ñʽ£¬Ð§¹û·Ç³£Ã÷ÏÔ¡£ÐòÁл¯/·´ÐòÁÐËã·¨Ò²×öÁ˵÷Õû£¬Èç¹û´ó¼ÒʹÓÃJSONÊý¾Ý¸ñʽ£¬Ñ¡ÓÃÒ»¸ö¸ßЧµÄ·´ÐòÁл¯Ëã·¨£¬Õë¶ÔÕæÊµÒµÎñÊý¾Ý½øÐвâÊÔ£¬ÊÕÒæÃ÷ÏÔ¡£

ͼƬ¸ñʽÓÅ»¯ÔÚÒµ½çÒÑÓгÉÊìµÄ·½°¸£¬ÀýÈçFacebookʹÓõÄWebPͼƬ¸ñʽ£¬ÒѾ­±»¹úÄÚÖÚ¶àAppʹÓá£

ÓÅ»¯Êµ¼ùÁù£ºÓÅ»¯º£ÍâÍøÂçÐÔÄÜ

º£ÍâÍøÂçÐÔÄܵÄÓÅ»¯ÊÖ¶ÎÖ÷ÒªÊÇͨ¹ý»¨Ç®£¬ÀýÈçCDN¼ÓËÙ£¬Ìá¸ß´ø¿í£¬ÊµÏÖ¶¯¾²×ÊÔ´·ÖÀ룬¶ÔÓÚAppÖеÄHybridÄ£¿éÓÅ»¯Ð§¹û·Ç³£Ã÷ÏÔ¡£

¾­¹ýÉÏÃæµÄÓÅ»¯ÊֶΣ¬Ð¯³ÌAppµÄÍøÂçÐÔÄÜ´ÓÓÅ»¯Ö®³õµÄV5.9°æ±¾µ½ÏÖÔÚV6.4°æ±¾£¬·þÎñ³É¹¦ÂÊÒѾ­ÓÐÁË´ó·ùÌáÉý£¬ºËÐÄ·þÎñ³É¹¦Âʶ¼ÔÚ99%ÒÔÉÏ¡£×¢ÒâÕâÊǿͻ§¶Ë²É¼¯µÄ·þÎñ³É¹¦ÂÊ£¬¼´Óû§¸ÐÖªµ½µÄÍøÂç·þÎñ³É¹¦ÂÊ£¬Ê§°ÜÁ¿Öаüº¬Á˿ͻ§¶ËÎÞÍøÂçºÍ·þÎñ¶ËµÄ´íÎó¡£ÍøÂç·þÎñƽ¾ùºÄʱϽµÁË150-200ms¡£ÎÒÃǵÄÄ¿±êÊdzý2GÍøÂçÍ⣬ºËÐÄÒµÎñµÄÍøÂç·þÎñ³É¹¦Âʶ¼Äܹ»´ïµ½Èý¸ö¾Å¡£

Êý¾Ý¸ñʽÓÅ»¯µÄЧ¹ûÓÈÆäÃ÷ÏÔ£¬²ÉÓÃеÄProtocol BufferÊý¾Ý¸ñʽ+GzipѹËõºóµÄPayload´óС½µµÍÁË15%-45%¡£Êý¾ÝÐòÁл¯ºÄʱϽµÁË80%-90%¡£

¾­ÀúÁËÕâ°ëÄêµÄÍøÂçÐÔÄÜÓÅ»¯£¬Ìå»á×îÉîµÄ¾ÍÊÇLogging»ù´¡ÉèÊ©µÄÖØÒªÐÔ¡£Èç¹ûÎÒÃÇûÓÐÍêÕû¶Ëµ½¶Ë¼à¿ØºÍͳ¼ÆµÄÄÜÁ¦£¬ÐÔÄÜÓÅ»¯Ö»ÄÜÊÇäÈËÃþÏó¡£Logging»ù´¡ÉèÊ©ÐèÒª°üÀ¨¿Í»§¶ËÂñµã²É¼¯¡¢·þÎñ¶ËT+0´¦Àí¡¢ºóÆÚ·ÖÎö¡¢Portalչʾ¡¢×Ô¶¯¸æ¾¯µÈ¶àÖÖ¹¦ÄÜ£¬ÕâÒ²²»Êǵ¥´¿µÄ¿Í»§¶Ë¿ò¼ÜÍŶӿÉÒÔÍê³ÉµÄ£¬¶øÐèÒª¹«Ë¾¶à¸ö²¿ÃźÏ×÷Íê³É¡£

Я³Ì»ùÓÚElastic Search¿ª·¢ÁËÍøÂçʵʱ¼à¿ØPortal£¬Äܹ»ÊµÊ±¼à¿ØËùÓеÄÍøÂç·þÎñ£¬°üÀ¨¶àÖÖά¶È£¬¿ÉÒÔ¸ú×Ùµ½µ¥¸öÄ¿±êÓû§µÄËùÓÐÍøÂçÇëÇóÐÅÏ¢¡£

Óû§µÄÐÔÄÜÊý¾Ý¶¼±»Åçµ½HaddopºÍHive´óÊý¾Ýƽ̨£¬ÎÒÃÇ¿ÉÒÔÇáËÉÖÆ¶¨²¢·ÖÎöÍøÂçÐÔÄÜKPI£¬ÀýÈç·þÎñ³É¹¦ÂÊ¡¢·þÎñºÄʱ¡¢Á¬½Ó³É¹¦ÂʺÍÁ¬½ÓºÄʱµÈ£¬ÎÒÃÇ×öµ½ÁËÔÚʱ¼ä¡¢ÍøÂçÀàÐÍ¡¢³ÇÊС¢³¤¶ÌÁ¬½Ó¡¢·þÎñºÅµÈ¶àγ¶ÈµÄ·ÖÎö¡£ÏÂͼÊÇÎÒÃǵÄÍøÂçÐÔÄÜKPI Portal£¬¿ÉÒԲ鿴ÈÎÒ»·þÎñµÄ³É¹¦ÂÊ£¬·þÎñºÄʱ¡¢²Ù×÷ϵͳ¡¢°æ±¾µÈ¸÷ÖÖÐÅÏ¢£¬¶ÔÓÚij¸ö·þÎñµÄÐÔÄÜ·ÖÎö·Ç³£ÓÐÓá£

×îºó¿´¿´Òµ½çÍøÂçÐÔÄÜÓÅ»¯µÄм¼Êõ·½Ïò£¬Ä¿Ç°×îÓÐDZÁ¦µÄÊÇGoogleÍÆ³öµÄSPDYºÍQUICЭÒé¡£

SPDYÒѳÉΪHTTP/2.0 Draft£¬ÓÐÏ£Íû³ÉΪδÀ´HTTPЭÒéµÄбê×¼¡£HTTP/2.0ÌṩÁ˺ܶàÓÕÈ˵ÄÌØÐÔ£¨¶à·¸´Óá¢ÇëÇóÓÅÏȼ¶¡¢Ö§³Ö·þÎñ¶ËÍÆËÍ¡¢Ñ¹ËõHTTP Header¡¢Ç¿ÖÆSSL´«Êä¡¢¶Ô·þÎñ¶Ë³ÌÐò͸Ã÷µÈ£©¡£¹úÄںܶàApp°üÀ¨ÃÀÍÅ¡¢ÌÔ±¦¡¢Ö§¸¶±¦¶¼ÒѾ­ÔÚ³¢ÊÔʹÓÃSPDYЭÒ飬TwitterµÄÐÔÄܲâÊÔ±íÃ÷¿ÉÒÔ½µµÍ30%µÄÍøÂçÑÓ³Ù£¬Ð¯³ÌÒ²×öÁËÐÔÄܲâÊÔ£¬ÓÉÓÚºÍTCPÐÔÄܲî¾à²»Ã÷ÏÔ£¬ÔÝδÔÚÉú²úÉÏʹÓá£

QUICÊÇ»ùÓÚUDPʵÏÖµÄÐÂÍøÂçЭÒ飬ÓÉÓÚTCPЭÒéʵÏÖÒѾ­ÄÚÖÃÔÚ²Ù×÷ϵͳºÍ·ÓÉÆ÷ÄÚºËÖУ¬GoogleÎÞ·¨Ö±½Ó¸Ä½øTCP£¬Òò´Ë»ùÓÚÎÞÁ¬½ÓµÄUDPЭÒéÀ´Éè¼ÆÈ«ÐÂЭÒé¿ÉÒÔ»ñµÃºÜ¶àºÃ´¦¡£Ê×ÏÈÄܹ»´ó·ù¼õÉÙÁ¬½Óʱ¼ä£¬QUIC¿ÉÒÔÔÚ·¢ËÍÊý¾ÝǰֻÐèÒª0 RTTʱ¼ä£¬¶ø´«Í³TCP/TLSÁ¬½ÓÖÁÉÙÐèÒª1-3 RTTʱ¼ä²ÅÄÜÍê³ÉÁ¬½Ó£¨¼´Ê¹²ÉÓÃFast-Open TCP»òTLS Snapshot£©£»Æä´Î¿ÉÒÔ½â¾öTCP Head-of-Line BlockingÎÊÌ⣬ͨ³£Ç°Ò»¸öTCP Packet·¢Ëͳɹ¦Ç°»áÓµÈûºóÃæµÄPacket·¢ËÍ£¬¶øQUIC¿ÉÒÔ±ÜÃâÕâÑùµÄÎÊÌ⣻QUICÒ²ÓиüºÃµÄÒÆ¶¯ÍøÂç»·¾³ÏÂÓµÈû¿ØÖÆËã·¨£»ÐµÄÁ¬½Ó·½Ê½Ò²´ó·ù¼õÉÙÁËConnectiont MigrationÎÊÌâµÄÓ°Ïì¡£

Ëæ×ÅÕâЩÐÂЭÒéµÄÖð½¥³ÉÊ죬ÏàÐÅδÀ´Äܹ»½øÒ»²½Ìá¸ßÒÆ¶¯¶ËµÄÍøÂç·þÎñÐÔÄÜ£¬ÖµµÃ´ó¼Ò±£³Ö¹Ø×¢¡£

   
3325 ´Îä¯ÀÀ       32
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 12-11[±±¾©]
LLM´óÄ£ÐÍÓëÖÇÄÜÌ忪·¢ÊµÕ½ 12-18[±±¾©]
ǶÈëʽÈí¼þ²âÊÔ 12-25[±±¾©]
AIÔ­ÉúÓ¦ÓõÄ΢·þÎñ¼Ü¹¹ 1-9[±±¾©]
AI´óÄ£Ðͱàд¸ßÖÊÁ¿´úÂë 1-14[±±¾©]
ÐèÇó·ÖÎöÓë¹ÜÀí 1-22[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ

ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ