ËùÔÚµÄλÖ㺠mysql >> mysqlÊг¡ >> Daprʵսһɨä

Daprʵսһɨä

1.Daprɨä

1.1ʲôÊÇRPC

RPC(RemoteProcedureCall)ÊÇÔ¶³Ì¹ý³Ìµ÷Ó㬱ÈÈç˵ÏÖÔÚÓÐÁ½Ì¨·þÎñÆ÷A,B£¬Ò»¸öÔÚA·þÎñÆ÷ÉϵÄÓ¦ÓÃÏëÒªµ÷ÓÃB·þÎñÆ÷ÉϵÄÓ¦ÓÃÌṩµÄij¸ö£¬ÓÉÓÚ²»ÔÚÁ½¸ö·½·¨²»ÔÚÒ»¸öÄÚ´æ¿Õ¼ä£¬²»ÄÜÖ±½Óµ÷Óã¬ÐèҪͨ¹ýÍøÂç±í´ïµ÷ÓõÄÓïÒåºÍ´«´ïµ÷ÓõÄÊý¾Ý¡£³£´æÔÚÓÚ·Ö²¼Ê½ÏµÍ³ÖС£

1.2ΪʲôÓÐÁËHttp»¹ÒªRPC£¿

RPC¸úHTTP²»ÊǶÔÁ¢Ã棬RPCÖпÉÒÔʹÓÃHTTP×÷ΪͨѶЭÒé¡£RPCÊÇÒ»ÖÖÉè¼Æ¡¢ÊµÏÖ¿ò¼Ü£¬Í¨Ñ¶Ð­ÒéÖ»ÊÇÆäÖÐÒ»²¿·Ö¡£HTTP½Ó¿ÚÊÇÔÚ½Ó¿Ú²»¶à¡¢ÏµÍ³Óëϵͳ½»»¥½ÏÉÙµÄÇé¿öÏ£¬½â¾öÐÅÏ¢¹Âµº³õÆÚ³£Ê¹ÓõÄÒ»ÖÖͨÐÅÊֶΣ»Óŵã¾ÍÊǼòµ¥¡¢Ö±½Ó¡¢¿ª·¢·½±ã¡£

HTTPЭÒéÊÇÎÞ״̬µÄ£¬Ã¿´ÎͨÐŶ¼ÒªÏñHTTPÒ»ÑùÈ¥3´ÎÎÕÊÖ

RPCÊdz¤Á¬½Ó

RPC¿ò¼ÜÒ»°ã¶¼ÓÐ×¢²áÖÐÐÄ£¬ÓзḻµÄ¼à¿Ø¹ÜÀí£»·¢²¼¡¢ÏÂÏß½Ó¿Ú¡¢¶¯Ì¬À©Õ¹µÈ£¬¶Ôµ÷Ó÷½À´ËµÊÇÎÞ¸ÐÖª¡¢Í³Ò»»¯µÄ²Ù×÷

×îºó¾ÍÊÇ×î½üÁ÷ÐеķþÎñ»¯¼Ü¹¹¡¢·þÎñ»¯ÖÎÀí£¬RPC¿ò¼ÜÊÇÒ»¸öÇ¿Á¦µÄÖ§³Å¡£

1.3RPCÖÐÒª½â¾öµÄÎÊÌ⣺

½¨Á¢Í¨ÐÅ£ºÔÚ¿Í»§¶ËÓë·þÎñ¶Ë½¨Á¢ÆðÊý¾Ý´«ÊäͨµÀ£¬´ó¶¼ÊÇTCPÁ¬½Ó£¨gRPCʹÓÃÁËHTTP2£©¡£

Ñ°Ö·£ºA·þÎñÆ÷ÉϵÄÓ¦ÓÃÐèÒª¸æËßRPC¿ò¼Ü£ºB·þÎñÆ÷µØÖ·¡¢¶Ë¿Ú£¬µ÷Óú¯ÊýÃû³Æ¡£ËùÒÔ±ØÐëʵÏÖ´ýµ÷Ó÷½·¨µ½callIDµÄÓ³Éä¡£

ÐòÁл¯Óë·´ÐòÁл¯£ºÓÉÓÚÍøÂçЭÒ鶼ÊǶþ½øÖƵģ¬ËùÒÔµ÷Ó÷½·¨µÄ²ÎÊýÔÚ½øÐд«µÝʱÊ×ÏÈÒªÐòÁл¯³É¶þ½øÖÆ£¬B·þÎñÆ÷ÊÕµ½ÇëÇóºóÒªÔÙ¶Ô²ÎÊý½øÐз´ÐòÁл¯¡£»Ö¸´ÎªÄÚ´æÖеıí´ï·½Ê½£¬ÕÒµ½¶ÔÓ¦µÄ·½·¨½øÐб¾µØµ÷Ó㬵õ½·µ»ØÖµ¡£·µ»ØÖµ´ÓBµ½AµÄ´«ÊäÈÔÒª¾­¹ýÐòÁл¯Óë·´ÐòÁл¯µÄ¹ý³Ì¡£

1.4HTTP¸÷°æ±¾¼ò½é

HTTP1.0:¹æ¶¨ä¯ÀÀÆ÷Óë·þÎñÆ÷Ö»±£³Ö¶ÌÔݵÄÁ¬½Ó£¬ä¯ÀÀÆ÷µÄÿ´ÎÇëÇó¶¼ÐèÒªÓë·þÎñÆ÷½¨Á¢Ò»¸öTCPÁ¬½Ó£¬·þÎñÆ÷Íê³ÉÇëÇó´¦ÀíºóÁ¢¼´¶Ï¿ªTCPÁ¬½Ó£¬·þÎñÆ÷²»¸ú×Ùÿ¸ö¿Í»§Ò²²»¼Ç¼¹ýÈ¥µÄÇëÇó¡£Á¬½ÓÎÞ·¨¸´ÓÃ

HTTP1.1:

¸´ÓÃÁ¬½Ó£¨keep-alive£©

»º´æ´¦Àí

Éí·ÝÈÏÖ¤£¬×´Ì¬¹ÜÀí

HTTP1.1״̬´úÂë¼°Æ京Òå

״̬´úÂëÓÐÈýλÊý×Ö×é³É£¬µÚÒ»¸öÊý×Ö¶¨ÒåÁËÏìÓ¦µÄÀà±ð£¬ÇÒÓÐÎåÖÖ¿ÉÄÜÈ¡Öµ£º

1xx£ºÖ¸Ê¾ÐÅÏ¢--±íʾÇëÇóÒѽÓÊÕ£¬¼ÌÐø´¦Àí

2xx£º³É¹¦--±íʾÇëÇóÒѱ»³É¹¦½ÓÊÕ¡¢Àí½â¡¢½ÓÊÜ

3xx£ºÖض¨Ïò--ÒªÍê³ÉÇëÇó±ØÐë½øÐиü½øÒ»²½µÄ²Ù×÷

4xx£º¿Í»§¶Ë´íÎó--ÇëÇóÓÐÓï·¨´íÎó»òÇëÇóÎÞ·¨ÊµÏÖ

5xx£º·þÎñÆ÷¶Ë´íÎó--·þÎñÆ÷δÄÜʵÏֺϷ¨µÄÇëÇó

HTTP2.0:

¶à·¸´ÓÃ(Multiplexing)

¶à¸öRequest¹²ÓÃÒ»¸öÁ¬½Ó

¶þ½øÖÆ·ÖÖ¡

HTTP1.X¶¼ÊÇ»ùÓÚÎı¾½âÎö£¬¶øÒòΪÎı¾±íÏÖÐÎʽµÄ¶àÑùÐÔ£¬»ùÓÚÎı¾Ð­ÒéµÄ¸ñʽ½âÎöÌìÈ»´æÔÚ½¡×³ÐÔÎÊÌâ¡£¶ø²ÉÓöþ½øÖƸñʽºóʵÏÖ·½±ãÇÒ½¡×³¡£

Êײ¿Ñ¹Ëõ£¨HeaderCompression£©

HTTP/1.1²¢²»Ö§³ÖHTTPÊײ¿Ñ¹Ëõ£¬Îª´ËSPDYºÍHTTP/2Ó¦Ô˶øÉú£¬SPDYʹÓõÄÊÇͨÓõÄDEFLATEËã·¨£¬¶øHTTP/2ÔòʹÓÃÁËרÃÅΪÊײ¿Ñ¹Ëõ¶øÉè¼ÆµÄHPACKËã·¨¡£

·þÎñ¶ËÍÆËÍ£¨ServerPush£©

·þÎñ¶ËÍÆËÍÊÇÒ»ÖÖÔÚ¿Í»§¶ËÇëÇó֮ǰ·¢ËÍÊý¾ÝµÄ»úÖÆ¡£ÔÚHTTP/2ÖУ¬·þÎñÆ÷¿ÉÒÔ¶Ô¿Í»§¶ËµÄÒ»¸öÇëÇó·¢ËͶà¸öÏìÓ¦¡£ServerPushÈÃHTTP1.xʱ´úʹÓÃÄÚǶ×ÊÔ´µÄÓÅ»¯ÊֶαäµÃûÓÐÒâÒ壻Èç¹ûÒ»¸öÇëÇóÊÇÓÉÄãµÄÖ÷Ò³·¢ÆðµÄ£¬·þÎñÆ÷ºÜ¿ÉÄÜ»áÏìÓ¦Ö÷Ò³ÄÚÈÝ¡¢logoÒÔ¼°Ñùʽ±í£¬ÒòΪËüÖªµÀ¿Í»§¶Ë»áÓõ½ÕâЩ¶«Î÷¡£ÕâÏ൱ÓÚÔÚÒ»¸öHTMLÎĵµÄÚ¼¯ºÏÁËËùÓеÄ×ÊÔ´£¬²»¹ýÓëÖ®Ïà±È£¬·þÎñÆ÷ÍÆËÍ»¹ÓÐÒ»¸öºÜ´óµÄÓÅÊÆ£º¿ÉÒÔ»º´æ£¡Ò²ÈÃÔÚ×ñѭͬԴµÄÇé¿öÏ£¬²»Í¬Ò³ÃæÖ®¼ä¿ÉÒÔ¹²Ïí»º´æ×ÊÔ´³ÉΪ¿ÉÄÜ¡£

1.5ʲôÊÇHTTPS

HTTPЭÒé´«ÊäµÄÊý¾Ý¶¼ÊÇδ¼ÓÃܵÄ.ΪÁ˱£Ö¤ÕâЩÒþ˽Êý¾ÝÄܼÓÃÜ´«Ê䣬ÓÚÊÇÍø¾°¹«Ë¾Éè¼ÆÁËSSL£¨SecureSocketsLayer£©Ð­ÒéÓÃÓÚ¶ÔHTTPЭÒé´«ÊäµÄÊý¾Ý½øÐмÓÃÜ£¬´Ó¶ø¾Íµ®ÉúÁËHTTPS¡£ÏÖÔÚµÄHTTPS¶¼ÊÇÓõÄTLSЭÒ飬µ«ÊÇÓÉÓÚSSL³öÏÖµÄʱ¼ä±È½ÏÔ磬²¢ÇÒÒÀ¾É±»ÏÖÔÚä¯ÀÀÆ÷ËùÖ§³Ö£¬Òò´ËSSLÒÀÈ»ÊÇHTTPSµÄ´úÃû´Ê¡£

HTTPSĬÈ϶˿ںÅÊÇ.

1.6ʲôÊÇgRPC

gRPCÊǹȸ迪ԴµÄÒ»¸öRPC¿ò¼Ü£¬ÃæÏòÒƶ¯ºÍHTTP/2Éè¼Æ¡£

ÄÚÈݽ»»»¸ñʽ²ÉÓÃProtoBuf(GoogleProtocolBuffers)£¬¿ªÔ´ÒѾã¬ÌṩÁËÒ»ÖÖÁé»î¡¢¸ßЧ¡¢×Ô¶¯ÐòÁл¯½á¹¹Êý¾ÝµÄ»úÖÆ£¬×÷ÓÃÓëXML£¬JsonÀàËÆ£¬µ«Ê¹Óöþ½øÖÆ£¬£¨·´£©ÐòÁл¯Ëٶȿ죬ѹËõЧÂʸߡ£

´«ÊäЭÒé²ÉÓÃ


תÔØÇë×¢Ã÷£ºhttp://www.aierlanlan.com/rzdk/1652.html