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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Я³ÌµÄ Dubbo ֮·
 
×÷Õߣº¶­ÒÕÜõ
  1858  次浏览      32
 2021-2-2 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËDubbodµÄÔµÆð¡¢Â䵨µÚÒ»²½¡¢ ¹¦ÄÜÀ©Õ¹¡¢ÐòÁл¯À©Õ¹¡¢ÇëÇóÈÛ¶Ï¡¢·þÎñ²âÊÔ¹¤¾ß¼°±¤ÀݲâÊÔÍø¹ØµÈ£¬Ï£Íû¶ÔÄãµÄѧϰÓаïÖú¡£
ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

1 ÔµÆð

Я³Ìµ±³õΪʲôҪÒýÈë Dubbo ÄØ£¿Êµ¼ÊÉÏ´Ó 2013 Äêµ×Æð£¬Ð¯³ÌÄÚÖ÷ҪʹÓõľÍÊÇ»ùÓÚ HTTP ЭÒéµÄ SOA ΢·þÎñ¿ò¼Ü¡£Õâ¸ö¿ò¼ÜÊÇЯ³ÌÄÚ²¿×ÔÐÐÑз¢µÄ£¬ÕûÌå¼Ü¹¹ÔÚÕâ½ü6ÄêÖÐûÓнøÐдóµÄÖØ¹¹¡£Êܵ½µ±³õÉè¼ÆµÄÏÞÖÆ£¬¿ò¼Ü±¾ÉíµÄÀ©Õ¹ÐÔ²»ÊǺܺã¬Ê¹µÃÓû§ÒªÏë×Ô¼ºÀ©Õ¹Ò»Ð©¹¦Äܾͻá±È½ÏÀ§ÄÑ¡£ÁíÍ⣬ÓÉÓÚ HTTP ЭÒéÒ»¸öÁ¬½ÓͬʱֻÄÜ´¦ÀíÒ»¸öÇëÇó¡£Ôڸ߲¢·¢µÄÇé¿öÏ£¬·þÎñ¶ËµÄÁ¬½ÓÊýºÍÏ̳߳صÈ×ÊÔ´¶¼»á±È½Ï½ôÕÅ£¬Ó°Ïìµ½ÇëÇó´¦ÀíµÄÐÔÄÜ¡£¶ø Dubbo ×÷Ϊһ¸ö¸ßÐÔÄÜµÄ RPC ¿ò¼Ü£¬²»½öÊÇÒ»¿îÒµ½çÖªÃûµÄ¿ªÔ´²úÆ·£¬ËüÕûÌåÓÅÐãµÄ¼Ü¹¹Éè¼ÆºÍÊý¾Ý´«Ê䷽ʽҲ¿ÉÒÔ½â¾öÉÏÃæÌáµ½µÄÕâЩÎÊÌâ¡£ÕýºÃÔÚ 2017 ÄêϰëÄ꣬°¢ÀïÐû²¼ÖØÆôά»¤ Dubbo ¡£»ùÓÚÕâЩԭÒò£¬ÎÒÃÇÍŶӾö¶¨°Ñ Dubbo ÒýÈëЯ³Ì¡£

2 Dubbo Â䵨µÚÒ»²½

ÒªÔÚ¹«Ë¾Â䵨 Dubbo Õâ¸öзþÎñ¿ò¼Ü£¬µÚÒ»²½¾ÍÊǽâ¾ö·þÎñÖÎÀíºÍ¼à¿ØÕâÁ½¸öÎÊÌâ¡£

·þÎñÖÎÀí

ÔÚ·þÎñÖÎÀíÕâ·½Ãæ£¬Ð¯³ÌÏÖÓÐµÄ SOA ¿ò¼ÜÒѾ­ÓÐÁËÒ»Ì×ÍêÕûµÄ·þÎñ×¢²áÖÐÐĺͷþÎñÖÎÀíϵͳ¡£¶ÔÓÚ·þÎñ×¢²áÖÐÐÄ£¬´ó¼Ò±È½Ï³£ÓõĿÉÄÜÊÇ Apache Zookeeper ¡£¶øÎÒÃÇʹÓõÄÊDzο¼ Netflix ¿ªÔ´µÄ Eureka ×ÔÐÐÑз¢µÄ×¢²áÖÐÐÄ Artemis ¡£Artemis µÄ¼Ü¹¹ÊÇÒ»¸öÈ¥ÖÐÐĵĶԵȼ¯Èº¡£¸÷¸ö½ÚµãµÄµØÎ»Ïàͬ£¬Ã»ÓÐÖ÷´ÓÖ®·Ö¡£·þÎñʵÀýÓ뼯ȺÖеÄÈÎÒâÒ»¸ö½Úµã±£³Ö³¤Á¬½Ó£¬·¢ËÍ×¢²áºÍÐÄÌøÐÅÏ¢¡£ÊÕµ½ÐÅÏ¢µÄ½Úµã»á½«ÕâЩÐÅÏ¢·Ö·¢¸øÆäËû½Úµã£¬È·±£¼¯Èº¼äÊý¾ÝµÄÒ»ÖÂÐÔ¡£¿Í»§¶ËÒ²»áͨ¹ýÒ»¸ö³¤Á¬½ÓÀ´½ÓÊÜ×¢²áÖÐÐÄÍÆË͵ķþÎñʵÀýÁбíÐÅÏ¢¡£

ÔÚ·þÎñÊý¾ÝÄ£ÐÍ·½Ã棬ÎÒÃÇÖ±½Ó¸´ÓÃÁËÏÖÓÐ SOA ·þÎñµÄÊý¾ÝÄ£ÐÍ¡£ÈçͼËùʾ£¬×îºËÐĵķþÎñÄ£ÐͶÔÓ¦µÄÊÇ Dubbo ÖеÄÒ»¸ö interface ¡£Ò»¸öÓ¦ÓóÌÐòÄÚ¿ÉÒÔ°üº¬¶à¸ö·þÎñ£¬Ò»¸ö·þÎñÒ²¿ÉÒÔ²¿ÊðÔÚ¶à¸ö·þÎñÆ÷ÉÏ¡£ÎÒÃǽ«Ã¿¸ö·þÎñÆ÷ÉÏÔËÐеķþÎñÓ¦ÓóÆÎª·þÎñʵÀý¡£

ËùÓеķþÎñÔÚÉÏÏßǰ¶¼ÐèÒªÔÚÖÎÀíϵͳÖнøÐÐ×¢²á¡£×¢²áºó£¬ÏµÍ³»áΪÆä·ÖÅäÒ»¸öΨһµÄ±êʶ£¬Ò²¾ÍÊÇ ServiceID ¡£Õâ¸ö ServiceID ½«»áÔÚ·þÎñʵÀý×¢²áʱ·¢ËÍÖÁ×¢²áÖÐÐÄÓÃÀ´±êʶʵÀýµÄ¹éÊô£¬¿Í»§¶ËÒ²ÐèҪͨ¹ýÕâ¸öIDÀ´»ñȡָ¶¨·þÎñµÄʵÀýÁÐ±í¡£

ÓÉÓÚ Dubbo ±¾Éí²¢Ã»ÓÐ ServiceID µÄÉè¼Æ£¬ÕâÀïµÄÎÊÌâ¾ÍÊÇÈçºÎÏò×¢²áÖÐÐÄ´«µÝÒ»¸ö interface Ëù¶ÔÓ¦µÄ ServiceID ÐÅÏ¢¡£ÎÒÃǵķ½·¨ÊÇÔÚ Service ºÍ Reference ÅäÖÃÖÐÔö¼ÓÒ»¸ö serviceId ²ÎÊý¡£ArtemisServiceRegistry µÄʵÏÖ»á¶ÁÈ¡Õâ¸ö²ÎÊý£¬²¢´«µÝ¸ø×¢²áÖÐÐÄ¡£ÕâÑù¾Í¿ÉÒÔÕý³£µÄÓë×¢²áÖÐÐĽøÐн»»¥ÁË¡£

·þÎñ¼à¿Ø

ÔÚ·þÎñ¼à¿ØÕâ·½ÃæÎÒÃÇÖ÷Òª×öÁËÁ½²¿·Ö¹¤×÷£ºÍ³¼ÆÊý¾Ý²ãÃæµÄ¼à¿ØºÍµ÷ÓÃÁ´²ãÃæµÄ¼à¿Ø¡£

ͳ¼ÆÊý¾ÝÖ¸µÄÊǶԸ÷ÖÖ·þÎñµ÷ÓÃÊý¾ÝµÄ¶¨ÆÚ»ã×Ü£¬±ÈÈçµ÷ÓÃÁ¿¡¢ÏìӦʱ¼ä¡¢ÇëÇóÌåºÍÏìÓ¦ÌåµÄ´óСÒÔ¼°ÇëÇó³öÏÖÒì³£µÄÇé¿öµÈµÈ¡£Õⲿ·ÖÊý¾ÝÎÒÃÇ·Ö±ðÔÚ¿Í»§¶ËºÍ·þÎñ¶ËÒÔ·ÖÖÓÁ£¶È½øÐÐÁË»ã×Ü£¬È»ºóÊä³öµ½ Dashboard ¿´°åÉÏ¡£Í¬Ê±ÎÒÃÇÒ²¶ÔÕâЩÊý¾ÝÔö¼ÓÁËһЩ±êÇ©£¬ÀýÈ磺Service ID¡¢·þÎñ¶Ë IP ¡¢µ÷Óõķ½·¨µÈµÈ¡£Óû§¿ÉÒԺܷ½±ãµÄ²éѯ×Ô¼ºÐèÒªµÄ¼à¿ØÊý¾Ý¡£

ÔÚ¼à¿Ø·þÎñµ÷ÓÃÁ´ÉÏ£¬ÎÒÃÇʹÓõÄÊÇ CAT ¡£CAT ÊÇÃÀÍŵãÆÀ¿ªÔ´µÄÒ»¸öʵʱµÄÓ¦ÓÃ¼à¿ØÆ½Ì¨¡£Ëüͨ¹ýÊ÷Ð뵀 Transaction ºÍ Event ½Úµã£¬¿ÉÒÔ½«Õû¸öÇëÇóµÄ´¦Àí¹ý³Ì¼Ç¼ÏÂÀ´¡£ÎÒÃÇÔÚ Dubbo µÄ¿Í»§¶ËºÍ·þÎñ¶Ë¶¼Ôö¼ÓÁË CAT µÄ Transaction ºÍ Event Âñµã£¬¼Ç¼Á˵÷ÓõķþÎñ¡¢ SDK µÄ°æ±¾¡¢·þÎñºÄʱ¡¢µ÷Ó÷½µÄ±êʶµÈÐÅÏ¢£¬²¢ÇÒͨ¹ý Dubbo µÄ Attachment °Ñ CAT ·þÎñµ÷ÓõÄÉÏÏÂÎÄÐÅÏ¢´«µÝµ½ÁË·þÎñ¶Ë£¬Ê¹µÃ¿Í»§¶ËºÍ·þÎñ¶ËµÄ¼à¿ØÊý¾Ý¿ÉÒÔÁ¬½ÓÆðÀ´¡£ÔÚÅÅÕϵÄʱºò¾Í¿ÉÒԺܷ½±ãµÄ½øÐвéѯ¡£ÔÚͼÉÏ£¬ÍâÃæÒ»²ãÎÒÃÇ¿´µ½µÄÊǿͻ§¶Ë¼Ç¼µÄ¼à¿ØÊý¾Ý¡£ÔÚµ÷Ó÷¢Æð´¦Õ¹¿ªºó£¬ÎÒÃǾͿÉÒÔ¿´µ½¶ÔÓ¦µÄÔÚ·þÎñ¶ËµÄ¼à¿ØÊý¾Ý¡£

³õ°æ·¢²¼

ÔÚ½â¾öÁË·þÎñÖÎÀíºÍ¼à¿Ø¶Ô½ÓÕâÁ½¸öÎÊÌâºó£¬ÎÒÃǾÍËãÍê³ÉÁË Dubbo ÔÚЯ³Ì³õ²½µÄÒ»¸ö±¾µØ»¯£¬ÔÚ 2018 Äê 3 Ô£¬ÎÒÃÇ·¢²¼ÁË Dubbo Я³Ì¶¨ÖưæµÄÊ׸ö¿ÉÓð汾¡£ÔÚÕýʽ·¢²¼Ç°ÎÒÃÇÐèÒª¸øÕâ¸ö²úÆ·Æð¸öÐÂÃû×Ö¡£¼ÈÈ»ÊÇЯ³Ì£¨Ctrip£©¼Ó Dubbo £¬ÎÒÃǾͰÑÕâ¸ö¶¨Öư汾³ÆÎª CDubbo ¡£

3 CDubbo ¹¦ÄÜÀ©Õ¹

³ýÁË»ù±¾µÄϵͳ¶Ô½Ó£¬ÎÒÃÇ»¹¶Ô CDubbo ½øÐÐÁËһϵÁеŦÄÜÀ©Õ¹£¬Ö÷Òª°üÀ¨ÒÔÏÂÕâ 5 µã£ºCallback ÔöÇ¿¡¢ÐòÁл¯À©Õ¹¡¢È۶ϺÍÇëÇó²âÊÔ¹¤¾ß¡£ÏÂÃæÎÒÀ´ÖðÒ»¸ø´ó¼Ò½éÉÜһϡ£

Callback ÔöÇ¿

Ê×ÏÈ£¬ÎÒÃÇ¿´Ò»ÏÂÕâ¶Î´úÂë¡£ÇëÎÊ´úÂëÀïÓÐûÓÐʲôÎÊÌâÄØ£¿

Õâ¶Î´úÂëÀïÓÐÒ»¸ö DemoService ¡£ÆäÖÐµÄ callbackDemo ·½·¨µÄ²ÎÊýÊÇÒ»¸ö½Ó¿Ú¡£ÏÂÃæµÄ Demo ÀàÖзֱðÔÚ foo ºÍ bar Á½¸ö·½·¨Öе÷ÓÃÁËÕâ¸ö callbackDemo ·½·¨¡£ÏàÐÅÓùý Callback µÄÅóÓÑÃÇÓ¦¸ÃÖªµÀ£¬foo Õâ¸ö·½·¨µÄµ÷Ó÷½Ê½ÊÇÕýÈ·µÄ£¬¶ø bar Õâ¸ö·½·¨ÔÚÖØ¸´µ÷ÓõÄʱºòÊǻᱨ´íµÄ¡£ÒòΪ¶ÔÓÚͬһ¸ö Callback ½Ó¿Ú£¬¿Í»§¶ËÖ»ÄÜ´´½¨Ò»¸öʵÀý¡£

µ«ÕâÓÖÓÐʲôÎÊÌâÄØ£¿ÎÒÃÇÀ´¿´Ò»ÏÂÕâÑùÒ»¸ö³¡¾°¡£

Ò»¸öÓû§ÔÚÒ³ÃæÉÏ·¢ÆðÁËÒ»¸ö²éѯ»úƱµÄÇëÇó¡£Õ¾µã·þÎñÆ÷½ÓÊÕµ½ÇëÇóÖ®ºóµ÷ÓÃÁ˺ó¶ËµÄ²éѯ»úƱ·þÎñ¡£¿¼Âǵ½Õâ¸öµ÷ÓÿÉÄÜ»áºÄʱ½Ï³¤£¬½Ó¿ÚÉÏʹÓÃÁË callback À´»Ø´«Êµ¼ÊµÄ²éѯ½á¹û¡£È»ºóÔÙÓÉÕ¾µã·þÎñÆ÷ͨ¹ýÀàËÆ WebSocket µÄ¼¼ÊõÍÆË͸ø¿Í»§¶Ë¡£ÄÇôÎÊÌâÀ´ÁË¡£Õ¾µã·þÎñÆ÷½ÓÊܵ½»Øµ÷Êý¾ÝʱÐèÒªÖªµÀËü¶ÔÓ¦µÄÊÇÄĸöÓû§µÄÄĴε÷ÓÃÇëÇó£¬ÕâÑù²ÅÄܰÑÊý¾ÝÕýÈ·µÄÍÆË͸øÓû§¡£µ«¶ÔÓÚÈ«¾ÖΨһµÄcallback½Ó¿ÚʵÀý£¬ÏëÒªÄõ½Õâ¸öÇëÇóÉÏÏÂÎÄÐÅÏ¢¾Í±È½ÏÀ§ÄÑÁË¡£ÐèÒªÔÚ½Ó¿Ú¶¨ÒåºÍʵÏÖÉÏÔ¤ÏÈ×öºÃ×¼±¸¡£¿ÉÄÜÐèÒª¶îÍâÒýÈëһЩȫ¾ÖµÄ¶ÔÏóÀ´±£´æÕⲿ·ÖÉÏÏÂÎÄÐÅÏ¢¡£

Õë¶ÔÕâ¸öÎÊÌ⣬ÎÒÃÇÔÚ CDubbo ÖÐÔö¼ÓÁË Stream ¹¦ÄÜ¡£¸úÇ°ÃæÒ»Ñù£¬ÎÒÃÇÏÈÀ´¿´´úÂë¡£

Õâ¶Î´úÂëÓëÇ°ÃæµÄ´úÂëÓÐÊ²Ã´Çø±ð£¿Ê×ÏÈ£¬ callback ½Ó¿ÚµÄ²ÎÊýÌæ»»ÎªÁËÒ»¸ö StreamContext ¡£»¹ÓнÓÊܻص÷µÄµØ·½²»ÊÇ֮ǰµÄÈ«¾ÖΨһʵÀý£¬¶øÊÇÒ»¸öÄäÃûÀ࣬²¢ÇÒÒ²²»ÔÙÊǵ¥µ¥Ò»¸ö·½·¨£¬¶øÊÇÓÐ3¸ö·½·¨£¬onNext¡¢onErrorºÍonCompleted ¡£ÕâÑùµ÷Ó÷½ÔÚÄäÃûÀàÀï¾Í¿ÉÒÔͨ¹ý±Õ°üÀ´»ñȡԭ±¾ÇëÇóµÄÉÏÏÂÎÄÐÅÏ¢ÁË¡£ÊDz»ÊÇÌåÑé¾ÍºÃһЩÁË£¿

ÄÇô Stream ¾ßÌåÊÇÔõôʵÏÖµÄÄØ£¿ÎÒÃÇÀ´¿´Ò»ÏÂÕâÕÅͼ¡£

ÔÚ¿Í»§¶Ë£¬¿Í»§¶Ë·¢Æð´ø Stream µÄµ÷ÓÃʱ£¬ÐèҪͨ¹ý StreamContext.create ·½·¨´´½¨Ò»¸öStreamContext¡£ËäȻ˵ÊÇ´´½¨£¬µ«Êµ¼ÊÊÇÔÚÒ»¸öÈ«¾ÖµÄ StreamContext Ò»¸öΨһµÄ StreamID ºÍ¶ÔÓ¦»Øµ÷µÄʵ¼Ê´¦ÀíÂß¼­¡£ÔÚ·¢ËÍÇëÇóʱ£¬Õâ¸ö StreamID »á±»·¢Ë͵½·þÎñ¶Ë¡£·þÎñ¶ËÔÚ·¢Æð»Øµ÷µÄʱºòÒ²»á´øÉÏÕâ¸ö StreamID ¡£ÕâÑù¿Í»§¶Ë¾Í¿ÉÒÔÖªµÀÕâ´Î»Øµ÷¶ÔÓ¦µÄÊÇÄĸö StreamContext ÁË¡£

4 ÐòÁл¯À©Õ¹

Я³ÌµÄһЩҵÎñ²¿ÃÅ£¬ÔÚ֮ǰ¿ª·¢ SOA ·þÎñµÄʱºò£¬Ê¹ÓõÄÊÇ Google Protocol Buffer µÄÆõÔ¼±àдµÄÇëÇóÊý¾ÝÄ£ÐÍ¡£Google PB µÄÒªÇó¾ÍÊÇͨ¹ýÆõÔ¼Éú³ÉµÄÊý¾ÝÄ£ÐͱØÐëʹÓÃPBµÄÐòÁл¯Æ÷½øÐÐÐòÁл¯¡£ÎªÁ˱ãÓÚËûÃǽ« SOA ·þÎñÇ¨ÒÆµ½Dubbo £¬ÎÒÃÇÒ²ÔÚ Dubbo ÖÐÔö¼ÓÁË GooglePB ÐòÁл¯·½Ê½µÄÖ§³Ö¡£ºóÐøÎªÁ˱ãÓÚÓû§×ÔÐÐÀ©Õ¹£¬ÎÒÃÇÔÚPBÐòÁл¯Æ÷µÄʵÏÖÉÏÔö¼ÓÁËÀ©Õ¹½Ó¿Ú£¬ÔÊÐíÓû§ÔÚÍâΧ¼ÌÐøÔö¼ÓÊý¾ÝѹËõµÄ¹¦ÄÜ¡£ÕûÌåÐòÁл¯Æ÷µÄʵÏÖ²¢²»ÊǺÜÄÑ£¬µ¹ÊÇÓÐÒ»µãÐèҪעÒâµÄÊÇ£¬ÓÉÓÚ Dubbo ·þÎñ¶ÔÍâÖ»Äܱ©Â¶Ò»ÖÖÐòÁл¯·½Ê½£¬ÕâÖÖÐòÁл¯·½Ê½Ó¦¸Ã¼æÈÝËùÓÐµÄ Java Êý¾ÝÀàÐÍ¡£¶ø PB ÅöÇɾÍÊÇÄÇÖÖÖ»ÄÜÐòÁл¯×Ô¼ºÆõÔ¼Éú³ÉµÄÊý¾ÝÀàÐ͵ÄÐòÁл¯Æ÷¡£ËùÒÔÔÚÓöµ½²»Ö§³ÖµÄÊý¾ÝÀàÐ͵Äʱºò£¬ÎÒÃÇ»¹ÊÇ»á fallback µ½Ê¹ÓÃĬÈ쵀 hessian À´½øÐÐÐòÁл¯²Ù×÷µÄ¡£

5 ÇëÇóÈÛ¶Ï

ÏàÐÅ´ó¼Ò¶ÔÈÛ¶ÏÓ¦¸Ã²»Ä°Éú°É¡£µ±¿Í»§¶Ë»ò·þÎñ¶Ë³öÏÖ´ó·¶Î§µÄÇëÇó³ö´í»ò³¬Ê±µÄʱºò£¬ÏµÍ³»á×Ô¶¯Ö´ÐÐ fail-fast Âß¼­£¬²»ÔÙ¼ÌÐø·¢ËͺͽÓÊÜÇëÇ󣬶øÊÇÖ±½Ó·µ»Ø´íÎóÐÅÏ¢¡£ÕâÀïÎÒÃÇʹÓõÄÊÇÒµ½ç±È½Ï³ÉÊìµÄ½â¾ö·½°¸£ºNetflix ¿ªÔ´µÄ Hystrix ¡£Ëü²»½ö°üº¬È۶ϵŦÄÜ£¬»¹Ö§³Ö²¢·¢Á¿¿ØÖÆ¡¢²»Í¬µÄµ÷Óüä¸ôÀëµÈ¹¦ÄÜ¡£µ¥¸öµ÷Óõijö´í²»»á¶ÔÆäËûµÄµ÷ÓÃÔì³ÉÓ°Ïì¡£¸÷ÏÄܶ¼Ö§³Ö°´Ðè½øÐÐ×Ô¶¨ÒåÅäÖá£CDubboµÄ·þÎñ¶ËºÍ¿Í»§¶Ëͨ¹ý¼¯³É Hystrix À´×öÇëÇóµÄÒì³£Çé¿ö½øÐд¦Àí£¬±ÜÃâ·¢ÉúÑ©±ÀЧӦ¡£

6 ·þÎñ²âÊÔ¹¤¾ß

Dubbo ×÷Ϊһ¸öʹÓöþ½øÖÆÊý¾ÝÁ÷½øÐд«ÊäµÄ RPC ЭÒ飬·þÎñµÄ²âÊÔ¾ÍÊÇÒ»¸ö±È½ÏÄѲÙ×÷µÄÎÊÌâ¡£ÒªÏëÈòâÊÔÈËÔ±ÔÚÎÞÐè±àд´úÂëµÄǰÌáϲâÊÔÒ»¸ö Dubbo ·þÎñ£¬ÎÒÃÇÒª½â¾öµÄÓÐÕâÑùÈý¸öÎÊÌ⣺ÈçºÎ±àд²âÊÔÇëÇó¡¢ÈçºÎ·¢ËͲâÊÔÇëÇóºÍÈçºÎ²é¿´ÏìÓ¦Êý¾Ý¡£

Ê×ÏȾÍÊÇÔõô¹¹ÔìÇëÇó¡£Õâ¸öÎÊÌâʵ¼Ê·ÖΪÁ½¸ö²¿·Ö¡£Ò»¸öÊÇÓû§ÔÚ²»Ð´´úÂëµÄǰÌáÏÂÓÃʲô¸ñʽȥ¹¹ÔìÕâ¸öÇëÇ󡣿¼Âǵ½ºÜ¶à²âÊÔÈËÔ±¶Ô Restful Service µÄ²âÊԱȽÏÊìϤ£¬ËùÒÔÎÒÃÇ×îÖÕ¾ö¶¨Ê¹Óà JSON ¸ñʽ±íʾÇëÇóÊý¾Ý¡£ÄÇôÈÃÒ»¸ö²âÊÔÈËÔ±´ÓÒ»¸ö¿Õ°×µÄ JSON ¿ªÊ¼¹¹ÔìÒ»¸öÇëÇóÊDz»ÊÇÓеãÀ§ÄÑÄØ£¿ËùÒÔÎÒÃÇ»¹ÊÇÏ£ÍûÄܹ»ÈÃÓû§Á˽⵽ÇëÇóµÄÊý¾ÝÄ£ÐÍ¡£ËäÈ»ÎÒÃÇʹÓõÄÊÇ Dubbo 2.5.10 £¬µ«Õⲿ·Ö¹¦ÄÜÔÚ Dubbo 2.7.3 ÖÐÒѾ­ÓÐÁË¡£ËùÒÔÎÒÃǽ«Õⲿ·Ö´úÂë¸´ÖÆÁ˹ýÀ´£¬È»ºó¶ÔËü½øÐÐÁËÀ©Õ¹£¬°Ñ·þÎñµÄÔªÊý¾ÝÐÅÏ¢±£´æÔÚÒ»¸öÈ«¾ÖÉÏÏÂÎÄÖС£²¢ÇÒÎÒÃÇÔÚ CDubbo ÖÐͨ¹ý Filter Ôö¼ÓÁËÒ»¸öÄÚ²¿µÄ²Ù×÷£¬$serviceMeta£¬°Ñ·þÎñµÄÔªÊý¾ÝÐÅÏ¢±©Â¶³öÀ´¡£Õⲿ·ÖÔªÊý¾ÝÐÅÏ¢°üÀ¨·½·¨ÁÐ±í¡¢¸÷¸ö·½·¨µÄ²ÎÊýÁбíºÍ²ÎÊýµÄÊý¾ÝÄ£Ð͵ȵȡ£ÕâÑùÓû§Í¨¹ýµ÷ÓÃÄÚ²¿²Ù×÷Äõ½Õâ¸öÊý¾ÝÄ£ÐÍÖ®ºó£¬¿ÉÒÔÉú³É³öÒ»¸ö»ù±¾µÄJSON½á¹¹¡£Ö®ºóÓû§Ö»ÐèÒªÔÚÕâ¸ö½á¹¹ÖÐÌî³äʵ¼ÊµÄ²âÊÔÊý¾Ý¾Í¿ÉÒÔºÜÈÝÒ׵Ĺ¹Ôì³öÒ»¸ö²âÊÔÇëÇóÀ´¡£

È»ºó£¬Ôõô°Ñ±à¼­ºÃµÄÇëÇó·¢Ë͸ø·þÎñ¶ËÄØ£¿ÒòΪûÓÐÄ£ÐÍ´úÂ룬ÎÞ·¨Ö±½Ó·¢Æðµ÷Ó᣶ø Dubbo ÌṩÁËÒ»¸öºÜºÃµÄ¹¤¾ß£¬¾ÍÊÇ·º»¯µ÷Ó㬠GenericService ¡£ÎÒÃǰÑÇëÇóÌåͨ¹ý·º»¯µ÷Ó÷¢Ë͸ø·þÎñ¶Ë£¬ÔÙ°Ñ·þÎñ¶Ë·µ»ØµÄMapÐòÁл¯³ÉJSONÏÔʾ¸ø²âÊÔÈËÔ±¡£Õû¸ö²âÊÔÁ÷³Ì¾ÍÍê³ÉÁË¡£Ë³±ã»¹½â¾öÁËÈçºÎ²é¿´ÏìÓ¦Êý¾ÝµÄÎÊÌâ¡£

ΪÁË·½±ãÓû§Ê¹Óã¬ÎÒÃÇ¿ª·¢ÁËÒ»¸ö·þÎñ²âÊÔÆ½Ì¨¡£Óû§¿ÉÒÔÔÚÉÏÃæÖ±½ÓÑ¡Ôñ·þÎñºÍʵÀý£¬±àдºÍ·¢ËͲâÊÔÇëÇó¡£ÁíÍâΪÁË·½±ãÓû§½øÐÐ×Ô¶¯»¯²âÊÔ£¬ÎÒÃÇÒ²°ÑÕⲿ·Ö¹¦ÄÜ·â×°³ÉÁË jar °ü·¢²¼Á˳öÈ¥¡£

ÆäʵÔÚ×ö²âÊÔ¹¤¾ßµÄ¹ý³ÌÖУ¬»¹Óöµ½ÁËÒ»µãСÎÊÌ⡣ͨ¹ý´Ó JSON ת»¯ Map ÔÙת»¯Îª POJO ÕâÌõ·ÊÇÄÜ×ßͨµÄ¡£µ«Ç°ÃæÌáµ½ÁË£¬ÓÐһЩ¶ÔÏóÊÇͨ¹ýÀàËÆ Google Protobuf µÄÆõÔ¼Éú³ÉµÄ¡£ËüÃDz»Êǵ¥´¿µÄ POJO £¬ÎÞ·¨Ö±½Óת»»¡£ËùÒÔ£¬ÎÒÃǶԷº»¯µ÷ÓýøÐÐÁËÀ©Õ¹¡£Ê×ÏȶÔÓÚÕâÖÖ×Ô¶¨ÒåµÄÐòÁл¯Æ÷£¬ÎÒÃÇÔÊÐíÓû§×ÔÐж¨Òå´ÓÊý¾Ý¶ÔÏóµ½ JSON µÄ¸ñʽת»»ÊµÏÖ¡£Æä´Î£¬ÔÚ·þÎñ¶Ë´¦Àí·º»¯µ÷ÓÃʱ£¬ÎÒÃǸø Dubbo Ôö¼ÓÁ˽øÐÐ JSON ºÍ Google PB ¶ÔÏóÖ®¼äµÄ»¥Ïàת»»µÄ¹¦ÄÜ¡£ÏÖÔÚÕâÁ½¸öÀ©Õ¹¹¦ÄÜÓÐÒѾ­ºÏ²¢ÈëÁË Dubbo µÄ´úÂë¿â£¬²¢Ëæ×Å 2.7.3 °æ±¾·¢²¼ÁË¡£

7 ±¤ÀݲâÊÔÍø¹Ø

˵ÍêÁ˵¥´¿Õë¶Ô·þÎñµÄ²âÊÔ£¬ÓÐЩʱºòÎÒÃÇ»¹Ï£ÍûÔÚÉú²úµÄʵ¼ÊʹÓû·¾³Ï¶ԷþÎñ½øÐвâÊÔ£¬ÓÈÆäÊÇÔÚÓ¦Ó÷¢²¼µÄʱºò¡£ÔÚЯ³Ì£¬ÓÐÒ»¸ö½Ð±¤ÀݲâÊԵIJâÊÔ·½·¨£¬Ö¸µÄÊÇÔÚÓ¦Ó÷¢²¼¹ý³ÌÖУ¬·¢²¼ÏµÍ³»áÏÈÌô³öһ̨·þÎñÆ÷×÷Ϊ±¤ÀÝ»ú£¬²¢½«Ð°汾µÄÓ¦Ó÷¢²¼µ½±¤ÀÝ»úÉÏ¡£È»ºóÓû§Í¨¹ýÌØ¶¨µÄ²âÊÔ·½·¨½«ÇëÇó·¢Ë͵½±¤ÀÝ»úÉÏÀ´Ñé֤а汾ӦÓõŦÄÜÊÇ·ñ¿ÉÒÔÕý³£¹¤×÷¡£ÓÉÓÚ½øÐб¤ÀݲâÊÔʱ£¬±¤ÀÝ»úÉÐδÀ­È뼯Ⱥ£¬ÕâÀï¾ÍÐèÒªÈÿͻ§¶Ë¿ÉÒÔʶ±ð³öÒ»¸ö±¤ÀݲâÊÔÇëÇó²¢°ÑÇëÇóת·¢¸øÖ¸¶¨µÄ±¤ÀÝ·þÎñʵÀý¡£ËäÈ»ÎÒÃÇ¿ÉÒÔͨ¹ý·ÓÉÀ´ÊµÏÖÕâÒ»µã£¬µ«Õâ¾ÍÐèÒª¿Í»§¶ËÁ˽âºÜ¶àת·¢µÄϸ½ÚÐÅÏ¢£¬¶øÇÒÕûºÏÈë SDK µÄ¹¦ÄܶÔÓÚºóÐøµÄÉý¼¶Î¬»¤»áÔì³ÉÒ»¶¨µÄÂé·³¡£ËùÒÔÎÒÃÇ¿ª·¢ÁËÒ»¸öרÃÅÓÃÓÚ±¤ÀݲâÊԵķþÎñÍø¹Ø¡£µ±Ò»¸ö¿Í»§¶Ëʶ±ðµ½µ±Ç°ÇëÇóµÄÉÏÏÂÎÄÖаüº¬±¤ÀÝÇëÇó±êʶʱ£¬Ëü¾Í»á°Ñ Dubbo ÇëÇóת·¢¸øÔ¤ÏÈÅäÖúõIJâÊÔÍø¹Ø¡£Íø¹Ø»áÏȽâÎöÕâ¸ö·þÎñÇëÇó£¬ÅжÏËü¶ÔÓ¦µÄÊÇÄĸö·þÎñÈ»ºóÔÙÕÒ³öÕâ¸ö·þÎñµÄ±¤ÀÝ»ú²¢½«ÇëÇóת·¢¹ýÈ¥¡£ÔÚ·þÎñÍê³ÉÇëÇó´¦Àíºó£¬Íø¹ØÒ²»á°ÑÏìÓ¦Êý¾Ýת·¢»Øµ÷Ó÷½¡£

ÓëÒ»°ãµÄ HTTP Íø¹Ø²»Í¬£¬ Dubbo µÄ·þÎñÍø¹ØÐèÒª¿¼ÂÇÒ»¸ö¶îÍâµÄÇëÇó·½Ê½£¬¾ÍÊÇÇ°ÃæËùÌáµ½µÄ callback ¡£ÓÉÓÚ callback ÊÇ´Ó·þÎñ¶Ë·¢ÆðµÄÇëÇó£¬Õû¸ö´¦ÀíÁ÷³Ì¶¼Óë¿Í»§¶ËµÄÕý³£ÇëÇó²»Í¬¡£Íø¹ØÉϻὫ¿Í»§¶Ë·¢ÆðµÄÁ¬½ÓºÍÍø¹ØÓë·þÎñ¶ËÖ®¼äµÄÁ¬½Ó½øÐа󶨣¬²¢¼Ç¼×î½ü´ý·µ»ØµÄÇëÇó ID ¡£ÕâÑùÔÚ½ÓÊÕµ½ callback µÄÇëÇóºÍÏìӦʱ¾Í¿ÉÒÔ׼ȷµÄ·ÓÉÁË¡£

8 ºóÐø¹¦Äܹ滮

½ØÖ¹µ½½ñÌ죬 CDubbo Ò»¹²·¢²¼ÁË27¸ö°æ±¾¡£Ð¯³ÌµÄºÜ¶àÒµÎñ²¿ÃŶ¼ÒѾ­½ÓÈëÁË Dubbo ¡£ÔÚδÀ´£¬ CDubbo »¹»áÀ©Õ¹¸ü¶àµÄ¹¦ÄÜ£¬±ÈÈçÇëÇóÏÞÁ÷ºÍÈÏÖ¤ÊÚȨµÈµÈ¡£ÎÒÃÇÏ£ÍûÒÔºó¿ÉÒÔ¹±Ï׸ü¶àµÄй¦ÄܳöÀ´£¬»ØÀ¡¿ªÔ´ÉçÇø¡£

 

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

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
JavaÐéÄâ»ú¼Ü¹¹
JVM¡ª¡ªJavaÐéÄâ»ú¼Ü¹¹
JavaÈÝÆ÷Ïê½â
Java½ø½×--ÉîÈëÀí½âArrayListʵÏÖÔ­Àí
Java²¢·¢ÈÝÆ÷£¬µ×²ãÔ­ÀíÉîÈë·ÖÎö
×îпγÌ
java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
SpringBoot&Cloud¡¢JavaSSM¿ò¼Ü
Spring Boot Åàѵ
³É¹¦°¸Àý
¹úÄÚÖªÃûÒøÐÐ Spring+SpringBoot+Cloud+MVC
±±¾© Java±à³Ì»ù´¡ÓëÍøÒ³¿ª·¢»ù´¡
±±¾© Struts+Spring
»ªÏÄ»ù½ð ActiveMQ Ô­Àí
ijÃñº½¹« Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢