## Dubbo * [1.Dubboæ¯ä»ä¹ï¼](#1dubboæ¯ä»ä¹) * [2.为ä»ä¹è¦ç¨Dubboï¼](#2为ä»ä¹è¦ç¨dubbo) * [3.Dubbo å Dubbox æä»ä¹åºå«ï¼](#3dubbo-å-dubbox-æä»ä¹åºå«) * [4.dubbo齿¯æä»ä¹åè®®ï¼æ¨èç¨åªç§ï¼](#4dubbo齿¯æä»ä¹åè®®æ¨èç¨åªç§) * [5.Dubboéè¦ Web 容å¨åï¼](#5dubboéè¦-web-容å¨å) * [6.Dubboå ç½®äºåªå ç§æå¡å®¹å¨ï¼](#6dubboå ç½®äºåªå ç§æå¡å®¹å¨) * [7.Dubboé»è®¤ä½¿ç¨ä»ä¹æ³¨åä¸å¿ï¼è¿æå«çéæ©åï¼](#7dubboé»è®¤ä½¿ç¨ä»ä¹æ³¨åä¸å¿è¿æå«çéæ©å) * [8.Dubboæåªå ç§é ç½®æ¹å¼ï¼](#8dubboæåªå ç§é ç½®æ¹å¼) * [9.å¨ Provider ä¸å¯ä»¥é ç½®ç Consumer 端ç屿§æåªäºï¼](#9å¨-provider-ä¸å¯ä»¥é ç½®ç-consumer-端ç屿§æåªäº) * [10.Dubboå¯å¨æ¶å¦æä¾èµçæå¡ä¸å¯ç¨ä¼ææ ·ï¼](#10dubboå¯å¨æ¶å¦æä¾èµçæå¡ä¸å¯ç¨ä¼ææ ·) * [11.Dubboæ¨è使ç¨ä»ä¹åºååæ¡æ¶ï¼ä½ ç¥éçè¿æåªäºï¼](#11dubboæ¨è使ç¨ä»ä¹åºååæ¡æ¶ä½ ç¥éçè¿æåªäº) * [12.Dubboé»è®¤ä½¿ç¨çæ¯ä»ä¹éä¿¡æ¡æ¶ï¼è¿æå«çéæ©åï¼](#12dubboé»è®¤ä½¿ç¨çæ¯ä»ä¹éä¿¡æ¡æ¶è¿æå«çéæ©å) * [13.注åäºå¤ä¸ªå䏿 ·çæå¡ï¼å¦ææµè¯æå®çæä¸ä¸ªæå¡å¢ï¼](#13注åäºå¤ä¸ªå䏿 ·çæå¡å¦ææµè¯æå®çæä¸ä¸ªæå¡å¢) * [14.Dubboæ¯ææå¡å¤åè®®åï¼](#14dubboæ¯ææå¡å¤åè®®å) * [15.å½ä¸ä¸ªæå¡æ¥å£æå¤ç§å®ç°æ¶æä¹åï¼](#15å½ä¸ä¸ªæå¡æ¥å£æå¤ç§å®ç°æ¶æä¹å) * [16.æå¡ä¸çº¿æä¹å ¼å®¹æ§çæ¬ï¼](#16æå¡ä¸çº¿æä¹å ¼å®¹æ§çæ¬) * [17.Dubboå¯ä»¥å¯¹ç»æè¿è¡ç¼ååï¼](#17dubboå¯ä»¥å¯¹ç»æè¿è¡ç¼åå) * [18.Dubboæå¡ä¹é´çè°ç¨æ¯é»å¡çåï¼](#18dubboæå¡ä¹é´çè°ç¨æ¯é»å¡çå) * [19.Dubboæ¯æåå¸å¼äºå¡åï¼](#19dubboæ¯æåå¸å¼äºå¡å) * [20.Dubboæ¯ææå¡é级åï¼](#20dubboæ¯ææå¡é级å) * [21.Dubboå¦ä½ä¼é åæºï¼](#21dubboå¦ä½ä¼é åæº) * [22.æå¡æä¾è è½å®ç°å¤±æè¸¢åºæ¯ä»ä¹åçï¼](#22æå¡æä¾è è½å®ç°å¤±æè¸¢åºæ¯ä»ä¹åç) * [23.å¦ä½è§£å³æå¡è°ç¨é¾è¿é¿çé®é¢ï¼](#23å¦ä½è§£å³æå¡è°ç¨é¾è¿é¿çé®é¢) * [24.æå¡è¯»åæ¨èç容éçç¥æ¯ææ ·çï¼](#24æå¡è¯»åæ¨èç容éçç¥æ¯ææ ·ç) * [25.Dubboå¿ é¡»ä¾èµçå æåªäºï¼](#25dubboå¿ é¡»ä¾èµçå æåªäº) * [26.Dubboçç®¡çæ§å¶å°è½åä»ä¹ï¼](#26dubboçç®¡çæ§å¶å°è½åä»ä¹) * [27.说说 Dubbo æå¡æ´é²çè¿ç¨ã](#27说说-dubbo-æå¡æ´é²çè¿ç¨) #### 1.Dubboæ¯ä»ä¹ï¼ Dubboæ¯é¿é巴巴弿ºçåºäº Java ç髿§è½ RPC åå¸å¼æå¡æ¡æ¶ï¼ç°å·²æä¸º Apache åºéä¼åµå项ç®ã #### 2.为ä»ä¹è¦ç¨Dubboï¼ å 为æ¯é¿é弿ºé¡¹ç®ï¼å½å å¾å¤äºèç½å ¬å¸é½å¨ç¨ï¼å·²ç»ç»è¿å¾å¤çº¿ä¸èéªãå é¨ä½¿ç¨äº NettyãZookeeperï¼ä¿è¯äºé«æ§è½é«å¯ç¨æ§ã ä½¿ç¨ Dubbo å¯ä»¥å°æ ¸å¿ä¸å¡æ½ååºæ¥ï¼ä½ä¸ºç¬ç«çæå¡ï¼éæ¸å½¢æç¨³å®çæå¡ä¸å¿ï¼å¯ç¨äºæé«ä¸å¡å¤ç¨çµæ´»æ©å±ï¼ä½¿å端åºç¨è½æ´å¿«éçååºå¤åçå¸åºéæ±ã #### 3.Dubbo å Dubbox æä»ä¹åºå«ï¼ Dubbox æ¯ç»§ Dubbo åæ¢ç»´æ¤åï¼å½å½ç½åºäº Dubbo åçä¸ä¸ªæ©å±é¡¹ç®ï¼å¦å äºæå¡å¯ Restful è°ç¨ï¼æ´æ°äºå¼æºç»ä»¶çã #### 4.dubbo齿¯æä»ä¹åè®®ï¼æ¨èç¨åªç§ï¼ dubbo://ï¼æ¨èï¼ rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// rest:// #### 5.Dubboéè¦ Web 容å¨åï¼ ä¸éè¦ï¼å¦æç¡¬è¦ç¨ Web 容å¨ï¼åªä¼å¢å 夿æ§ï¼ä¹æµªè´¹èµæºã #### 6.Dubboå ç½®äºåªå ç§æå¡å®¹å¨ï¼ Spring Container Jetty Container Log4j Container #### 7.Dubboé»è®¤ä½¿ç¨ä»ä¹æ³¨åä¸å¿ï¼è¿æå«çéæ©åï¼ æ¨èä½¿ç¨ Zookeeper ä½ä¸ºæ³¨åä¸å¿ï¼è¿æ RedisãMulticastãSimple 注åä¸å¿ï¼ä½ä¸æ¨èã #### 8.Dubboæåªå ç§é ç½®æ¹å¼ï¼ 1ï¼Spring é ç½®æ¹å¼ 2ï¼Java API é ç½®æ¹å¼ #### 9.å¨ Provider ä¸å¯ä»¥é ç½®ç Consumer 端ç屿§æåªäºï¼ 1ï¼timeoutï¼æ¹æ³è°ç¨è¶ æ¶ 2ï¼retriesï¼å¤±è´¥éè¯æ¬¡æ°ï¼é»è®¤éè¯ 2 次 3ï¼loadbalanceï¼è´è½½åè¡¡ç®æ³ï¼é»è®¤éæº 4ï¼actives æ¶è´¹è ç«¯ï¼æå¤§å¹¶åè°ç¨éå¶ #### 10.Dubboå¯å¨æ¶å¦æä¾èµçæå¡ä¸å¯ç¨ä¼ææ ·ï¼ Dubbo 缺çä¼å¨å¯å¨æ¶æ£æ¥ä¾èµçæå¡æ¯å¦å¯ç¨ï¼ä¸å¯ç¨æ¶ä¼æåºå¼å¸¸ï¼é»æ¢ Spring åå§å宿ï¼é»è®¤ check="true"ï¼å¯ä»¥éè¿ check="false" å ³éæ£æ¥ã #### 11.Dubboæ¨è使ç¨ä»ä¹åºååæ¡æ¶ï¼ä½ ç¥éçè¿æåªäºï¼ æ¨è使ç¨Hessianåºååï¼è¿æDuddoãFastJsonãJavaèªå¸¦åºååã #### 12.Dubboé»è®¤ä½¿ç¨çæ¯ä»ä¹éä¿¡æ¡æ¶ï¼è¿æå«çéæ©åï¼ Dubbo é»è®¤ä½¿ç¨ Netty æ¡æ¶ï¼ä¹æ¯æ¨èçéæ©ï¼å¦å¤å 容è¿éææMinaãGrizzlyã #### 13.注åäºå¤ä¸ªå䏿 ·çæå¡ï¼å¦ææµè¯æå®çæä¸ä¸ªæå¡å¢ï¼ å¯ä»¥é ç½®ç¯å¢ç¹å¯¹ç¹ç´è¿ï¼ç»è¿æ³¨åä¸å¿ï¼å°ä»¥æå¡æ¥å£ä¸ºåä½ï¼å¿½ç¥æ³¨åä¸å¿çæä¾è å表ã #### 14.Dubboæ¯ææå¡å¤åè®®åï¼ Dubbo å 许é ç½®å¤åè®®ï¼å¨ä¸åæå¡ä¸æ¯æä¸ååè®®æè å䏿å¡ä¸åæ¶æ¯æå¤ç§åè®®ã #### 15.å½ä¸ä¸ªæå¡æ¥å£æå¤ç§å®ç°æ¶æä¹åï¼ å½ä¸ä¸ªæ¥å£æå¤ç§å®ç°æ¶ï¼å¯ä»¥ç¨ group 屿§æ¥åç»ï¼æå¡æä¾æ¹åæ¶è´¹æ¹é½æå®åä¸ä¸ª group å³å¯ã #### 16.æå¡ä¸çº¿æä¹å ¼å®¹æ§çæ¬ï¼ å¯ä»¥ç¨çæ¬å·ï¼versionï¼è¿æ¸¡ï¼å¤ä¸ªä¸åçæ¬çæå¡æ³¨åå°æ³¨åä¸å¿ï¼çæ¬å·ä¸åçæå¡ç¸äºé´ä¸å¼ç¨ãè¿ä¸ªåæå¡åç»çæ¦å¿µæä¸ç¹ç±»ä¼¼ã #### 17.Dubboå¯ä»¥å¯¹ç»æè¿è¡ç¼ååï¼ å¯ä»¥ï¼Dubbo æä¾äºå£°æå¼ç¼åï¼ç¨äºå éç鍿°æ®ç访é®é度ï¼ä»¥åå°ç¨æ·å ç¼åçå·¥ä½éã #### 18.Dubboæå¡ä¹é´çè°ç¨æ¯é»å¡çåï¼ é»è®¤æ¯åæ¥çå¾ ç»æé»å¡çï¼æ¯æå¼æ¥è°ç¨ã Dubbo æ¯åºäº NIO çéé»å¡å®ç°å¹¶è¡è°ç¨ï¼å®¢æ·ç«¯ä¸éè¦å¯å¨å¤çº¿ç¨å³å¯å®æå¹¶è¡è°ç¨å¤ä¸ªè¿ç¨æå¡ï¼ç¸å¯¹å¤çº¿ç¨å¼éè¾å°ï¼å¼æ¥è°ç¨ä¼è¿åä¸ä¸ª Future 对象ã #### 19.Dubboæ¯æåå¸å¼äºå¡åï¼ ç®åææ¶ä¸æ¯æï¼åç»å¯è½éç¨åºäº JTA/XA è§èå®ç°ã #### 20.Dubboæ¯ææå¡é级åï¼ Dubbo 2.2.0 以ä¸çæ¬æ¯æã #### 21.Dubboå¦ä½ä¼é åæºï¼ Dubbo æ¯éè¿ JDK ç ShutdownHook æ¥å®æä¼é åæºçï¼æä»¥å¦æä½¿ç¨ kill -9 PID ç强å¶å ³éæä»¤ï¼æ¯ä¸ä¼æ§è¡ä¼é åæºçï¼åªæéè¿ kill PID æ¶ï¼æä¼æ§è¡ã #### 22.æå¡æä¾è è½å®ç°å¤±æè¸¢åºæ¯ä»ä¹åçï¼ æå¡å¤±æè¸¢åºåºäº Zookeeper ç临æ¶èç¹åçã #### 23.å¦ä½è§£å³æå¡è°ç¨é¾è¿é¿çé®é¢ï¼ Dubbo å¯ä»¥ä½¿ç¨ Pinpoint å Apache Skywalking(Incubator) å®ç°åå¸å¼æå¡è¿½è¸ªï¼å½ç¶è¿æå ¶ä»å¾å¤æ¹æ¡ã #### 24.æå¡è¯»åæ¨èç容éçç¥æ¯ææ ·çï¼ è¯»æä½å»ºè®®ä½¿ç¨ Failover 失败èªå¨åæ¢ï¼é»è®¤éè¯ä¸¤æ¬¡å ¶ä»æå¡å¨ã åæä½å»ºè®®ä½¿ç¨ Failfast å¿«é失败ï¼å䏿¬¡è°ç¨å¤±è´¥å°±ç«å³æ¥éã #### 25.Dubboå¿ é¡»ä¾èµçå æåªäºï¼ Dubbo å¿ é¡»ä¾èµ JDKï¼å ¶ä»ä¸ºå¯éã #### 26.Dubboçç®¡çæ§å¶å°è½åä»ä¹ï¼ ç®¡çæ§å¶å°ä¸»è¦å å«ï¼è·¯ç±è§åï¼å¨æé ç½®ï¼æå¡é级ï¼è®¿é®æ§å¶ï¼æéè°æ´ï¼è´è½½åè¡¡ï¼ç管çåè½ã #### 27.说说 Dubbo æå¡æ´é²çè¿ç¨ã Dubbo ä¼å¨ Spring å®ä¾åå® bean ä¹åï¼å¨å·æ°å®¹å¨æå䏿¥åå¸ ContextRefreshEvent äºä»¶çæ¶åï¼éç¥å®ç°äº ApplicationListener ç ServiceBean ç±»è¿è¡åè° onApplicationEvent äºä»¶æ¹æ³ï¼Dubbo ä¼å¨è¿ä¸ªæ¹æ³ä¸è°ç¨ ServiceBean ç¶ç±» ServiceConfig ç export æ¹æ³ï¼èè¯¥æ¹æ³çæ£å®ç°äºæå¡çï¼å¼æ¥æè é弿¥ï¼åå¸ã #### åèèµæ https://blog.csdn.net/moakun/article/details/82919804