| Ê×ÏȽéÉÜÒ»ÏÂЯ³Ì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ÎÊÌâµÄÓ°Ïì¡£
Ëæ×ÅÕâЩÐÂÐÒéµÄÖð½¥³ÉÊ죬ÏàÐÅδÀ´Äܹ»½øÒ»²½Ìá¸ßÒÆ¶¯¶ËµÄÍøÂç·þÎñÐÔÄÜ£¬ÖµµÃ´ó¼Ò±£³Ö¹Ø×¢¡£ |