±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÍøÂ磬±¾ÎĽéÉÜÁËDubboµÄÕûÌå½éÉÜ£¬Êµ¼ù°¸Àý£¬ÑݽøºÍδÀ´·¢Õ¹µÈÏà¹ØÄÚÈÝ¡£ |
|
Dubbo ÕûÌå½éÉÜ
Dubbo ÊÇÒ»¿î¸ßÐÔÄÜ£¬ÇáÁ¿¼¶µÄ Java RPC ¿ò¼Ü¡£ËäÈ»ËüÊÇÒÔ Java ÓïÑÔÀ´³öÃûµÄ£¬µ«ÊÇÏÖÔÚÎÒÃÇÉú̬ÀïÃæÒѾÓÐ
Go¡¢Python¡¢PHP¡¢Node.JS µÈµÈÓïÑÔ¡£ÔÚ GitHub ÉÏ£¬https://github.com/dubbo
ÏÂÃæÒѾÓкܶàÉú̬Ïà¹ØµÄ¶«Î÷¡£

Dubbo ÊÇÒ»¸ö RPC ¿ò¼Ü£¬ËüºÍËùÓÐµÄ RPC Ò»Ñù£¬ÓÐÒ»¸ö×îСÔËÐÐ×Ó¼¯£¬ËüÐèÒª Provider¡¢Consumer£¬ÒÔ¼°Ò»¸ö·þÎñ×¢²á·¢ÏÖÏà¹ØµÄ¶«Î÷£¬ÔÚ
Spring Cloud ÀïÃæÊǽзþÎñ×¢²á·¢ÏÖ£¬ÔÚ Dubbo ÀïÃæÎÒÃǽÐËü×¢²áÖÐÐÄ£¨ºóÃæ½²µ½¶«Î÷ÎÒÃǶ¼ÒÔ×¢²áÖÐÐÄÀ´½øÐÐ˵Ã÷£©¡£
¼òµ¥½éÉÜһϠDubbo µÄÕû¸öÆô¶¯¹ý³Ì£º
Provider µ¼³öÒ»¸ö·þÎñ£¬Õâ¸ö·þÎñ¾ÍÊǿɱ»µ÷Óõģ»
µÚ¶þ²½£¬Íù×¢²áÖÐÐÄ×¢²áÕâ¸ö·þÎñ£»
Consumer Õâ¶Ë»áÀ´¶©ÔÄÏà¹ØµÄ·þÎñ£¬Èç¹û×¢²áÖÐÐÄÀïÃæ£¬Provider ÁбíÓб仯µÄ»°£¬ËüÒ²»áµÃµ½Í¨Öª£»
Consumer »á¸ù¾ÝÒ»¶¨µÄ·ÓɹæÔò´Ó×¢²áÖÐÐÄÄõ½ Provider ÁÐ±í£¬ÔÙ¸ù¾ÝÒ»¶¨µÄ¸ºÔؾùºâ²ßÂÔ£¬¾«È·µØµ÷Óõ½Ä³Ì¨
Provider ÉÏÈ¥¡£
Õâ¾ÍÊÇÒ»¸ö¼òµ¥µÄÒ»¸ö RPC µÄµ÷ÓŹý³Ì¡£
Dubbo ÔÚ 2011 Äê¾ÍÔÚ GitHub ÉϽøÐÐÁË¿ªÔ´£¬¾ÀúÁ˺ܶàÄêµÄ·¢Õ¹£¬Õû¸öÉçÇøÒ»Ö±·Ç³£»îÔ¾£¬ÏÖÔÚ
GitHub ÉÏ Star ÊýÒѾ¸ß´ï 23K+£¬Fork Êý 16K+¡£
ÔÚ 2018 Äê 2 Ô·ݵÄʱºò£¬°¢Àï°Í°ÍÒѾ°Ñ Dubbo µÄÏîÄ¿¾èÏ׸øÁË Apache ÉçÇø£¬Ï£Íû¸ü¶àÈËÄܹ»²ÎÓëµ½
Dubbo ¿ª·¢ÖÐÀ´£¬Ï£ÍûÒÀ¿¿¼¯ÌåµÄÖÇ»ÛÈà Dubbo ±äµÃÔ½À´Ô½ºÃ¡£ÏÖÔÚ Dubbo µÄ committer£¬Íⲿ¿ª·¢ÕßµÄÈËÊýÒѾ¶àÓÚ°¢Àï°Í°Í¿ª·¢Õߣ¬°üÀ¨Î¢µê£¬ÍøÒ×ÔÆÒôÀÖ£¬¿¼À£¬º«¶¼ÒÂÉáµÈµÈ¡£
Dubbo ÒòΪ¿ªÔ´Õâô¶àÄ꣬»ýÀÛÁ˽϶àµÄÓû§£¬°üÀ¨ºÜ¶à»¥ÁªÍøµÄÆóÒµ£¬°üÀ¨°¢Àï°Í°Í£¬¿¼À£¬µÎµÎµÈ»¥ÁªÍøÆóÒµ£»»¹ÓкܶàÖÐ×ÖÍ·ÆóÒµ£¬ÖйúµçÐÅ£¬ÖйúÈËÊÙ£¬Öйú¹¤ÉÌÒøÐУ»»¹ÓÐһЩ±È½Ï´«Í³µÄÆóÒµ¡£
Dubbo µÄʵ¼ùºÍÑݽø
Dubbo ·þÎñ×¢²á
±³¾°ÖªÊ¶½éÉÜ

×¢²áÖÐÐÄ×¢²á½éÉÜ
ÔÚ RPC Õû¸öÁ´Â·ÖУ¬ÐèÒªµÄÔªËØÓÐ Provider¡¢Consumer£¬ÒÔ¼°×¢²áÖÐÐÄ£¨Öмä Zookeeper
ÊÇ×÷Ϊע²áÖÐÐÄÀ´Ê¹Óõģ©¡£Õû¸ö×¢²á¹ý³ÌÈçÏ£º
Provider »á°ÑÒ»³¤´® URL£¨dubbo://xxx µÄ×Ö·û´®£©Ð´Èëµ½ Zookeeper
ÀïÃæÄ³¸ö½ÚµãÀïÃæÈ¥¡£
Consumer µÄ×¢²áÒ²ÊÇÀàËÆ£¬»áдµ½ Zookeeper ÀïÃæÄ³¸ö½Úµã£¨Consumer дÈëµÄÔÒò£¬ÊÇÒòΪ
OPS ·þÎñÖÎÀíµÄʱºòÐèҪʵʱµÄÏû·ÑÕßÊý¾Ý£©¡£
Consumer ·¢ÆðÒ»¸ö¶©ÔÄ£¬¶©ÔÄÏà¹ØµÄ·þÎñ¡£
µ±Ä³¸ö·þÎñµÄ Provider ÁбíÓб仯µÄʱºò£¬Zookeeper »á½«¶ÔÓ¦µÄ±ä»¯Í¨Öªµ½¶©ÔĹýÕâ¸ö·þÎñµÄ
Consumer ÁÐ±í¡£
´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´µ½ Provider ¶ËµÄ URL ·Ç³£³¤£¬ÌرðÊǵ±Ò»¸ö·þÎñÓдóÁ¿·½·¨µÄʱºò¡£Provider
¶ËµÄ URL »áÏÈ´Ó Provider µ½ Zookeeper£¬ÔÙÍù Consumer ´«µÝ£¬ÕâÑùµ¼ÖÂÁ˵¥´Î´«ÊäµÄÍøÂ翪Ïú±È½Ï´ó¡£
ÄÇôÔÙÀ´¿´Ò»Ï¼¯ÈºµÄÇéÐΣ¬Í¼ÖÐ×ó±ßÓÐ N ¸ö Provider£¬ÓÒ±ßÓÐ M ¸ö Consumer£¬ÄÇô
Provider ·¢²¼µÄʱºò£¬»áÓöµ½Ê²Ã´ÇéÐÎÄØ£¿Provider ÿ´Î·¢²¼Ëü»áÏÈÏÂÏßÔÙÉÏÏߣ¬ËùÒÔÿ¸ö
Provider ·¢²¼µÄʱºò£¬Provider »á·¢ËÍÁ½´Î֪ͨ£¬Ò²¾ÍÊÇ·¢ËÍ 2N ´Î£»½ÓÊÕÊý¾Ý·½ÓÐ
M ¸ö Consumer£¬×îºóËã³öÔÚÕû¸öÍøÂçÀïÃæµÄÍÆËÍÊý¾ÝµÄ´ÎÊýÊÇ 2N¡ÁM¡£
°¸Àý
À´¿´Ò»¸öÕæÊµµÄ°¸Àý£¬ÔÚº¼ÖÝÓÐÒ»¼ÒÖеȹæÄ£µÄµçÉ̹«Ë¾£¬¹«Ë¾ÄÚ²¿ÓÐ 4000+ ¸ö·þÎñ£¬ÒÔ Zookeeper
×÷Ϊע²áÖÐÐÄ£¬Zookeeper ÓÐ 100w ¸ö½Úµã£¬ÔÚ·¢²¼ÈÕµÄʱºò£¬¹«Ë¾ÄÚ²¿ÍøÂçµÄÍø¿¨±»´ò±¬ÁË£¬½ø¶øµ¼Ö·þÎñ±ä¸üµÄÍÆËÍʧ°Ü£¬ÐµķþÎñ×¢²áҲʧ°Ü¡£Õû¸ö¼¯Èº»ù±¾ÉÏ´¦ÓÚ²»¿ÉÓÃ״̬¡£Í¬ÑùµÄÒ²ÊÕµ½ÁËһЩÖÐС¹«Ë¾µÄ·´À¡£¬Ã¿´ÎÔÚ·¢²¼µÄʱºò£¬ÍøÂçÒ²»áÓиö¶¶¶¯¡£
·ÖÎöÒ»ÏÂΪʲô»á³öÏÖÕâÖÖÇéÐΡ£
Zookeeper µÄ 100 Íò½ÚµãÖУ¬´óÔ¼ÓÐ 10 Íò¸ö Provider ½ÚµãºÍ 50 Íò¸ö
Consumer ½Úµã¡£°´ÕÕÇ°ÃæµÄËã·¨£¬ÔÚËùÓÐ Provider ͬʱ·¢²¼µÄ¼«¶ËÇé¿öÏ£¬ÓÐ 2¡Á10
Íò¡Á50 Íò´ÎÍÆËÍ£¬Ò²¾ÍÊÇ˵»á²úÉú 1000 ÒÚÌõµÄÊý¾ÝÍÆËÍ¡£Õë¶Ôÿ´ÎÍÆË͵ÄÊý¾Ý½øÐÐÁËÒ»¸öͳ¼Æ£¬Ã¿Ìõ
URL ´óС´ó¸ÅÓÐ 1KB£¬ÄÇô¼ÆËã³öÀ´µÄ¼«¶ËµÄÍÆËÍÊý¾ÝÁ¿ÊÇ 1KB ÔÙ³ËÒÔ 1000 ÒÚ£¬ÒѾÊÇ
100TB µÄ¼¶±ðÁË¡£
ÉÏÃæËµµÄÊǼ«¶ËÇéÐΣ¬¾ÍËãÊÇ·¢²¼ÈÕÒ²²»¿ÉÄÜͬʱ½øÐз¢²¼£ºÓеÄÓ¦Ó÷¢²¼ÈÕ²»·¢°æ±¾£¬²»Í¬Ó¦Óò»¿ÉÄÜͬʱ·¢²¼£¬Í¬Ò»¸öÓ¦ÓÃÒ²ÐèÒª·ÖÅú·¢²¼¡£¼ÙÉèͬһʱ¿Ì·¢²¼µÄÁ¿ÔÚǧ·ÖÖ®Ò»£¬ÄÇÃ´ÍÆË͵ÄÊý¾ÝÁ¿Ò²ÔÚ
100GB£¬ËùÒÔ³öÏÖ·¢²¼ÈÕµÄʱºò¼ä¶ÏÐÔµØÍø¿¨±¬µôµÄÏÖÏó¾Í²»×ãÎªÆæÁË¡£Ã¿´Î·¢²¼µÄʱºò£¬¶¼»áÏë×ÅÒª¸ú±ðµÄÓ¦Ó÷¢²¼Ê±¼ä´í¿ª£¬ÕùÈ¡µ¥¶À·¢²¼£¬×÷Ϊ³ÌÐòÔ±»¹Òª¾À½áÕâ¸öÊÂÇéÕæÊÇÒ»¸ö±¯¾ç¡£
°¸Àý·ÖÎö
À´·ÖÎöÏÂÏÖÔÚµÄÎÊÌâºÍÐèÇó£º
Ê×ÏÈ£¬¸ù¾ÝÉÏÊö°¸ÀýÖеÄÊý¾Ý·ÖÎöµÃÖª£¬ÐÔÄܳöÏÖÁËÎÊÌâ¡£ÍÆË͵ÄÊý¾ÝÁ¿·Ç³£´ó£¬´æ´¢µÄÊý¾ÝÁ¿´ó£¬ÍøÂç´«ÊäÁ¿´ó£¬·þÎñÍÆËÍÑÓ³Ù£¬Íø¿¨¶ÂÈû£¬·þÎñ×¢²á²»¿ÉÓá£
½Ó×Å¶Ô Provider ¶ËÄǸöºÜ³¤µÄ URL ½øÐзÖÎöÖ®ºó·¢ÏÖ£¬²»ÐèÒª°ÑÕû¸ö URL дµ½×¢²áÖÐÐÄÀֻÐèÒª°Ñ
IP µÄ¶Ë¿Úд½øÈ¥¾Í¿ÉÒÔÁË£¬ÒòΪֻÓÐ IP µÄ¶Ë¿ÚÐèҪʵʱ±ä»¯¡£°ÑÆäËûÐÅÏ¢·Åµ½Ò»¸öÀàËÆµÄ KEY-VALUE
½á¹¹µÄ³Ö¾Ã»¯´æ´¢ÀïÈ¥£¬¶øÇÒÕâ¸ö KEY-VALUE ½á¹¹Ö»ÒªÊÇÓ¦Óü¶±ð¾ÍÐÐÁË£¬½ÚÊ¡ÁË´óÁ¿µÄ´æ´¢¿Õ¼ä¡£
ÉçÇøÖжԷþÎñ²âÊÔµÄÐèÇó·Ç³£Ç¿ÁÒ¡£ÒªÖ§³Ö·þÎñ²âÊÔÐèÇ󣬾ÍÐèÒªÖªµÀµ÷ÓõķþÎñ·½·¨Ãû£¬Èë²Î³ö²ÎµÄÏêϸÐÅÏ¢¡£ËùÒÔÕⲿ·ÖÐÅÏ¢Ò²ÊÇÐèÒª´æ´¢ÏÂÀ´µÄ¡£µ«ÊÇÕⲿ·ÖÐÅÏ¢·Ç³£´ó£¬Ã¿¸ö·þÎñÖпÉÄÜÓÐ
10 ¶à¸ö·½·¨£¬Ã¿¸ö·½·¨¿ÉÄÜÓÐÈýËĸö·½·¨Èë²Î£¬Èë²ÎºÍ³ö²ÎµÄÍêÕûÊý¾Ý½á¹¹ÍùÍù·Ç³£¸´ÔÓ¡£Õⲿ·ÖÊý¾ÝÐÅÏ¢Ò²½Ð×ö·þÎñµÄÔªÊý¾ÝÐÅÏ¢¡£
Ê×ÏÈÀ´¿´Ò»ÏÂÔõô½â¾öÐÔÄܵÄÎÊÌâ¡£Ö÷ÒªÓÐÁ½ÖÖ·½Ê½¿ÉÒÔ½â¾ö£º
Ôõô¼õÉÙµ±´ÎµÄ×¢²áÁ¿£¬¾ÍÏñÇ°Ãæ·ÖÎöµÄ£¬Ö»´æ´¢ IP µÄ¶Ë¿Úµ½×¢²áÖÐÐÄ£»
ÊÇ·ñ¿ÉÒÔ¼õÉÙÍÆË͵ĴÎÊý£¬ÏÖÔÚÍÆËÍ´ÎÊýÌ«´óÁË¡£
¼õÉÙµ¥´ÎÍÆËÍÁ¿

²é¿´ÉÏͼ¿ÉÖª£¬Provider ¶Ë URL »¹ÊǺܳ¤£¬ÆÚÍû¼ò»¯Íù×¢²áÖÐÐÄ×¢²áµÄÐÅÏ¢£»Í¬Ê±·þÎñ²âÊÔÐèÇó£¬ÓÖͬʱÆÚÍûÄܽ«¸ü·á¸»µÄÔªÊý¾ÝÐÅÏ¢½øÐг־û¯µÄ´æ´¢¡£
Provider ¶ËдÈëµÄ¸ÄÔì¡£Provider Íù×¢²áÖÐÐÄдµÄʱºò£¬½«Õû¸öÊý¾ÝµÄдÈë·Ö³ÉÁ½²¿·Ö£º
дÈë×¢²áÖÐÐÄ£»
дÈëÔªÊý¾ÝÖÐÐÄ¡£
×¢²áÖÐÐÄ×÷Ϊ·þÎñµÄ×¢²áºÍ·¢ÏÖ£¬¸ü¼Ó¹Ø×¢Êý¾ÝµÄʵʱÐÔºÍÓÐЧÐÔ (watch »úÖÆ)£¬Õû¸ö URL ÖÐ
IP ºÍ¶Ë¿Ú¾ÍÄÜÅжÏij¸ö·þÎñÊÇ·ñ¿ÉÓã¬ÆäËûÐÅÏ¢¶¼ÊÇÏà¶Ô¹Ì¶¨²»±äµÄ¡£ËùÒÔ×¢²áÖÐÐÄÖУ¬Ö»ÐèÒª´æ´¢ IP
ºÍ¶Ë¿Ú¡£ÔªÊý¾ÝÖÐÐÄÖд洢 URL Öгý IP ºÍ¶Ë¿ÚÍâµÄÆäËûÐÅÏ¢£¬¼ÓÉÏ·þÎñ²âÊÔÐèÒªµÄ·þÎñ·½·¨Ãû£¬·þÎñ·½·¨µÄ³öÈë²ÎÐÅÏ¢¡£ÔªÊý¾ÝÊÇÒ»¸ö
KEY-VALUES µÄ³Ö¾Ã»¯´æ´¢£¬ÊǶÀÁ¢ÓÚ×¢²áÖÐÐĵĴ洢£¬Ëü²»ÐèÒªÓÐ watch µÄ»úÖÆ£¬¶øÖ»ÐèÒªÌṩ³Ö¾Ã»¯´æ´¢¡£Í¼ÖÐʹÓõĵÄ
KEY VALUE ´æ´¢ÊÇ Redis£¬µ«ÊÇÔªÊý¾ÝÖÐÐ͍ÒåÁËÒ»Ì× SPI£¬¿ª·¢Õß¿ÉÒÔÈ¥À©Õ¹£¬¿ÉÒÔ×Ô¼ºÊµÏÖ
DB ´æ´¢£¬»òÕ߯äËû³Ö¾Ã»¯´æ´¢µÄ·½Ê½¡£
Consumer ¶Ë»ñÈ¡ Provider ÁбíÐÅÏ¢µÄ¸ÄÔì¡£Dubbo ֮ǰµÄ°æ±¾ÖУ¬Ö±½Ó´Ó×¢²áÖÐÐÄÀïÃæ»ñÈ¡
Provider ¶ËµÄ·þÎñÐÅÏ¢£¬»ñÈ¡µ½µÄÐÅÏ¢ÒѾÊÇÒ»¸öÍêÕûµÄ¿Éµ÷ÓõķþÎñÐÅÏ¢¡£µ«ÊÇ Provider
¶ËдÈë¸ÄÔìÖ®ºó£¬ÔÓÐ Consumer ¶Ë»ñÈ¡µÄ Provider ·þÎñÐÅÏ¢µÄ·½Ê½²»¿ÉÓÃÁË¡£³ýÁË´Ó×¢²áÖÐÐÄ»ñÈ¡µ½µÄÊý¾ÝÖ®Í⣬»¹ÐèÒª´ÓÔªÊý¾ÝÖÐÐÄÀïÄõ½ÔªÊý¾ÝÐÅÏ¢£¬È»ºó¶ÔÕâÁ½²¿·ÖÊý¾Ý×öÒ»¸ö
Merge Ö®ºó²ÅÄܹ¹½¨³öÍêÕûµÄ¿Éµ÷ÓõķþÎñÐÅÏ¢¡£
µ±Ç° Dubbo2.7 °æ±¾»¹Ã»ÓÐÍêȫȥ³ýËùÓвÎÊý£¬¶øÊDzÉÓÃÏÈÈ¥³ý²¿·Ö²ÎÊýµÄ·½Ê½À´ÑéÖ¤£»ºóÐø»áÖð½¥µü´úÍêÉÆ£¬Í¬Ê±ÔÚ
2.6.x °æ±¾ÖÐÒ²»á½øÐÐһЩ¼æÈÝ·½°¸µÄÖ§³Ö¡£
Ó¦Óü¶·þÎñ×¢²á
ÉÏÃæµÄ¸ÄÔìÕë¶ÔµÄÊÇÔõô¼õÉÙµ¥´ÎµÄÍÆËÍÊý¾ÝÁ¿£¬Õë¶ÔµÄ»¹ÊÇ·þÎñά¶È¡£ÆÚÍûÖÐ×îÀíÏëµØ¸ø×¢²áÖÐÐļõ¸ºµÄ·½Ê½ÊÇÓ¦ÓÃά¶ÈµÄ·þÎñ×¢²áºÍ·¢ÏÖ£¬¿ÉÒԲο¼
Spring Cloud ÌåϵÏ嵀 Eureka ʵÏÖ¡£Ò»µ©ÊµÏÖÕâÖÖ·½°¸£¬·þÎñ×¢²áÖÐÐľÍÔÙÒ²²»»á³ÉΪ
RPC ÁìÓòµÄÆ¿¾±£¬¶øÇÒ¿ÉÒÔÈÏΪÕâÖÖ·½°¸ÊÇ·þÎñ×¢²áµÄ ÖÕ¼«·½°¸¡£
µ±È»ÕâÖÖʵÏÖ·½Ê½×öµÄ¸Ä¶¯Ïà¶Ô±È½Ï´ó£¬²»½öÐèÒª½«·þÎñÖ´ÐкÍÔËάÍêÈ«·Ö¿ª£¬¶øÇÒÐèÒªÒ»¶¨µÄ¼Ü¹¹Ìåϵ¸ÄÔìÀ´Ö§³Å¾ßÌå·þÎñµÄ·¢ÏÖ¡£µ½Ä¿Ç°ÎªÖ¹»¹Ã»ÓÐÐγɳÉÊì¿É¿¿µÄ·½°¸£¬ÍŶÓÄÚ²¿Ò²Ö»ÊÇÔÚ̽Ìֽ׶Ρ£
·þÎñ±ä¸üÍÆËÍ¿ª¹Ø
Ëùν·þÎñ±ä¸üÍÆËÍ¿ª¹Ø£¬¾ÍÊÇÕë¶ÔÈκεķþÎñÐÅÏ¢µÄ±ä¸ü£¬²»½øÐÐÍÆËÍ¡£
µ½µ×ÄÄÖÖÇéÐÎÐèÒªÕâÖÖ¿ª¹ØÄØ£¿°¢Àï°Í°ÍÕû¸ö¼¯ÈºµÄ»úÆ÷Êý·Ç³£´ó£¬ËùÒÔËÞÖ÷¹Òµô»òÕßÐéÄâ»ú¹Òµô³öÏֵĸÅÂʱȽϸߡ£ÔÚÿÄê˫ʮһµÄʱºò£¬´ó²¿·ÖÏû·ÑÕß¶¼»áÈ¥ÌÔ±¦ÌìèÉϹºÎï¡£ÔÚ
11 Ô 10 ºÅ 11 µã 50 ¼¸·Ö¿ªÊ¼£¬´óÁ¿Âò¼ÒÔÚÆ´ÃüµØË¢Ð¹ºÎï³µ»òÕßÉÌÆ·ÏêÇéÒ³Ãæ£¬Õâʱºò°¢Àï°Í°ÍÄÚ²¿µÄϵͳ¸ºÔØÊǷdz£¸ßµÄ£¬ÍøÂç¸ºÔØÒ²·Ç³£¸ß¡£Èç¹ûÕâʱºò£¬ÓÐһ̨»úÆ÷ÒòΪËÞÖ÷»ú¹ÒÁ˵ÄÔÒò¶øµ¼Ö²¿·Ö·þÎñÏÂÏߣ¬ÕâʱºòÐèÒªÍÆËÍÏà¹ØÓ¦Ó÷þÎñÏÂÏߵıä¸ü¸ø¶ÔÓ¦µÄ·þÎñ
Consumer¡£Õâʱºò¾ÍÐèÒªÕ¼ÓÃÍøÂç´ø¿í£¬¿ÉÄܶԷþÎñµ÷ÓòúÉúÓ°Ï죬½ø¶ø»¹»á¶Ô˫ʮһÔì³ÉºÜ´óµÄѹÁ¦¡£ËùÒÔÕâʱºò¾ÍÏ£ÍûÓÐÒ»¸ö¿ª¹Ø£¬Äܹ»°ÑÕû¸ö·þÎñÍÆË͹صô¡£
µ«ÊÇÕâʱºòÒ²»á´øÀ´Ò»Ð©ÎÊÌ⣬µ±·þÎñ Provider ²»¿ÉÓõÄʱºò£¬×¢²áÖÐÐÄûÓÐÏò·þÎñ Consumer
ÍÆËͱä¸ü֪ͨ£¬·þÎñ Consumer ÇëÇóµÄʱºò¿ÉÄܻᱨ´í£¬ÕâʱºòµÄС²¿·Ö·þÎñ³ö´í¿ÉÒÔÔÊÐíµÄ£»±£Ö¤Õû¸ö¼¯ÈºÉÏÍǫ̀»úÆ÷£¬ÌرðÊÇÕû¸ö˫ʮһºËÐÄÁ´Â·µÄÎȶ¨ÐÔ²ÅÊÇ˫ʮһ×îÖØÒªµÄʹÃü¡£
·þÎñ·Ö×é
ÔÚÒ»¸ö´óµÄ¼¯Èº»·¾³ÖУ¬ÔÚûÓзÓɹæÔòµÄÇé¿öÏ£¬Consumer ¼¯Èº»áµ÷ÓÃÕû¸ö Provider ¼¯ÈºÖеÄÈκλúÆ÷¡£·þÎñ·Ö×飬¾ÍÊǶÔ
Consumer ¼¯ÈººÍ Provovider ¼¯Èº½øÐзÖ×飬½«´óµÄ·þÎñ¼¶·Ö³É¼¸¸ö×Ó¼¯¡£
¾Ù¸öÀý×Ó£¬¼¯ÈºÖÐÓÐ 8 ¸ö Consumer ʵÀý£¬ÓÐ 8 ¸ö Provider ʵÀý£¬°´ÕÕÕý³£Á÷³Ì
Consumer Õâ 8 ¸öʵÀý»áµ÷Óà Provider ÈκÎһ̨£¬ÈκÎÒ»¸ö Provider µÄ±ä¸ü֪ͨҲ»á֪ͨµ½Õâ
8 ¸ö Consumer ʵÀý¡£µ«ÊÇÈç¹û¶ÔËü½øÐзÖ×éÄØ£¬Consumer ʵÀý¼¯Èº·Ö³É A ºÍ B
Á½¸ö×飬Provider ¼¯ÈºÒ²·Ö³É A ºÍ B Á½¸ö×é¡£Consumer ÖÐ A µÄ×éÖ»Äܵ÷µ½ Provider
ÖÐ A ×éµÄ·þÎñ£»Provider µÄ A ×éÖеÄʵÀýÔÚ·¢²¼¹ý³ÌÖУ¬Ò²Ö»»áÍÆË͵½ Consumer
µÄ A ×éÖУ¬¶ø²»»áÍÆ¶¯ Consumer µÄ B ×é¡£×îÖÕͨ¹ýÍÆË͵ķ¶Î§£¬À´¼õÉÙÁËÍÆË͵ÄÊý¾Ý×ÜÁ¿¡£
¶ÔÓÚ·þÎñ·Ö×éµÄµÄʵÏÖ£¬ÕâÀï²»×öÕ¹¿ª£¬±¾ÎĺóÃæÔٴν²µ½·þÎñ·Ö×éµÄʱºò£¬»áÉÔ΢չ¿ª³ÂÊö¡£
·þÎñ×¢²áÖÐÐÄ
Ç°Ãæ³ÂÊöµÄ·þÎñ×¢²áÏà¹ØµÄ¸ÄÔìºÍ·½°¸£¬¶¼ÊÇÎ§ÈÆ Dubbo µÈ RPC ½øÐеġ£½Ó×ÅÀ´¿´Ò»ÏÂÔÚ»¥ÁªÍø»·¾³Ï£¬ÀíÏëµÄ×¢²áÖÐÐÄÊÇʲôÑù×ӵġ££¨ÒÔϲûÊöÖ»´ú±í¸öÈ˹۵㣩
CAP ÀíÂÛ£ºÏÖÔڴ󲿷ÖÖ÷Á÷¶øÇÒÔÚʹÓÃÖеÄ×¢²áÖÐÐͼÊÇÂú×ã CP µÄ£¬µ«ÊÇÔÚ»¥ÁªÍø´ó¼¯Èº»·¾³Ï£¬ÆÚÍûµÄ½á¹ûÊÇÂú×ã
AP µÄͬʱ£¬Äܹ»Âú×ã×îÖÕÒ»ÖÂÐÔ¡£ÔÚ´ó¼¯Èº»·¾³Ï£¬¿ÉÓÃÐÔÍùÍù±ÈǿһÖÂÐÔµÄÓÅÏȼ¶¸ü¸ß¡£ÒÔ Zookeeper
ΪÀý£¬Zookeeper Äܹ»Îª·Ö²¼Ê½ÏµÍ³Ìṩе÷¹¦ÄܵķþÎñ£¬Ä¬ÈÏÌṩǿһÖÂÐÔµÄÊý¾Ý·þÎñ£¬µ«ÊÇËüÔÚijЩÇé¿öÏÂÊÇÔÊÐí
Zookeeper ÊDz»¿ÉÓõġ£ÁоÙÒ»¸ö³¡¾°,Zookeeper Leader ʧЧÁË£¬ÕâʱÐèÒªÖØÐÂÑ¡¾Ù
Leader£¬¶øÕâ¸öÑ¡¾Ù¹ý³ÌÐèÒª 30 ÃëÒÔÉÏ (Êý¾ÝÀ´×ÔÓÚÍøÉϵÄÎÄÕÂ)£¬Õâ¶Îʱ¼äÄÚ Zookeeper
¶ÔÍâÊDz»¿ÉÓõġ£
È¥ÖÐÐÄ»¯£ºZookeeper ÊÇÓÐ Leader »úÖÆ£¬Íù Zookeeper ÀïдÊý¾Ý¶¼ÊÇÍù Leader
ÀïÃæÐ´£¬Õâ¸ö Leader Æäʵ¾ÍÊÇÒ»¸öµ¥µã¡£ËùÒÔÕû¸öдµÄ¹ý³ÌÊÇÖÐÐÄ»¯µÄ¡£¶øÇÒ Zookeeper
¶Ô¿ç³Ç¿ç»ú·¿µÄ·½°¸ÉÏ£¬Ö§³Ö·Ç³£ÓÐÏÞ¡£
Êý¾ÝÍÆË͵ÄÇ¿¿ØÖÆ£ºÆÚÍû¶ÔÍÆË͵ÄÓиü¼ÓÇ¿µÄÁé»îÐÔ¡£»¹ÊÇÒÔ Zookeeper ΪÀý£¬Zookeeper
ÖÐÓÐ watch »úÖÆ£¬Ã¿¸öÊý¾Ý½Úµã·¢Éú±ä¸üµÄʱºò£¬¾Í»áÍùÍâÍÆËͱä¸üµÄ֪ͨ¡£µ«ÊÇ×÷Ϊע²áÖÐÐÄ£¬ÎÒÃÇÆÚÍûÄܹ»¿ØÖÆËüµÄÍÆËÍÆµÂÊ£¬Õë¶ÔÐÂÔö½ÚµãÖ»ÐèÒªÒ»·ÖÖÓÀïÃæÍÆËÍ
6 ´Î¾Í¿ÉÒÔÁË£¬Ã¿Ê®ÃëÍÆËÍÒ»´Î£¬ÕâÑù¿ÉÒԺϲ¢Ò»Ð©±ä¸ü֪ͨ£¬¼õÉÙÍøÂçÊý¾ÝÇëÇóµÄÊý¾ÝÁ¿¡£
ÈÝÁ¿£ºDubbo Êǵ¥½ø³Ì¶à·þÎñµÄ·½Ê½À´×¢²á·þÎñµÄ¡£ÕâÒ²¾ÍÒâζ×Å×¢²áÖÐÐÄÖÐÐèÒª´æ´¢µÄÊý¾ÝÁ¿½Ï´ó£¬ËùÒÔÒªÓÐ×ã¹»µÄÈÝÁ¿À´Ö§³ÅÕâÖÖ³¡¾°¡£
ÄÇЩע²áÖÐÐIJúÆ·£ºZookeeper ×÷Ϊ·þÎñ×¢²áÖÐÐĵĹ«Ë¾ÔÚ¼õÉÙ£¬ÄÇôÏÖÔÚÓÐÄÄЩ·½°¸£¬¿ÉÒÔÀ´Ìæ´úÄØ£¿
Eureka ÊÇÒ»¸ö AP µÄÓ¦Ó㬶øÇÒËüÊÇÈ¥ÖÐÐÄ»¯µÄ¡£µ«ÊÇËüÓм¸µã²»×㣺
ÔÚÎÒÃǵÄÄÚ²¿µÄÐÔÄܲâÊÔÖУ¬ËüÐÔÄܱíÏַdz£Ò»°ã£¬ÐÔÄÜ´ó¸ÅÖ»ÓÐ Zookeeper µÄ 60% ×óÓÒ¡£
Eureka ÄÚÓÐÒ»ÖÖÆõÔ¼»úÖÆ£¬Ëüÿ¸ô 30 Ãë»á·¢ÆðÒ»¸öÐøÔ¼µÄÇëÇó£¬Èç¹û 3 ´ÎûÓнÓÊÕµ½£¬Ëü²Å»á¹ýÆÚʧЧ£»Èç¹ûÒ»¸ö·þÎñ·ÇÕý³£Í˳ö£¨Ã»Óз¢Æð½âÔ¼ÇëÇ󣩣¬ÄÇô¾Í´æÔÚÕâ¸ö³¬Ê±µÄ¼ä϶ÆÚ£¬·þÎñÊDz»¿ÉÓõġ£ËùÒÔÔÚÉú²ú»·¾³£¬¶Ô·þÎñÃô¸ÐµÄÏà¹ØÓ¦Ó÷½ÊÇÎÞ·¨Âú×ãÐèÇóµÄ¡£
Eureka ÊÇÓ¦ÓÃά¶ÈµÄ·þÎñ×¢²á£¬µ±Ç°µÄ dubbo ÊÇ·þÎñά¶ÈµÄ×¢²á£¬Èç¹ûҪƥÅäµÄ»°£¬ÐèÒª´ó·¶Î§¸ÄÔì¡£
Netflix Ðû²¼ÁËÍ£Ö¹¸üРEureka 2.0¡£
Etcd ÊÇ Zookeeper µÄÉý¼¶°æ£¬Ëü²Î¿¼ÁË Zookeeper µÄºÜ¶àʵÏÖ£¬Í¬Ê±½øÐÐÁ˽϶àÓÅ»¯¡£Etcd
µÄǿһÖÂÐÔÐÒéºÍ´úÂëʵÏÖ¸ü¼Ó¼òµ¥£¬ËüµÄ²¿Êð·½Ê½Ò²¸ü¼Ó¼òµ¥£¬ËüÖ§³ÖÁË Rest µÄ·½Ê½½øÐÐÏà¹Ø·ÃÎÊ£¬ËüµÄÐÔÄÜÏà¶Ô
Zookeeper À´ËµÒ²ÓÐÁËÒ»¶¨µÄÌáÉý¡£µ«ÊÇËü»¹ÊÇÒ»¸ö CP µÄϵͳ£¬ËüÒ²ÊÇÒªÇóÊý¾ÝµÄǿһÖÂÐÔ£¬¶øÎþÉü²¿·ÖµÄ¿ÉÓÃÐÔ¡£
Consul Ïà¶ÔÇ°Ãæ¼¸¸ö²úÆ·À´Ëµ£¬¸ü¼Óרע·þÎñ×¢²á·¢ÏÖ±¾Éí£¬ËüÊÇÒ»¸ö±È½ÏרҵµÄ·þÎñ×¢²áÖÐÐÄ¡£Consul
ÓÐÁ˺ǫ́¹ÜÀíÒ³Ãæ£¬ËüÓÐÁ˽¡¿µ¼ì²é£¬Consul ÔÉúÖ§³Ö¶àÊý¾ÝÖÐÐÄ¡£µ«ËüµÄÐÔÄÜÉÏÓÐÆ¿¾±µÄ£¬ËüºÍ Zookeeper
ºÍ ETCD ½øÐжԱȣ¬ËüÐÔÄÜÊÇÉÔ΢²îÒ»µãµÄ£»Í¬Ê± Consul Ò²ÒªÇóÊý¾ÝµÄǿһÖÂÐÔ¶øÎþÉü²¿·Ö¿ÉÓÃÐÔ¡£
Nacos Êǰ¢Àï°Í°Í¿ªÔ´µÄÒ»¸ö²úÆ·£¬ÄÚ²¿ÏµÍ³Ò²ÔÚʹÓã¬ËüÒѾ¾ÊÜÁËÒ»¶¨Á÷Á¿ºÍÓû§µÄ¿¼Ñé¡£ÏÖÔÚ°¢Àï°Í°Í¼¯ÍÅÄÚ²¿µÄ
Provider ºÍ Consumer ÊýÁ¿ÒѾµ½´ïÁËÒڵļ¶±ð£¬ËüÏÖÔÚÄܹ»Ö§³ÅÉÏÒÚ¼¶±ðµÄ¶©ÔÄÁ¿£¬ÕûÌå¾ÊÜÁËÒ»¶¨µÄʵ¼ù¼ìÑé¡£Nacos
ÕûÌåÉè¼ÆÊÇÈ¥ÖÐÐÄ»¯µÄ£¬¶øÇÒÉè¼ÆÉÏÂú×ã AP ºÍ×îÖÕÒ»ÖÂÐÔ£¬ÐÔÄÜÉÏºÍ Zookeeper ±È½Ï½Ó½ü¡£
ǰ¶Îʱ¼äºÍÍøÒ׿¼ÀÔÚ¹µÍ¨¹ý³ÌÖÐÒ²·¢ÏÖ£¬ËûÃÇÒ²ÔÚ×öÒ»¸ö×Ô¼ºµÄ×¢²áÖÐÐÄ£»ÐÂÀËÒ²ÓÐÒ»¸ö×Ô¼ºµÄ·þÎñ×¢²áÖÐÐÄ¡£ËùÒÔÐí¶à´óµÄ»¥ÁªÍø¹«Ë¾£¬ÒòΪ¶¨ÖÆ»òÕß²îÒ컯µÄÐèÇ󣬶¼ÔÚ×ÔÑÐ×¢²áÖÐÐÄ¡£
ÅäÖÃÖÐÐÄ
µ±Ç°À§¾³
Ó¦Óÿª·¢Õß
Dubbo ÄÚ²¿ÓÐÒ»¸öÅäÖÃÎļþ½Ð dubbo.properties£¬ÕâÖÖÅäÖ÷½Ê½ºÍ Spring Boot
µÄ application.properties ÊDZȽÏÏñµÄ¡£Ã¿´Îпª·¢Ò»¸ö Dubbo Ó¦ÓõÄʱºò£¬Ó¦Óÿª·¢Õß¶¼ÐèҪȥдһ´ó¶ÑµÄÅäÖõ½
dubbo.properties ÖУ¬°üÀ¨×¢²áÖÐÐĵĵØÖ·£¬ÔªÊý¾ÝÖÐÐĵĵØÖ·£¬Ó¦Óü¶±ðµÄ³¬Ê±Ê±¼äµÈµÈ¡£µ±ËùÔÚ¹«Ë¾Ö»ÓÐÁ½Èý¸öÓ¦ÓõÄʱºò£¬Ò»¸ö¸öÓ¦Óõ¥¶ÀÉèÖõķ½Ê½ÊÇûÎÊÌâµÄ£»µ±ÒµÎñ¿ìËÙ·¢Õ¹µÄʱºò£¬Ó¦ÓÃÊý´Ó
2 ¸ö±ä³É 20 ¸öÓ¦ÓõÄʱºò£¬ÄÇôËùÔڵļ¼ÊõÍŶӿÉÄÜÐèÒªÕûÀíÒ»·Ý¿ìËÙ¹¹½¨Ó¦ÓõÄÎĵµ£¬¹©Ó¦Óÿª·¢Õ߲ο¼Ê¹Ó㬶øÇÒÕâ¸öÎĵµÐèÒª¼°Ê±Î¬»¤¸üС£Èç¹ûÕâʱºò»¹ÐèÒª¸ü¸Ä×¢²áÖÐÐĵØÖ·£¨ÔÀ´
2 ¸öÓ¦ÓõÄʱºò£¬Zookeeper µÄµØÖ·Óà IP À´¿ìËÙʵÏÖ£¬ÏÖÔÚÏë»»³ÉÓòÃûÁË£©£¬Òâζ×ÅÒªÈ¥ÍÆ¶¯Õâ
20 ¸öÓ¦ÓõĿª·¢Õߣ¬ÈÃËûÃÇÐ޸ĶÔÓ¦µÄÅäÖã¬È»ºó²âÊÔ²¢ÇÒ·¢²¼¡£Õû¸ö¹ý³Ì·Ç³£Í´¿à£¡ÐèÒªÓÐÒ»ÖÖÀàËÆÓÚ Spring
Cloud Config µÄÅäÖ÷½Ê½À´Âú×㼯ÖÐʽµÄÅäÖ÷½Ê½£¬Ï൱ÓÚÒ»¸öÔ¶³Ì¼¯ÖÐʽµÄ dubbo.properties¡£
Dubbo ¿ª·¢Õß
Dubbo 2.7 ÒÔǰµÄ°æ±¾ÖУ¬·þÎñ·ÓɹæÔò£¬·þÎñÖÎÀí¹æÔòµÄÊý¾Ý¶¼ÊÇ´æ´¢ÔÚ×¢²áÖÐÐÄÖеġ£Ö®Ç°´ó²¿·ÖÓû§¶¼Ñ¡ÓÃ
Zookeeper ×÷Ϊע²áÖÐÐÄ£¬Zookeeper ¼æ¾ßÁË Key-Value µÄ¹¦ÄÜ£¬ËùÒÔ֮ǰµÄ°æ±¾ÖÐÔËÐÐÆðÀ´ÊÇûÓÐÎÊÌâµÄ¡£
µ«ÊÇÈç¹ûÑ¡ÓõÄ×¢²áÖÐÐÄ£¬²»¾ßÓг־û¯µÄ¹¦ÄÜ£¬ÕâʱºòµÄ·ÓɹæÔòºÍ·þÎñÖÎÀí¹æÔò¾ÍûµØ·½´æ´¢ÁË£¬Õû¸öϵͳ¾ÍÍæ²»×ªÁË¡£×÷Ϊ
Dubbo ¿ª·¢Õߣ¬ÆÚÍû½«·þÎñÖÎÀíºÍ·þÎñ·ÓɹæÔò·Ö¿ª´æ´¢µ½Ò»¸ö¼¯ÖÐʽµÄ Key-Value ´æ´¢ÖС£
Òª½â¾öÉÏÊöÁ½¸öÍ´µã£¬ÐèÒªÔÚ Dubbo ÖÐÒýÈëÒ»¸öÔ¶³ÌµÄ¼¯ÖÐʽµÄÅäÖÃÖÐÐÄ£¬Õâ¸öÅäÖÃÖÐÐÄ´æ´¢ÁËÔ¶³ÌµÄ
dubbo.properties£¬Â·ÓɹæÔò£¬·þÎñÕâÀï¹æÔòµÈ¡£
Ó¦Óüܹ¹Ê¦
¾Ù¸ö³¡¾°£¬Ò»¸ö¹«Ë¾µÄËùÓÐÓ¦ÓÃÒѾÒýÈëÁË ETCD ×÷Ϊ×Ô¼ºµÄÓ¦ÓõĶ¯Ì¬ÅäÖùÜÀí£¬µ«ÊÇÔÚÒýÈë Dubbo
ÒÔºó£¬Dubbo ÖÐÓÖÓм¸Ì×¶ÔÓ¦µÄ¶¯Ì¬ÅäÖÿɹ©Ñ¡Ôñ£¬Èç Nacos¡¢°¢²¨ÂÞ£¬Zookeeper¡£Õâ¾ÍÒªÇó¹«Ë¾²ãÃæÐèҪά»¤Á½Ì×¶¯Ì¬ÅäÖõÄ
Server£¬Õâ¸ö³É±¾±È½Ï¸ß£¬¶øÇÒÔö¼ÓÁËϵͳµÄÎȶ¨ÐԵķçÏÕ¡£¶ÔÓڼܹ¹Ê¦À´Ëµ£¬ÐèÒª Dubbo ÄÜÖ§³Ö
ETCD µÄ¶¯Ì¬ÅäÖá£
½â¾ö·½°¸

ͼÖзֳÉÉÏÏÂÁ½²¿·Ö£¬ÏÂÃæ»ÆÉ«²¿·Ö¾ÍÊÇËüµÄÒ»¸ö´æ´¢£»ÉÏÃæµÄÕû¸ö²¿·ÖÊÇ Dubbo ÄÚ²¿ÊµÏÖ¡£ÉÏÎÄÖÐËù½²µÄ¶¯Ì¬ÅäÖã¬ÔÚ
Dubbo Öж¨ÒåΪÅäÖÃÖÐÐÄ¡£
ÔÚʵÏÖ²ãÃæ£¬ÔÚ Dubbo Öж¨ÒåÁËÒ»²ã SPI£¬Ä¬ÈÏʵÏÖµÄ Zookeeper£¬Apollo£¬Nacos¡£Ó¦Óüܹ¹Ê¦È¥À©Õ¹Õâ¸ö
SPI ¾Í¿ÉÒÔÍê³É ETCD µÄ¶¨ÖÆ£¬ÕâÑù¾ÍÄÜ´ïµ½ºÍÔÓеÄÓ¦ÓÃÖÐʹÓà ETCD ·½Ê½¼æÈÝ¡£
¶ÔÓÚÔËά¹¤³ÌʦÀ´Ëµ£¬ÔÀ´µÄÒ»¸ö×¢²áÖÐÐĵĵØÖ·±ä¸üÒªÍÆ¶¯Ã¿¸öÓ¦Óÿª·¢ÕßÈ¥×ö±ä¶¯£¬Ó¦Óÿª·¢Õ߷dz£·³£¬ÔËά¹¤³ÌʦºÜ³ÔÁ¦¡£ÏÖÔÚÖ»ÐèÒªÔÚÔ¶³ÌµÄ
dubbo.properties Àï½øÐÐͳһȥÉý¼¶£¬È»ºó֪ͨÏà¹ØµÄÓ¦Óÿª·¢Õß½øÐÐһЩÊʵ±µÄÑéÖ¤¡£
ÒòΪÒѾ¶¨ÒåÁËÅäÖÃÖÐÐÄµÄ API£¬Dubbo ¿ª·¢ÕßÖ±½Óµ÷ÓöÔÓ¦µÄ API À´ÊµÏÖ·þÎñ¹æÔòºÍ·ÓɹæÔòµÄ´æ´¢¡£
Èý¸öÖÐÐÄ
Èý¸öÖÐÐľÍÊÇÇ°Ãæ½²µ½µÄ×¢²áÖÐÐÄ£¬ÅäÖÃÖÐÐÄ£¬ÔªÊý¾ÝÖÐÐÄ¡£

ÆÚÍûµÄʹÓ÷½Ê½£ºProvider ÏÈÈ¥ÅäÖÃÖÐÐÄÀï»ñȡע²áÖÐÐĵĵØÖ·ºÍÔªÊý¾ÝÖÐÐĵØÖ·£¬ÔÙ¸ù¾ÝÄõ½µÄ×¢²áÖÐÐĵØÖ·È¥¶ÔÓ¦µÄ×¢²áÖÐÐÄ×¢²á·þÎñ£¬¸ù¾ÝÄõ½µÄÔªÊý¾ÝÖÐÐĵØÖ·Ð´ÈëÔªÊý¾ÝÐÅÏ¢µ½¶ÔÓ¦µÄÔªÊý¾ÝÖÐÐÄ
Server¡£Consumer ºÍ OPS Ò²ÊÇÀàËÆµÄ¡£
ͨ¹ýÅäÖÃÖÐÐÄÕâÖÖ¼¯ÖÐʽµÄÅäÖ÷½Ê½£¬¿ÉÒÔÈÿª·¢Õß´ÓÔÀ´·³ËöµÄÅäÖÃÖнâÍѳöÀ´£¬ÈÃËü¸ü¾Û½¹ÓÚÒµÎñµÄ¿ª·¢£¬¶ø²»ÐèÒª¹Ø×¢¿ò¼Ü²ãÃæµÄ¶«Î÷¡£
·ÓɹæÔò
·ÓɹæÔò×éºÏ

Dubbo ·ÓɹæÔò£¬°´ÕÕ¸²¸Ç·¶Î§¿É·ÖΪӦÓü¶±ð£¬·þÎñ¼¶±ð£¬·½·¨¼¶±ð·ÓɹæÔò£»°´ÕÕ¹¦ÄÜγ¶È£¬¿ÉÒÔ·ÖΪºÚÃûµ¥£¬Ìõ¼þ·ÓÉ
£¬TAG ·ÓɹæÔò¡£´ó²¿·Ö·ÓÉÐèÇó¶¼ÊÇ¿ÉÒÔͨ¹ý×éºÏÀ´ÊµÏֵģ¬ÈçÓ¦Óü¶µÄºÚÃûµ¥¿ÉÒÔͨ¹ýÓ¦Óü¶±ð + ºÚÃûµ¥Â·ÓɹæÔò·½Ê½×éºÏ¡£
È«Á´Â·»Ò¶È·¢²¼
ij²úƷпª·¢ÁËÒ»¸öÐÂÌØÐÔ£¬Ïë½øÐÐ A/B Test£¬Èò¿·ÖÓû§¿ª·Åй¦ÄÜÌåÑ飻»òÕß²úÆ·ÔÚµü´ú¹ý³ÌÖУ¬Ïë½øÐÐϸÄÔ칦ÄܵĻҶÈÑéÖ¤¡£ÔÚµ±Ç°Î¢·þÎñµÄ¼Ü¹¹ÌåϵÏ£¬Ò»¸öй¦ÄÜÍùÍùÒÀÀµÕû¸öµ÷ÓÃÁ´Â·µÄÉÏÏÂÓÎÒ»ÆðÍê³É¡£ËùÒÔÕâÁ½ÖÖй¦ÄܵÄÑéÖ¤£¬»ù±¾²»¿ÉÄÜÔÚµ¥»úÉÏÍê³É£¬ÍùÍùÐèÒª·þÎñÁ´Â·µÄÉÏÏÂÓÎÒ»Æð¸ôÀë³öÒ»²¿·Ö»úÆ÷½øÐÐÑéÖ¤¡£ÔÚÕâÀ³ÆÎªÈ«Á´Â·»Ò¶È·¢²¼ÑéÖ¤¡£

È«Á´Â·»Ò¶È·¢²¼²Ýͼ
À´¿´Ò»ÖÖ×î¼òµ¥µÄ³¡¾°¡£¿Í»§ÔÚä¯ÀÀÆ÷¶Ë·¢ÆðÒ»¸ö HTTP ÇëÇó£¬Õâ¸öÇëÇó»á¸ù¾ÝÒ»¸ö¸ºÔؾùºâ²ßÂÔ·ÃÎʵ½Ò»Ì¨
web ·þÎñÆ÷ (30.5.127.44)£¬Õą̂»úÆ÷»áµ÷Ó÷þÎñ A ¼¯Èº£¬·þÎñ A ¼¯Èº»áµ÷Ó÷þÎñ
B ¼¯Èº¡£ÒµÎñ¿ª·¢Õß¿ª·¢ÁËÒ»¸öй¦ÄÜ£¬ÏëÔÚÏßÉÏÑéÖ¤¹¦ÄܵÄÕýÈ·ÐÔ£¬µ«ÊÇÓÖ²»ÏëÔÓеŦÄÜÊÜÓ°Ïì¡£Ò²¾ÍÊÇ˵Ïë´Ó·þÎñ¼¯ÈºÀïÄóöÉÙ²¿·ÖʵÀýÈ¥ÑéÖ¤ÏßÉϵŦÄÜ¡£¼ÙÉèÏÂÐèÇó£¬Ï£Íû×ÜÓû§µÄǧ·ÖÖ®ÎåµÄÓû§Äܹ»×ßµ½Ð¹¦ÄܵÄÁ÷³Ì£¬°ïÖúÑé֤й¦ÄܵÄÕýÈ·ÐÔ¡£
´Ó·þÎñ A ¼¯ÈºÖÐÑ¡³öһ̨»úÆ÷£¨30.5.120.16£©×÷Ϊ»Ò¶ÈÑéÖ¤µÄ»úÆ÷£¬´Ó·þÎñ B ¼¯ÈºÖÐÑ¡³öһ̨»úÆ÷£¨30.5.128.66£©×÷Ϊ»Ò¶È»úÆ÷¡£¶ÔÑ¡³öµÄÕâÁ½Ì¨»úÆ÷
´òÉϱêcanary£¨½ð˿ȸ£©¡£
ÐèÒªÔÚ Web ·þÎñÆ÷ÔËÐеĴúÂëÂß¼ÖУ¬Ôö¼ÓÂß¼£º»ñÈ¡µ½Óû§µÄ UserId£¬UserId ¶Ô 1000
ÇóÄ£Ö®ºóСÓÚ 5 µÄ£¬ÔÚ Dubbo ¶Ô·þÎñ A ¼¯Èº·¢ÆðÇëÇó֮ǰ´øÉÏ Tag=canary(ÔÚ Dubbo
ÖÐÊÇͨ¹ýÉèÖà Attachment À´Íê³É)¡£
Dubbo ×Ô´øµÄ Tag ·ÓɹæÔò»á×öÒÔÏÂÊÂÇ飺Dubbo »áÏÈÄõ½Òªµ÷Ó÷þÎñËùÔÚµÄÓ¦ÓÃÃû£»ÔÙ¸ù¾ÝÓ¦ÓÃÃû
+Tag ·ÓɹæÔòµÄÃû³Æ canary, È¥»ñÈ¡µ½¶ÔÓ¦µÄ»úÆ÷ÁÐ±í£¬Web ·þÎñ¾ÍÄõ½ÁË 30.5.120.16
Õą̂»úÆ÷£»Dubbo ¸ù¾ÝÄõ½µÄ»úÆ÷ÁбíÒÀ¾Ý¸ºÔؾùºâ²ßÂÔ·¢ÆðÇëÇó¡£ÏàÓ¦µÄ Web ·þÎñÆ÷ÖÐûÓдòÉϱêµÄ»úÆ÷£¬»á·ÃÎʵ½ÆäËû»úÆ÷
(30.5.120.26)£¬¶ø²»»á·ÃÎʵ½ÒѾ±»´òÉϱêµÄ»úÆ÷¡£Tag ·ÓɹæÔò£¬Íê³ÉÁ˶ÔÏàÓ¦ Provider
ºÍÏàÓ¦ Consumer ¶ËµÄ¸ôÀë¡£
ͨ¹ý Tag ·ÓɹæÔòÒѾ½â¾öÁË Web ¼¯Èºµ½·þÎñ A ¼¯ÈºÕâÀïÃæµÄÁ´Â·£¬µ«ÊÇÔõô½â¾ö·þÎñ A
¼¯Èºµ½·þÎñ B ¼¯ÈºµÄ Tag µÄ´«µÝÄØ£¿ÏÖÔڱȽÏÁ÷ÐеÄһЩȫÁ´Â·¸ú×ٵIJúÆ·¿ÉÒÔ°ïÎÒÃÇ×öµ½£¬Èç Open
Tracing£¬Zipkin¡£ÎÒÃÇÒÔ Zipkin ΪÀý£¬Í¨¹ý Zipkin ʵÏÖ Dubbo µÄ
Filter ¿ÉÒÔ°ÑÕâ¸ö±ê´Ó Web ¼¯Èº´«µ½·þÎñ A ¼¯ÈºÔÙ´«µ½·þÎñ B ¼¯Èº£¬Õû¸öÁ´Â·¶¼¿ÉÒÔ´«µÝÏÂÈ¥¡£
ÕûÌåµ÷ÓÃÁ´Â·×ܽᡣÂú×ã»Ò¶ÈÑéÖ¤µÄÓû§Á´Â·£ºweb ·þÎñ -> 30.5.120.16 ->
30.5.128.66; ²»Âú×ã»Ò¶ÈÑéÖ¤µÄÓû§ (²»´ò±ê) Á´Â·£ºweb ·þÎñ -> ¼¯ÈºÖÐ
30.5.120.16 Ö®ÍâµÄ»úÆ÷ -> ¼¯ÈºÖÐ 30.5.128.66 Ö®ÍâµÄ»úÆ÷¡£
ͨ¹ýÉÏÊö²½ÖèÒѾÍê³ÉÁËÈ«Á´Â·µÄ»Ò¶È»·¾³´î½¨£¬ÕâÖÖ·½Ê½µÄÓ¦Ó÷¶Î§·Ç³£¹ã£¬¿ÉÒÔ°´ÕÕ×Ô¼ºµÄÒµÎñ³¡¾°ºÍÐèÇó½øÐÐһЩµ÷ÕûÀ´´ïµ½×Ô¼ºÆÚÍûµÄЧ¹û¡£ÏÂÃæ¼¯ÈºÖÐÒ²Óа¸Àý½øÐÐ˵Ã÷¡£
¼¯Èº
´Ó¼¯Èº½Ç¶ÈÀ´¿´Ï£¬·þÎñʵÀýÖ®¼äµÄ¸ôÀë¡£¼ÙÉèÒ»¸ö Provider ¼¯ÈºÓÐ 8 ¸öʵÀý£¬Consumer-A
¼¯ÈºÓÐ 4 ¸öʵÀý£¬Consumer-B ¼¯ÈºÓÐ 4 ¸öʵÀý£» Consumer-A ¼¯ÈººÍ Consumer-B
¶¼»áµ÷Óà Provider ¼¯Èº¡£

·þÎñ·Ö×飺ÒÔ Provider ºÍ Consumer-A ΪÀý¡£½« Provider ·Ö³É×ó (1¡¢2¡¢3¡¢4)
ºÍÓÒ (5¡¢6¡¢7¡¢8) Á½¸ö×飬½« Consumer-A ·Ö³É×ó (1¡¢2) ºÍÓÒ (3¡¢4) Á½¸ö×é¡£Consumer-A
ÖÐ×ó×éÖ»Äܵ÷Óõ½ Provider ÖеÄ×ó×飬Consumer-A ÖÐÓÒ×éÖ»Äܵ÷Óõ½ Provider
ÖеÄÓÒ×飬¶ø²»»áµ÷Óõ½Õû¸ö¼¯ÈºµÄÆäËûʵÀý¡£·þÎñ·Ö×é³ýÁËÄÜÈÃ×¢²áÖÐÐļõÉÙÍÆË͵ÄÊý¾ÝÁ¿Í⣬»¹ÄܼõÉÙ Consumer
ºÍ Provider ³¤Á¬½ÓµÄÊýÁ¿£¬´Ó¶ø´øÀ´Ò»¶¨µÄÐÔÄÜÌáÉý¡£
·þÎñ·Ö×é×î¼òµ¥µÄʵÏÖ·½Ê½£¬ÔÚ Dubbo µÄ Service ºÍ reference ÖÐÅäÖÃÖÐÅäÖöà¸ö
group£¬½øÐÐÊÖ¶¯Æ¥Åä¡£
¸ü¸ß¼¶µÄ·þÎñ·Ö×éʵÏÖ·½Ê½£¬Í¨¹ý·ÓɹæÔòµÄ·½Ê½½øÐж¯Ì¬Æ¥Å䣬·ÓɹæÔòÖиù¾ÝÒ»¶¨µÄ¹æÔò£¨Èç¸ù¾Ý Ip
µÄ×îºóλµÄÆæÅ¼Êý£©½« Provider ºÍ Consumer ½øÐзÖ×飬Ȼºó·ÓɹæÔòÀïÈ¥Íê³É¸ôÀë¡£ÕâÖÖ·½Ê½ÔÝʱ»¹Ã»Óз¢ÏֽϺõÄʵÏÖ¡£
ÒµÎñ¸ôÀ룺À´¿´¸öÏÖʵµÄ³¡¾°£¬°¢Àï°Í°Í½»Òׯ½Ì¨³Ð½ÓµÄÒµÎñ·Ç³£¶à£¬ÔÚÐÂÁãÊÛ³öÀ´Ö®Ç°£¬ËùÓеÄÒµÎñ¶¼ÊÇÏßÉϽ»Ò×£¬ÔÚ³öÏÖ
2 ·ÖÖӵIJ»¿Éϵ¥µÄʱºò£¬ÌåÑéÔã¸âµ«ÊÇ»¹²»»áÒýÆð´ó·¶Î§µÄɧÂÒ¡£µ«ÊÇÔÚºÐÂíÏÊÉúÏßϹºÎïµÄʱºò£¬Èç¹û³öÏÖ
2 ·ÖÖÓ²»ÄÜϵ¥£¬ÄÇÔÚÅŶӵÄÏû·ÑÕßÒâζ×ÅÒª¸ÉµÈÁ½·ÖÖÓ£¬ÕâÊǷdz£Ôã¸âµÄÌåÑé¡£
³éÏóÏÂÉÏÃæµÄ³¡¾°£¬Óøü¼Ó²úÆ·»¯ºÍ¼¼Êõ»¯µÄ·½Ê½À´·ÖÎö¡£ÒÔ Provider ºÍ Consumer-A£¬Consumer-B
ΪÀý¡£Provider ¼¯ÈºµÄÏû·ÑÕ߷dz£¶à£¬°üÀ¨ Consumer-A£¬Consumer-B »òÆäËû
Consumer ¼¯Èº¡£ÒòΪ Consumer-B µÄÒµÎñ·Ç³£ÖØÒª£¬²»ÏëÈÃÆäËû»úÆ÷µÄ¹ÊÕÏ£¬Ó°Ïìµ½ Consumer-B
µÄÎȶ¨ÐÔ£¬ËùÒÔ Provider ÖÐÀ´×ÔÓÚ Consumer-B µÄÁ÷Á¿ÐèÒª½øÐиôÀë¡£ÒµÎñ¸ôÀëµÄʵÏÖ·½Ê½£¬¿ÉÒÔ²ÉÓÃ
Tag ·ÓɹæÔòµÄ·½Ê½À´ÊµÏÖ¡£¶Ô Provider ¼¯ÈºµÄ 7£¬8 »úÆ÷´òÉϱê -BTag(¼´Â·ÓɹæÔò£¬¿ÉÒÔͨ¹ý
OPS ´ò±ê)£¬È»ºóÔÚ Consumer-B ¼¯ÈºÖе÷Óà Provider ֮ǰ setTag=BTag
(ÔÚ Dubbo ÖÐÔÚ attachment ÀïÉèÖà tag Öµ)¡£
»Ò¶È»·¾³£º
µ¥»ú»Ò¶ÈµÄ»°£¬Ö»ÒªÔÚ·¢²¼µÄʱºò£¬¿ÉÒÔµ¥Ì¨»úÆ÷·¢²¼¾Í¿ÉÒÔ¡£
È«Á´Â·»Ò¶È£¬ÐèÒªÔÚÕû¸ö¼¯ÈºÖÐȦ³öÒ»Åú»úÆ÷£¬Èç´Ó Provider£¬Consumer-A£¬Consumer-B
¼¯ÈºÖÐÑ¡³ö 3 ºÅ»úÆ÷×÷Ϊ»Ò¶È»·¾³¡£È«Á´Â·»Ò¶ÈµÄʵÏÖÒѾÔÚÇ°ÃæËµÃ÷£¬Óà Tag ·ÓÉʵÏÖ¡£
·þÎñ²âÊÔ
Dubbo ·þÎñ²âÊÔ

Dubbo ÔÚÆô¶¯Ê±£¬»áµ¼³ö·þÎñ£¬È÷þÎñÊǿɱ»µ÷Óõģ»Í¬Ê±Ëü»¹»áÏòÔªÊý¾ÝÖÐÐÄдÈëÔªÊý¾ÝÐÅÏ¢£¨°üÀ¨·þÎñ·½·¨µÄ·½·¨Ãû£¬Â·²Î£¬³ö²ÎµÈÐÅÏ¢£©¡£
·þÎñ²âÊÔÊÇÔÚ Dubbo OPS ºǫ́ÖеŦÄÜ¡£·þÎñ²âÊÔÒµÎñÁ÷³Ì£ºÏÈÈ¥ÔªÊý¾ÝÖÐÐÄ»ñȡԪÊý¾ÝÐÅÏ¢£»ÔÚÒ³ÃæÖÐչʾ·þÎñµÄ½á¹¹Ì壬µÈ´ýÓû§ÊäÈ룻Óû§ÊäÈë²ÎÊýÐÅÏ¢£»Dubbo
OPS ºǫ́¸ù¾ÝÔªÊý¾ÝÐÅÏ¢ºÍÓû§ÊäÈëµÄ²ÎÊý¹¹Ôì³ö·þÎñµ÷ÓõÄÈë²Î£¬ÏòÏàÓ¦µÄ Provider ·¢Æð·º»¯µ÷Ó᣷º»¯µ÷Óñ»½Ï¶àµÄÍø¹ØÏµÍ³Ê¹Óá£
Swagger ÕûºÏ
³ýÁË·þÎñ²âÊÔ¹¦ÄÜÍ⣬»¹ÐèÒª£º
Îĵµ¹¦ÄÜ¡£×Ô¶¯Éú³ÉÎĵµ£¬Éú³ÉµÄÎĵµÊÇ¿ÉÊÓ»¯µÄ£¬¶ø²»ÊÇ JSON µÈÎļþ¸ñʽ¡£
×Ô¶¯»¯²âÊÔ¡£
Swagger ¿ÉÒÔÂú×ãÒÔÉÏÐèÇó¡£µ«ÊÇ Swagger ºÍ SpringMVC ½áºÏ½ôÃÜ£¬SpringMVC
Rest ½Ó¿Ú¼ÓÉÏ×¢½âÖ®ºó£¬¿ÉÒÔ¿ìËÙÕûºÏ Swagger¡£

ÒªÈà Dubbo Äܹ»Í¨¹ý Swagger ·½Ê½Éú³ÉÎĵµºÍ½øÐÐ×Ô¶¯»¯²âÊÔ£¬ÐèÒª×öÁ½¸öÊÂÇ飺
½« Dubbo ½Ó¿ÚÐÎʽת»»³É Swagger Îĵµ¡£Swagger ÊÇÓÐÎĵµ¹æ·¶µÄ£¬Ö»Òª½«½Ó¿ÚÐÎʽת»»³É
Swagger Ô¼¶¨µÄ¸ñʽ£¬¾Í¿ÉÒÔÂú×ã Swagger ÎĵµµÄÐÎʽ½øÐÐÊä³ö¡£
Swagger ·þÎñ²âÊÔ¹¦ÄÜ¡£Íⲿ HTTP ÇëÇóµ½Ò»¸ö Controller£¬Controller
ÐèÒª½« HTTP ÇëÇóת»»³É Dubbo ÇëÇ󣬰üÀ¨²ÎÊýµÄÓ³ÉäºÍ·þÎñµÄÓ³Éä¡£
·þÎñÖÎÀí
Hystrix Í£¸ü
Hystrix Í£¸üÁË£¬ÔÚ GitHub ¹ÙÍøÉÏÍÆ¼öÁË Resillence4j£¬°¢Àï°Í°ÍÒ²¿ªÔ´ÁË
Sentinel¡£ÕâÀï½øÐÐÒ»¸ö¼òµ¥µÄ±È½Ï¡£

Hystrix µÄÁ½¿é¹¦ÄÜ£¬¸ôÀëºÍÈÛ¶Ï£¬ÄÜÂú×ã´ó²¿·ÖÐèÇóµ«ÊÇÍ£Ö¹¸üÐÂÁË¡£
Resillence4j ÒªÇó JDK8 ¼°ÒÔÉÏ£¬¶Ô function ±à³Ì¸ü¼ÓÓѺá£
Sentinel ÔÚ°¢ÀïÄÚ²¿Ê¹Óõķ¶Î§·Ç³£¹ã£¬ÒѾ¾ÊÜסÁËÒ»¶¨µÄ¿¼Ñ顣ÿÄê˫ʮһÔÚÂò¶«Î÷µÄʱºò£¬Èç¹û³öÏÖÒ»¸öÒ³ÃæÉÏÏÔʾϵͳ·±Ã¦ÇëÉÔºòÖØÊÔ£¬»òÕßÏÔʾÈËÌ«¶àÁËÇëÅŶӣ¬ÕâʱºòÆäʵ¾ÍÊÇ
Sentinel ÔÚºǫ́·¢»Ó×÷ÓÃÁË¡£Sentinel OPS Õâ¿é×öµÃ·Ç³£ºÃ£¬´ïµ½ÁË¿ªÏä¼´Óõıê×¼¡£
·þÎñÖÎÀíÇåµ¥
²»ÒªÉèÖÃÓ¦Óü¶±ðÖØÊÔ
ÔÚ Consumer ¶ËÉèÖÃÖØÊÔ£¬±ØÐë±£Ö¤ Provider ¶Ë¶à´Îµ÷ÓÃÊÇÃݵȵġ£
ÉèÖÃÓ¦Óü¶±ðµÄÖØÊÔ£¬»áÈÃÒѾѹÁ¦±¶ÔöµÄϵͳѩÉϼÓ˪¡£¾Ù¸öÀý×Ó£¬Provider ϵͳµÄÏß³ÌÊýÊÇ 200£¬µ±
Provider ij¸ö·þÎñ³öÏÖÎÊÌ⣬µ¼Ö RT ´Ó 200ms ±äΪÁË 3500ms£»Consumer
ÒòΪÉèÖÃÁËĬÈÏÖØÊÔÇÒÖØÊÔ´ÎÊýΪ 3£¬Õâ¾Í»áµ¼Ö Provider Ï̳߳غܿì»á±»ºÄ¾¡¡£
ËùÒÔ£¬Ä¬Èϲ»ÒªÉèÖÃÓ¦Óü¶±ðµÄÖØÊÔ£¬¶ÔÓÐÒµÎñÐèÇóµÄ·þÎñµ¥¶ÀÉèÖÃÖØÊԵĹæÔò£¬²¢ÇÒ±£Ö¤ Provider
¶Ë·þÎñµÄÃݵÈÐÔ¡£
ÉèÖó¬Ê±Ê±¼ä
ÉèÖó¬Ê±Ê±¼ä£¬Äܹ»·Àֹϵͳѩ±ÀºÍ×ÊÔ´ºÄ¾¡¡£Ò»¸ö Consumer µ÷Óà Provider µÄʱºò£¬Provider
ÐèÒª 3 Ãë´¦ÀíÍêÒµÎñÂß¼Ö®ºó·µ»Ø½á¹û£¬Consumer ĬÈÏÊÇͬ²½µ÷Óã¬ÐèҪij¸öÏß³Ìͬ²½×èÈûµÈ´ý
3 Ã룬Ҳ¾ÍÊÇ˵Èç¹ûûÓг¬Ê±»úÖÆ£¬ºÜÈÝÒ×½« Provider µÄÎÊÌâ´«µÝ¸ø Consumer ²¢ÇÒ²»¶ÏÍùÉÏ´«µÝ¡£Èç¹û
Consumer ÉèÖÃÁ˳¬Ê±Ê±¼ä 200ms£¬Provider ¼ÓÈëÐèÒª 3 Ãë´¦ÀíÍê½á¹û£¬µ«ÊDz»»á½«ÎÊÌâ´«µÝ¸ø
Consumer¡£
½¨ÒéµÄ³¬Ê±Ê±¼äÊÇÒ»°ÙºÁÃëµ½Á½°ÙºÁÃë×óÓÒ£¬¶ÔÓÚÌØÊâÒµÎñ½øÐÐÌØÊâÉèÖá£
¸ôÀë
¸ôÀë°üÀ¨ÊµÀý¸ôÀëºÍÏ̸߳ôÀ롣ʵÀý¸ôÀ룬¾ÍÊÇÇ°Ãæ½²µ½µÄ·þÎñ·Ö×éºÍÒµÎñ·Ö×飬ͨ¹ýʵÀý¸ôÀë´ïµ½ÎÊÌâºÍÓ°ÏìÃæµÄ¸ôÀë¡£
Ï̸߳ôÀ룬¿ÉÒÔ·ÖΪ¾²Ì¬¸ôÀëºÍ¶¯Ì¬¸ôÀë¡£¾²Ì¬¸ôÀ룬Ê×ÏÈͨ¹ýÒ»¶¨µÄ·ÖÎö·½·¨ÕÒ³öһЩ±È½ÏÂýµÄ·½·¨£¬»òÕßÕçÑ¡³öÒµÎñÉϱȽÏÖØÒªµÄ·þÎñ·½·¨£»ÔÙ¶ÔÕâЩ·þÎñ»òÕß·½·¨µ¥¶ÀÉèÖÃÏ̳߳ØÒÔ¼°¶ÔÓ¦µÄÏ̸߳öÊý¡£¶¯Ì¬¸ôÀëÊÇÔÚ
Dubbo Ó¦ÓÃÔËÐÐ̬µÄʱºò£¬×Ô·¢µØµ÷ÕûÏ̳߳صĸôÀë¡£Dubbo Ó¦ÓÃÀïĬÈϵÄÏß³ÌÊýÊÇ 200 ¸ö£¬200
¸öÏûºÄÍêÖ®ºó£¬ÐµÄÇëÇó½øÀ´¾Í»á·µ»ØÏ̳߳ØÂúµÄÒì³£¡£Õâʱºò Dubbo ÄÚ²¿»á¶ÔÔËÐÐÖеķþÎñ·½·¨½øÐÐͳ¼Æ£¬Í³¼Æ³ö²¢·¢Ïß³ÌÊý>8£¬RT>300ms(¼ÙÉèµÄÒ»¸öÖ¸±ê)
µÄ·þÎñ£¬°ÑÕâЩ·þÎñÈÓµ½¶ÀÁ¢µÄÏ̳߳ØÀïÈ¥Íê³É£¬ºóÐøÕâЩ·þÎñµÄÖ´Ðж¼»áÓÉÕâЩн¨µÄÏ̳߳صÄÏß³ÌÖ´ÐУ¬ÆäËû·þÎñÈÔÈ»ÔÚÕâ
200 ¸öÏ̳߳ØÀïÃæÖ´ÐС£µ±ÕâЩ¸ôÀëµÄ·þÎñ·½·¨ÔËÐÐÒ»¶Îʱ¼äºó£¬ËüµÄ RT ±äµÃÕý³£ÁË£¬ÄÇÕⲿ·Ö¶ÀÁ¢³öÈ¥µÄÏ̳߳ؿÉÒÔ±»Ïú»Ù£¬ÕâЩ·þÎñ·½·¨¿ÉÒÔÖØÐÂÓÉÔÀ´µÄ
200 ¸öÏß³ÌÖ´ÐС£Õû¸ö¹ý³ÌµÄµ÷ÕûÊǶ¯Ì¬µÄ¡£Õû¸ö¶¯Ì¬¸ôÀëµÄ»úÖÆºÍ Hystrix µÄÏ̸߳ôÀëÓÐЩÏàͬµÄº¬Òå¡£
ÖÎÀí¹¤¾ß
ÿ¸ö΢·þÎñʵ¼ùµÄʱºò¶¼»á½²µ½¡£Î¢·þÎñ×î¼Ñʵ¼ùÀïÃæ£¬Ç¿Á´Â·¸ú×Ù£¬ÏÞÁ÷£¬½µ¼¶¡¢È۶ϵȣ¬¶¼¿ÉÒÔÔÚϵͳÀïÒýÈ룬½ø¶ø±£Ö¤ÏµÍ³µÄÎȶ¨ÐÔ¡£
ϵͳ¿ÉÑéÖ¤
ϵͳ¿ÉÑéÖ¤Ö÷Òª°üº¬Á½·½Ã棬µÚÒ»¸öÊÇ»·¾³Êǿɱ»ÑéÖ¤µÄ£»µÚ¶þ¸öÊÇͨ¹ýÒ»¶¨µÄ²âÊÔÊֶκͷ½·¨À´±£Ö¤ÏµÍ³ÊǿɲâÊԺͿÉÑéÖ¤µÄ¡£
»·¾³¿É±»ÑéÖ¤£¬ÓÐЩ³¡¾°ÐèÒªÖ§³Öµ¥»úµÄ»Ò¶È£¬ÓÐЩ³¡¾°ÐèҪȫÁ´Â·µÄ»Ò¶È¡£
²âÊÔ·½Ã棺ÔÚϵͳÉϹ¹½¨½Ó¿Ú¼¶±ðµÄ·þÎñ²âÊÔ£¬×Ô¶¯»¯²âÊÔ£¬Ö§³ÖÈ«Á´Â·Ñ¹²â¡£Í¨¹ý·þÎñ²âÊÔºÍ×Ô¶¯»¯µØÖ´ÐÐÀ´ÔöǿϵͳµÄÕýÈ·ÐÔ²âÊÔ£»Í¨¹ýÈ«Á´Â·Ñ¹²â£¬À´ÅжÏÈ«Á´Â·µÄÆ¿¾±ÔÚÄÄÀï¡£
Service Mesh
Service Mesh ÔÚ 2018 ³ÖÐø»ðÈÈ£¬°¢Àï°Í°ÍºÍÂìÒ϶¼ÔÚÕâÒ»¿éÓв¼¾Ö¡£ÏÖÔÚ°¢ÀïÄÚ²¿Ö÷ÒªÔÚÁ½¸ö³¡¾°ÖÐÈ¥×ö³¢ÊÔ£¬µÚÒ»¸öÊÇ¿çÓïÑÔ¡£°¢Àï´ó²¿·ÖÓïÑÔÊÇ
Java£¬µ«ÊÇÓÐÉÙ²¿·ÖÊÇ C++£¬»¹Óв¿·Ö NodeJS£¬ÐèÒª Service Mesh È¥½â¾ö¿çÓïÑÔÖ®¼äµÄµ÷Óᣵڶþ¸öÊÇÒ칹ϵͳ¡£°¢Àï°Í°ÍÊÕ¹ºÁËһЩ¹«Ë¾£¬µ«ÊÕ¹º½øÀ´¹«Ë¾µÄ¼¼ÊõÕ»ºÍ¼¯ÍÅÄÚ²¿²»Ò»Ö£¬Ëü¿ÉÄÜÊÇ
Java ÓïÑÔ£¬µ«ÊÇʹÓÃµÄ Spring Cloud µÄ΢·þÎñÌåϵ£¬»¹ÓÐһЩ¹«Ë¾Ã»ÓÐʹÓà Java
ÓïÑÔ£¬ÐèҪͨ¹ý Service Mesh À´½â¾öÕâÖÖÒ칹ϵͳ֮¼äµÄµ÷ÓÃÎÊÌâ¡£

´ÓʵÏÖ·½Ê½ÉÏÀ´Ëµ£¬°¢ÀïûÓÐÖØ¸´µÄÔìÂÖ×Ó£¬¿ØÖƲãÕâÒ»¿é£¨Ò²±»³ÆÎª sidecar)£¬ÊÇÔÚ Envoy
ÉϽøÐÐÁËһЩÀ©Õ¹£¬ÊµÏÖÁËÒ»¸ö Dubbo Filter£¬ÏÖÔÚÕⲿ·Ö´úÂëÒѾ±»¾èÏ×µ½ÁË Envoy µÄÉçÇø¡£Êý¾Ý²ãʵÏÖ·½Ê½ÊǶÔ
Istio ×öÁËһЩÀ©Õ¹ºÍ¶¨ÖÆ¡£ÒòΪ Istio ÓÐÒ»Ì×ĬÈϵķþÎñ·¢ÏÖ£¬·þÎñÖÎÀíµÄ²úÆ·£¬µ«°¢Àï°Í°ÍÓÐ×Ô¼ºµÄ·þÎñ·¢ÏÖ£¬¶¯Ì¬ÅäÖùÜÀí£¬·þÎñÖÎÀíµÄ²úÆ··½°¸¡£ÔÚÊý¾Ý²ã£¬»á½«
Istio ºÍ°¢Àï°Í°ÍÖмä¼þµÄ²úÆ·×öһЩÕûºÏ£¬À´Âú×ãÐèÇó¡£
´Ó²¿Êð½á¹¹ÉÏ¿´£¬Dubbo Ó¦ÓúͶÔÓ¦µÄ Envoy ʵÏÖÊDz¿ÊðÔÚһ̨»úÆ÷ÉÏ (ÐéÄâ»ú) µÄ£¬Ö»ÊÇÒÔÁ½¸ö½ø³ÌµÄÐÎʽ´æÔÚ¡£Dubbo
Ó¦ÓÃÐèÒªµ÷Óà Spring MVC Ó¦ÓÃÖеķþÎñ£¬Ã¿Ò»´Î·¢Æðµ÷ÓõÄʱºò£¬Dubbo Ó¦ÓûáÊ×Ïȵ÷Óõ½Í¬Ò»Ì¨»úÆ÷ÉϵÄ
Envoy ½ø³Ì£¬ÔÙµ÷Óõ½ÁíÍâһ̨»úÆ÷É쵀 Envoy ½ø³Ì£¬ÁíÍâһ̨»úÆ÷µÄ Envoy ½ø³ÌÔÙµ÷ÓÃ
SpringMVC Ó¦Óá£Õû¸öµ÷Óùý³Ì¶àÁËÁ½Ìø¡£
°¢Àï°Í°ÍÒѾÔÚÏÌÓãµÄһЩ³¡¾°ÉÏÔÚ×ö Service Mesh µÄÑéÖ¤£¬Í¬Ê±³ÌÐòºÍ¼Ü¹¹Ò²ÔÚ³ÖÐøÓÅ»¯¹ý³ÌÖС£
Dubbo ÏÖ×´ºÍδÀ´
µ±Ç°¹¤×÷
ºËÐÄÌØÐÔ
Õë¶Ô 2.7 ֮ǰ´æÔÚµÄÈô¸ÉÒì²½ÎÊÌâ½øÐÐÁËÓÅ»¯¡£ÔÚ Dubbo2.7 Ö®ºó£¬¿ªÊ¼È«Á¦Óµ±§ JDK8¡£ËùÒÔ
2.7 °æ±¾½«»ùÓÚ JDK8 ÖÐµÄ CompletableFuture ×ö³öһЩÕë¶ÔÐÔµÄÔöÇ¿À´Ö§³ÖÒì²½£¬ÀàËÆÓÚ
Promise ·½Ê½¡£
ÓÅ»¯·þÎñÖÎÀí²ÎÊýÅäÖã¬Éý¼¶·þÎñ·ÓɹæÔò£¬Í¬Ê±¶ÔÓ¦µÄ OPS Ò²½øÐÐÁËÏàÓ¦µÄÉý¼¶¡£Dubbo2.7
֮ǰµÄ·ÓɹæÔò¶ÔÓ¦¹ØÏµÒ»¸ö·þÎñ¿ÉÒÔ¶ÔÓ¦¶àÌõ¹æÔò£¬ÓÅ»¯Ö®ºóÒ»¸ö·þÎñÖ»ÄܶÔÓ¦µ½Ò»Ìõ¹æÔò£»ÐÂÔöÁËǰÎĽ²µ½µÄ
Tag ·ÓÉ£»·þÎñÖÎÀí²ÎÊý£¬Â·ÓɹæÔòµÄÊý¾Ý´æ´¢¶¼½«Ê¹ÓÃÅäÖÃÖÐÐÄ¡£
ÉçÇøÀïÃæ·ÖÖ§Ñݽø·Ö³É 2.6 °æ±¾ºÍ 2.7 °æ±¾¡£2.7 °æ±¾Ö÷ÒªÓÐһЩй¦Äܵĵü´ú£¬2.6 ÒÔά»¤ÎªÖ÷¡£Èç¹û
2.7 ÀïÓÐЩ¹¦ÄÜ¿ÉÒÔ±» 2.6 ½è¼øµÄ»°£¬Ò²»áÍù 2.6 ÀïÃæµþ¼Ó¡£
Spring Boot
ÐÂÔöÁËÒ»¸ö¹¤¾ßÒ³Ãæ£¬ÓÃÓÚ¿ìËÙ¹¹½¨ Dubbo µÄ Spring Boot µÄÓ¦Óá£Õâ¸ö²Î¿¼ÁË Spring
Boot µÄģʽ¡£
ÔÚ Dubbo ÌåϵÏ£¬ÓÐÒ»¸ö Dubbo Spring Boot ¹¤³ÌÀ´Ö§³Ö Dubbo+Spring
Boot µÄÕûºÏ¡£µ½Ä¿Ç°ÎªÖ¹Ö§³Ö Dubbo2.6.X °æ±¾£¬Ö§³Ö Spring Boot 1.5.x
ºÍ 2.0.x¡£ÒòΪ Spring Boot µÄ 1.5 ºÍ 2.0 µÄ·ÖÖ§²î¾à±È½Ï´ó£¬ËùÒÔ Dubbo
Spring Boot Ҳά»¤ÁËÁ½¸ö°æ±¾¡£ºóÐø Spring Boot 1.X »áÔÚ 2019 ÄêÍ£Ö¹¸üС£
Dubbo OPS
Dubbo OPS ½øÐÐÁËȫеÄÉý¼¶£¬ÓÐÁËÒ»¸öÐ嵀 UI£¬ºÏ²¢ÁË Dubbo Admin ºÍ Dubbo
monitor Á½¸öÓ¦Ó㬶øÇÒÕû¸ö OPS ÓÃÁË Spring Boot ¹¤³Ì½á¹¹£¬´Ó¶øÕæÕý´ïµ½ÁË¿ªÏä¼´Óá£Dubbo
OPS Äܹ»Í¬Ê±Ö§³Ö 2.6 ºÍ 2.7 µÄ°æ±¾µÄÔËÐУ¬¶Ôй¦ÄܽøÐÐÁËÏàÓ¦µÄÅäÖÃÖ§³Ö¡£
¿ªÔ´½¨Éè
Dubbo ¾èÏ׸øÁËÉçÇøÖ®ºó£¬ÖØÐ´ÁËеĹÙÍø£¬ÐµÄÖÐÓ¢ÎÄÎĵµ£¬ÓÐÁËÖÐÓ¢ÎIJ©¿Í£¬Õû¸öÉçÇøÏÖÔڷdz£»îÔ¾¡£ÔÚÕâ°ëÄê¶àÒÀÀµ£¬ºÍһЩÉî¶ÈʹÓÃ
Dubbo µÄ¿Í»§×öÁËһЩ½»Á÷£¬È繤ÉÌÒøÐУ¬¿¼ÀµÈµÈ¡£½ñÄê¾Ù°ìÁË 5 ³¡ Meetup£¬°üÀ¨º¼ÖÝ£¬³É¶¼£¬ÉîÛÚ£¬±±¾©£¬ÉϺ££¬ÎüÒýÁË´óÁ¿µÄ¿ª·¢Õß²ÎÓë¡£
Éú̬½¨Éè
ÕýÈçÇ°ÃæËù˵£¬ÔÚ¶àÓïÑÔ·½Ã棬ÉçÇøÒýÈëÁË PHP£¬Go£¬NodeJS£¬Python µÈ¡£
¶ÔÏÖÓеÄһЩÉú̬×é¼þ½øÐгÖÐøÉý¼¶ºÍά»¤¡£
ÒýÈëÁËһЩеÄÀ©Õ¹×é¼þ£¬°üÀ¨ SkyWalking£¬ETCD µÈµÈ¡£
δÀ´¹æ»®
ÉçÇøÍ¶Èë
ÉçÇø³ÖÐøÍ¶È룬°üÀ¨ PR£¬Issue ¸ú½ø£¬ÓÅÐ㲩¿ÍºÍÎĵµµÄ³ÖÐøÊä³ö¡£µ±È»Õû¸öÔË×÷ÐÎʽÊǸù¾Ý Apache
µÄ·½Ê½½øÐÐÔË×÷£¬¶ø Apache ¹µÍ¨µÄ×îÖ÷ÒªÐÎʽ¾ÍÊÇÓʼþ£¬ËùÒÔ¸÷¿ª·¢Õß¿ÉÒÔ¶©ÔÄ Dubbo µÄÓʼþÁÐ±í½øÐгÖÐø¸ú×Ù¡£
³ÖÐøÍÆ½ø Dubbo Meetup ºÍ¿Í»§½»Á÷¡£
¹¦ÄÜÔöÇ¿ºÍ Issue ¸ú½ø
³ÖÐø¹¦ÄÜÔöÇ¿ºÍÓÅ»¯£¬°üÀ¨Ç°ÃæµÄ×¢²áÖÐÐĵÄÓÅ»¯£¬Â·ÓɹæÔòµÄ³ÖÐøÔöÇ¿ºÍÓÅ»¯¡£ÏÖÔÚ Dubbo µÄ committer
ÖУ¬°¢ÀïÖ»Õ¼ÁËС²¿·Ö£¬ÆäÖÐÀ´×ÔÓÚÍøÒ×ÒôÀֺͿ¼À£¬Î¢µê£¬º«¶¼ÒÂÉᣬÓÐÔ޵ȹ«Ë¾µÄ¿ª·¢ÕßÒ²·Ç³£»îÔ¾¡£×î½üÓÐһλӡ¶ÈµÄ¿ª·¢Õߣ¬Ò²Õýʽ³ÉΪÁË
Dubbo µÄ Committer¡£
Éú̬½¨Éè
ÒòΪÏÖÔÚÉú̬ÖУ¬²¿·ÖʵÏÖÒѾÓÐÁËÖØµþ£¬°üÀ¨ºóÐø½øÀ´µ½ÎÒÃÇÉú̬ÌåϵÀïµÄÀ©Õ¹Ò²»áÔì³ÉͬÑùµÄÀ©Õ¹»òÕßʵÏÖ³öÏÖÖØµþ£¬Õâʱºò»á½øÐÐһЩÓÅʤÁÓÌ¡£
Dubbo ºÍ SpringCloud ¹ØÏµ£¬²¿·ÖͬѧÔÚÑ¡Ð͵Äʱºò¾õµÃҪôѡ Dubbo£¬ÒªÃ´Ñ¡
SpringCloud£¬Á½Õß»¥ÏàÅųâµÄ¡£Æäʵ²»ÊÇÕâÑùµÄ£¬Õâ¿éµÄÏêϸÃèÊö£¬¿ÉÒÔ¹Ø×¢¹«Öںţº°¢Àï°Í°ÍÖмä¼þ¡£ÀïÃæ»áÓÐһЩÎÄÕµÄÃèÊöºÍ·ÖÎö¡£
Dubbo 3.0
Dubbo 3.0 µÄ½øÕ¹£¬±È½ÏÊܵ½¹Ø×¢¡£ÒòÎªÉæ¼°µ½ Dubbo ºÍ HSF ÕûºÏ£¬ÒÔ¼°Ò»Ð©ÐÂÌØÐԵĿª·Å£¬Èç
reactive µÄÒýÈë¡£µ«ÊÇÕû¸ö¹ý³ÌÊǷdz£Âþ³¤µÄ£¬ÒòΪÁ½¸ö²úÆ·²»¿ÉÄÜÍêÈ«Èںϣ¬ÐèÒªÓÐÒ»Ð©ÌØÐÔ´æÔÚ¡£¶øÇÒÔÚÍê³ÉÖ®ºó£¬Õû¸öÇ¨ÒÆµÄ¹ý³Ì·Ç³£¾Þ´ó¡£½ñÄêÉϰëÄ꣬»áÓÐÒ»¸öÔ¤ÀÀ°æ±¾£¬ÏÖÔںܴóÒ»²¿·ÖÈËÁ¦ÒѾͶÈëµ½
Dubbo 3.0 µÄÑз¢ÖС£
Service Mesh
Service Mesh£¬ÏÖÔÚ»¹ÔÚ²âÊԽ׶Σ¬ÕûÌ廹δ´ïµ½Éú²ú»·¾³µÄ¼¶±ð¡£»¹ÐèÒª²»¶ÏÓÅ»¯ÐÔÄܺͲ»¶ÏÔÚ¸÷¸ö³¡¾°ÖÐÊÔÓᣠ|