ÀÖÓãµç¾º



½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

ÉîÈëÀí½â RPC ÏûϢЭÒéÉè¼Æ

¸üÐÂʱ¼ä:2018Äê10ÔÂ24ÈÕ15ʱ39·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

¡¡¡¡±¾½ÚÎÒÃÇ¿ªÊ¼½²½â RPC µÄÏûϢЭÒéÉè¼Æ±³ºóµÄ»ù±¾Ô­Àí£¬Á˽â RPC µÄЭÒ鿪·¢±³ºóÓÐÄÄЩÐèÒª¿¼ÂǵĻù±¾µã¡£ÔÚͨÏþÔ­ÀíÖ®ºó£¬ÎÒÃǾͿÉÒÔ×Ô¼ºÉè¼ÆÒ»Ì×ЭÒéÀ´¿ª·¢ÊôÓÚ×Ô¼ºµÄ RPC ϵͳ¡£

¡¡¡¡±¾½ÚÖ÷񻃾¼°µÄ֪ʶµãºÍËüÃÇÖ®¼ûµÄ¹ØÏµÈçÏÂͼ£º

¡¡¡¡

¡¡¡¡¶ÔÓÚÒ»´®ÏûÏ¢Á÷£¬ÎÒÃDZØÐëÄÜÈ·¶¨ÏûÏ¢±ß½ç£¬ÌáÈ¡³öµ¥ÌõÏûÏ¢µÄ×Ö½ÚÁ÷Ƭ¶Î£¬È»ºó¶ÔÕâ¸öƬ¶Î°´ÕÕÒ»¶¨µÄ¹æÔò½øÐз´ÐòÁл¯À´Éú³ÉÏàÓ¦µÄÏûÏ¢¶ÔÏó¡£

¡¡¡¡ÏûÏ¢±íʾָµÄÊÇÐòÁл¯ºóµÄÏûÏ¢×Ö½ÚÁ÷ÔÚÖ±¹ÛÉϵıíÏÖÐÎʽ£¬Ëü¿´ÆðÀ´ÊǶÔÈËÀàÓѺû¹ÊǶԼÆËã»úÓѺá£Îı¾ÐÎʽ¶ÔÈËÀàÓѺ㬶þ½øÖÆÐÎʽ¶Ô¼ÆËã»úÓѺá£

¡¡¡¡Ã¿¸öÏûÏ¢¶¼ÓÐÆäÄÚ²¿×ֶνṹ£¬½á¹¹¹¹³ÉÁËÏûÏ¢ÄÚ²¿µÄÂß¼­¹æÔò£¬³ÌÐòÒª°´Õսṹ¹æÔòÀ´¾ö¶¨×Ö¶ÎÐòÁл¯µÄ˳Ðò¡£

¡¡¡¡½ÓÏÂÀ´£¬ÎÒÃdzõ²½Ïêϸ²ð½â¡£

¡¡¡¡ÏûÏ¢±ß½ç

¡¡¡¡RPC ÐèÒªÔÚÒ»Ìõ TCP Á´½ÓÉϽøÐжà´ÎÏûÏ¢´«µÝ¡£ÔÚÁ¬ÐøµÄÁ½ÌõÏûÏ¢Ö®¼ä±ØÐëÓÐÃ÷È·µÄ·Ö¸î¹æÔò£¬ÒÔ±ã½ÓÊÕ¶Ë¿ÉÒÔ½«ÏûÏ¢·Ö¸î¿ªÀ´£¬ÕâÀïµÄ½ÓÊÕ¶Ë¿ÉÒÔÊÇ RPC ·þÎñÆ÷½ÓÊÕÇëÇó£¬Ò²¿ÉÒÔÊÇ RPC ¿Í»§¶Ë½ÓÊÕÏìÓ¦¡£

¡¡¡¡»ùÓÚ TCP Á´½ÓÖ®Éϵĵ¥ÌõÏûÏ¢Èç¹û¹ý´ó£¬¾Í»á±»ÍøÂçЭÒéÕ»²ð·ÖΪ¶à¸öÊý¾Ý°ü½øÐд«ËÍ¡£Èç¹ûÏûÏ¢¹ýС£¬ÍøÂçЭÒéÕ»¿ÉÄܻὫ¶à¸öÏûÏ¢×éºÏ³ÉÒ»¸öÊý¾Ý°ü½øÐз¢ËÍ¡£¶ÔÓÚ½ÓÊÕ¶ËÀ´ËµËü¿´µ½µÄÖ»ÊÇÒ»´®´®µÄ×Ö½ÚÊý×飬Èç¹ûûÓÐÃ÷È·µÄÏûÏ¢±ß½ç¹æÔò£¬½ÓÊÕ¶ËÊÇÎÞ´ÓÖªµÀÕâÒ»´®×Ö½ÚÊý×龿¾¹Êǰüº¬¶àÌõÏûÏ¢»¹ÊÇÖ»ÊÇijÌõÏûÏ¢µÄÒ»²¿·Ö¡£

¡¡¡¡±È½Ï³£ÓõÄÁ½ÖַָʽÊÇÌØÊâ·Ö¸î·û·¨ºÍ³¤¶Èǰ׺·¨¡£

¡¡¡¡

¡¡¡¡ÏûÏ¢·¢ËͶËÔÚÿÌõÏûÏ¢µÄĩβ׷¼ÓÒ»¸öÌØÊâµÄ·Ö¸î·û£¬²¢ÇÒ±£Ö¤ÏûÏ¢ÖмäµÄÊý¾Ý²»Äܰüº¬ÌØÊâ·Ö¸î·û¡£±ÈÈç×îΪ³£¼ûµÄ·Ö¸î·ûÊÇ ¡£µ±½ÓÊն˱éÀú×Ö½ÚÊý×éʱ·¢ÏÖÁË £¬¾ÍÁ¢¼´¿ÉÒԶ϶¨ ֮ǰµÄ×Ö½ÚÊý×éÊÇÒ»ÌõÍêÕûµÄÏûÏ¢£¬¿ÉÒÔ´«µÝµ½ÉϲãÂß¼­¼ÌÐø½øÐд¦Àí¡£HTTP ºÍ Redis ЭÒé¾Í´óÁ¿Ê¹ÓÃÁË ·Ö¸î·û¡£´ËÖÖÏûÏ¢Ò»°ãÒªÇóÏûÏ¢ÌåµÄÄÚÈÝÊÇÎı¾ÏûÏ¢¡£

¡¡¡¡

¡¡¡¡ÏûÏ¢·¢ËͶËÔÚÿÌõÏûÏ¢µÄ¿ªÍ·Ôö¼ÓÒ»¸ö 4 ×Ö½Ú³¤¶ÈµÄÕûÊýÖµ£¬±ê¼ÇÏûÏ¢ÌåµÄ³¤¶È¡£ÕâÑùÏûÏ¢½ÓÊÜÕßÊ×ÏȶÁÈ¡µ½³¤¶ÈÐÅÏ¢£¬È»ºóÔÙ¶ÁÈ¡ÏàÓ¦³¤¶ÈµÄ×Ö½ÚÊý×é¾Í¿ÉÒÔ½«Ò»¸öÍêÕûµÄÏûÏ¢·ÖÀë³öÀ´¡£´ËÖÖÏûÏ¢±È½Ï³£ÓÃÓÚ¶þ½øÖÆÏûÏ¢¡£

¡¡¡¡»ùÓÚÌØÊâ·Ö¸î·û·¨µÄÓŵãÔÚÓÚÏûÏ¢µÄ¿É¶ÁÐԱȽÏÇ¿£¬¿ÉÒÔÖ±½Ó¿´µ½ÏûÏ¢µÄÎı¾ÄÚÈÝ£¬È±µãÊDz»Êʺϴ«µÝ¶þ½øÖÆÏûÏ¢£¬ÒòΪ¶þ½øÖƵÄ×Ö½ÚÊý×éÀïÃæºÜÈÝÒ×¾Íð³öÁ¬ÐøµÄÁ½¸ö×Ö½ÚÄÚÈÝÕýºÃ¾ÍÊÇ ·Ö¸î·ûµÄ ascii Öµ¡£Èç¹ûÐèÒª´«µÝµÄ»°£¬Ò»°ãÊǶԶþ½øÖƽøÐÐ base64 ±àÂëת±ä³ÉÆÕͨÎı¾ÏûÏ¢ÔÙ½øÐд«ËÍ¡£

¡¡¡¡»ùÓÚ³¤¶Èǰ׺·¨µÄÓŵãºÍȱµãÍ¬ÌØÊâ·Ö¸î·û·¨ÕýºÃÊÇÏà·´µÄ¡£³¤¶Èǰ׺·¨ÒòΪÊÊÓÃÓÚ¶þ½øÖÆÐ­Ò飬ËùÒԿɶÁÐԺܲî¡£µ«ÊǶԴ«µÝµÄÄÚÈݱ¾ÉíûÓÐÌØÊâÏÞÖÆ£¬Îı¾ºÍÄÚÈݽԿÉÒÔ´«Ê䣬²»ÐèÒª½øÐÐÌØÊâ´¦Àí¡£HTTP ЭÒéµÄ Content-Length Í·ÐÅÏ¢ÓÃÀ´±ê¼ÇÏûÏ¢ÌåµÄ³¤¶È£¬Õâ¸öÒ²¿ÉÒÔ¿´³ÉÊdz¤¶Èǰ׺·¨µÄÒ»ÖÖÓ¦Óá£

¡¡¡¡

¡¡¡¡HTTP ЭÒéÊÇÒ»ÖÖ»ùÓÚÌØÊâ·Ö¸î·ûºÍ³¤¶Èǰ׺·¨µÄ»ìºÏÐÍЭÒé¡£±ÈÈç HTTP µÄÏûϢͷ²ÉÓõÄÊÇ´¿Îı¾Íâ¼Ó ·Ö¸î·û£¬¶øÏûÏ¢ÌåÔòÊÇͨ¹ýÏûϢͷÖÐµÄ Content-Type µÄÖµÀ´¾ö¶¨³¤¶È¡£HTTP ЭÒéËäÈ»±»³ÆÖ®ÎªÎı¾´«ÊäЭÒ飬µ«ÊÇÒ²¿ÉÒÔÔÚÏûÏ¢ÌåÖд«Êä¶þ½øÖÆÊý¾ÝÊý¾ÝµÄ£¬ÀýÈçÒôÊÓÆµÍ¼Ïñ£¬ËùÒÔ HTTP ЭÒé±»³ÆÖ®Îª¡¸³¬Îı¾¡¹´«ÊäЭÒé¡£

¡¡¡¡ÏûÏ¢µÄ½á¹¹

¡¡¡¡Ã¿ÌõÏûÏ¢¶¼ÓÐËü°üº¬µÄÓïÒå½á¹¹ÐÅÏ¢£¬ÓÐЩÏûϢЭÒéµÄ½á¹¹ÐÅÏ¢ÊÇÏÔʽµÄ£¬»¹ÓÐЩÊÇÒþʽµÄ¡£±ÈÈç json ÏûÏ¢£¬ËüµÄ½á¹¹¾Í¿ÉÒÔÖ±½Óͨ¹ýËüµÄÄÚÈÝÌåÏÖ³öÀ´£¬ËùÒÔËüÊÇÒ»ÖÖÏÔʽ½á¹¹µÄÏûϢЭÒé¡£

¡¡¡¡

¡¡¡¡json ÕâÖÖÖ±¹ÛµÄÏûϢЭÒéµÄ¿É¶ÁÐԷdz£°ô£¬µ«ÊÇËüµÄȱµãÒ²ºÜÃ÷ÏÔ£¬ÓÐÌ«¶àµÄÈßÓàÐÅÏ¢¡£±ÈÈçÿ¸ö×Ö·û´®¶¼Ê¹ÓÃË«ÒýºÅÀ´½ç¶¨±ß½ç£¬key/value Ö®¼ä±ØÐëÓÐðºÅ·Ö¸î£¬¶ÔÏóÖ®¼ä±ØÐëʹÓôóÀ¨ºÅ·Ö¸îµÈµÈ¡£ÕâЩ»¹Ö»ÊÇÈßÓàµÄСͷ£¬×î´óµÄÈßÓ໹ÔÚÓÚÁ¬ÐøµÄ¶àÌõ json ÏûÏ¢¼´Ê¹½á¹¹ÍêȫһÑù£¬½ö½öÖ»ÊÇ value µÄÖµ²»Ò»Ñù£¬Ò²ÐèÒª·¢ËÍͬÑùµÄ key ×Ö·û´®ÐÅÏ¢¡£

¡¡¡¡ÏûÏ¢µÄ½á¹¹ÔÚͬһÌõÏûϢͨµÀÉÏÊÇ¿ÉÒÔ¸´ÓõÄ£¬±ÈÈçÔÚ½¨Á¢Á´½ÓµÄ¿ªÊ¼ RPC ¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼äÏȽ»Á÷ЭÉÌÒ»ÏÂÏûÏ¢µÄ½á¹¹£¬ºóÐø·¢ËÍÏûϢʱֻÐèÒª·¢ËÍһϵÁÐÏûÏ¢µÄ value Öµ£¬½ÓÊÕ¶Ë»á×Ô¶¯½« value ÖµºÍÏàӦλÖÃµÄ key ¹ØÁªÆðÀ´£¬ÐγÉÒ»¸öÍê³ÉµÄ½á¹¹ÏûÏ¢¡£ÔÚ Hadoop ϵͳÖй㷺ʹÓÃµÄ avro ÏûϢЭÒé¾ÍÊÇͨ¹ýÕâÖÖ·½Ê½ÊµÏֵģ¬ÔÚ RPC Á´½Ó½¨Á¢Ö®´¦¾Í¿ªÊ¼½»Á÷ÏûÏ¢µÄ½á¹¹£¬ºóÐøÏûÏ¢µÄ´«µÝ¾Í¿ÉÒÔ½ÚÊ¡ºÜ¶àÁ÷Á¿¡£

¡¡¡¡ÏûÏ¢µÄÒþʽ½á¹¹Ò»°ãÊÇÖ¸ÄÇЩ½á¹¹ÐÅÏ¢ÓÉ´úÂëÀ´Ô¼¶¨µÄÏûϢЭÒ飬ÔÚ RPC ½»»¥µÄÏûÏ¢Êý¾ÝÖÐÖ»ÊÇ´¿´âµÄ¶þ½øÖÆÊý¾Ý£¬ÓÉ´úÂëÀ´È·¶¨ÏàӦλÖõĶþ½øÖÆÊÇÊôÓÚÄĸö×ֶΡ£±ÈÈçÏÂÃæµÄÕâ¶Î´úÂë

¡¡¡¡

¡¡¡¡Èç¹û´¿´â¿´ÏûÏ¢ÄÚÈÝÊÇÎÞ·¨ÖªµÀ½ÚµãÏûÏ¢ÄÚÈÝÖеÄÄÄЩ×ֽڵĺ¬Ò壬ËüµÄÏûÏ¢½á¹¹ÊÇͨ¹ý´úÂëµÄ½á¹¹Ë³ÐòÀ´È·¶¨µÄ¡£ÕâÖÖÒþʽµÄÏûÏ¢µÄÓŵã¾ÍÔÚÓÚ½ÚÊ¡´«ÊäÁ÷Á¿£¬ËüÍêÈ«²»ÐèÒª´«Êä½á¹¹ÐÅÏ¢¡£

¡¡¡¡ÏûϢѹËõ

¡¡¡¡Èç¹ûÏûÏ¢µÄÄÚÈÝÌ«´ó£¬¾ÍÒª¿¼ÂǶÔÏûÏ¢½øÐÐѹËõ´¦Àí£¬Õâ¿ÉÒÔ¼õÇáÍøÂç´ø¿íѹÁ¦¡£µ«ÊÇÕâͬʱҲ»á¼ÓÖØ CPU µÄ¸ºµ££¬ÒòΪѹËõËã·¨ÊÇ CPU ¼ÆËãÃܼ¯ÐͲÙ×÷£¬»áµ¼Ö²Ù×÷ϵͳµÄ¸ºÔؼÓÖØ¡£ËùÒÔ£¬×îÖÕÊÇ·ñ½øÐÐÏûϢѹËõ£¬Ò»¶¨Òª¸ù¾ÝÒµÎñÇé¿ö¼ÓÒÔȨºâ¡£

¡¡¡¡Èç¹ûÈ·¶¨Ñ¹Ëõ£¬ÄÇôÔÚÑ¡ÔñѹËõËã·¨°üʱ£¬Îñ±ØÌôÑ¡ÄÇЩµ×²ãÓà C ÓïÑÔʵÏÖµÄËã·¨¿â£¬ÒòΪ Python µÄ×Ö½ÚÂëÖ´ÐÐÆðÀ´Ì«ÂýÁË¡£±È½ÏÁ÷ÐеÄÏûϢѹËõËã·¨ÓÐ Google µÄ snappy Ëã·¨£¬ËüµÄÔËÐÐÐÔÄܷdz£ºÃ£¬Ñ¹Ëõ±ÈÀýËäÈ»²»ÊÇ×îÓŵÄ£¬µ«ÊÇÀë×îÓŵIJî¾àÒѾ­²»ÊǺܴó¡£°¢ÀïµÄ SOFA RPC ¾ÍʹÓÃÁË snappy ×÷ΪЭÒé²ãѹËõËã·¨¡£

¡¡¡¡Á÷Á¿µÄ¼«ÖÂÓÅ»¯

¡¡¡¡¿ªÔ´µÄÁ÷ÐÐ RPC ÏûϢЭÒéÍùÍù¶ÔÏûÏ¢Á÷Á¿ÓÅ»¯µ½Á˼«Ö£¬ËüÃÇͨ¹ýÕâÖÖ·½Ê½À´´ò¶¯Óû§£¬ÎüÒýÓû§À´Ê¹ÓÃËüÃÇ¡£±ÈÈç¶ÔÓÚÒ»¸öÕûÐÎÊý×Ö£¬Ò»°ãʹÓà 4 ¸ö×Ö½ÚÀ´±íʾһ¸öÕûÊýÖµ¡£

¡¡¡¡µ«ÊǾ­¹ýÑо¿·¢ÏÖ£¬ÏûÏ¢´«µÝÖд󲿷ÖʹÓõÄÕûÊýÖµ¶¼ÊǺÜСµÄ·Ç¸ºÕûÊý£¬Èç¹ûÈ«²¿Ê¹Óà 4 ¸ö×Ö½ÚÀ´±íʾһ¸öÕûÊý»áºÜÀË·Ñ¡£ËùÒԾͷ¢Ã÷ÁËÒ»¸öÀàÐͽб䳤ÕûÊývarint¡£ÊýÖµ·Ç³£Ð¡Ê±£¬Ö»ÐèҪʹÓÃÒ»¸ö×Ö½ÚÀ´´æ´¢£¬ÊýÖµÉÔ΢´óÒ»µã¿ÉÒÔʹÓà 2 ¸ö×Ö½Ú£¬ÔÙ´óÒ»µã¾ÍÊÇ 3 ¸ö×Ö½Ú£¬Ëü»¹¿ÉÒÔ³¬¹ý 4 ¸ö×Ö½ÚÓÃÀ´±í´ï³¤ÕûÐÎÊý×Ö¡£

¡¡¡¡ÆäÔ­ÀíÒ²ºÜ¼òµ¥£¬¾ÍÊDZ£Áôÿ¸ö×Ö½ÚµÄ×î¸ßλµÄ bit À´±êʶÊÇ·ñºóÃæ»¹ÓÐ×Ö½Ú£¬1 ±íʾ»¹ÓÐ×Ö½ÚÐèÒª¼ÌÐø¶Á£¬0 ±íʾµ½¶Áµ½µ±Ç°×ֽھͽáÊø¡£

¡¡¡¡

¡¡¡¡ÄÇÈç¹ûÊǸºÊý¸ÃÔõô°ìÄØ?-1 µÄ 16 ½øÖÆÊýÊÇ 0xFFFFFFFF£¬Èç¹ûÒª°´ÕÕÕâ¸ö±àÂëÄÇÆñ²»ÊÇÒª 6 ¸ö×Ö½Ú²ÅÄÜ´æµÄÏ¡£-1 Ò²ÊǷdz£³£¼ûµÄÕûÊý°¡¡£

¡¡¡¡ÓÚÊÇ zigzag ±àÂëÀ´ÁË£¬×¨ÃÅÓÃÀ´½â¾ö¸ºÊýÎÊÌâ¡£zigzag ±àÂ뽫ÕûÊý·¶Î§Ò»Ò»Ó³Éäµ½×ÔÈ»Êý·¶Î§£¬È»ºóÔÙ½øÐÐ varint ±àÂë¡£

¡¡¡¡

¡¡¡¡zigzag ½«¸ºÊý±àÂë³ÉÕýÆæÊý£¬ÕýÊý±àÂë³ÉżÊý¡£½âÂëµÄʱºòÓöµ½Å¼ÊýÖ±½Ó³ý 2 ¾ÍÊÇÔ­Öµ£¬Óöµ½ÆæÊý¾Í¼Ó 1 ³ý 2 ÔÙÈ¡¸º¾ÍÊÇÔ­Öµ¡£



×÷ÕߣºÀÖÓã²¥¿ÍJavaEEÅàѵѧԺ
Ê×·¢£ºhttp://java.itcast.cn/

0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿