±¾Îı³¾°»¹Òª´ÓÍøÒ׿¼Àº£¹º£¨ÏÂÎļò³Æ¡°¿¼À¡±£©Î¢·þÎñ»¯ËµÆð£¬ÏÖÔÚÈκδóÐ͵Ļ¥ÁªÍøÓ¦Óã¬ÓÈÆäÊǵçÉÌÓ¦ÓôÓMonolithicµ¥ÌåÓ¦ÓÃ×ßÏò΢·þÎñ»¯ÒѾÊDZØÈ»Ç÷ÊÆ¡£Î¢·þÎñ»¯ÊÇÒ»¸ö±È½Ï¿í·ºµÄ¸ÅÄî£¬Éæ¼°µ½Ò»¸ö²úÆ·ÉúÃüÖÜÆÚµÄ¶à¸ö·½Ã棬Ê×ÏÈËü×÷Ϊһ¸öÖ¸µ¼ÔÔòÖ¸ÒýÒµÎñ»®·Ö¡¢¼Ü¹¹½âñîµÈ£»¼¼Êõ²ãÃæÊµÊ©Î¢·þÎñÐèÒª¿ª·¢²âÊԽ׶Ρ¢ÔËÐн׶Ρ¢·¢²¼½×¶Î¡¢²¿Êð½×¶ÎµÈһϵÁлù´¡¿ò¼ÜµÄÖ§³Å¡£ÎÒÃÇÔÚÏíÊÜ·þÎñ»¯Ò×À©Õ¹Òײ¿ÊðµÈ±ãÀûÐÔµÄͬʱ£¬Ò²ÃæÁÙеÄÎÊÌ⣬ÈçÊý¾ÝÒ»ÖÂÐÔ¡¢·Ö²¼Ê½µ÷ÓÃÁ´Â·×·×Ù¡¢Òì³£¶¨Î»¡¢ÈÕÖ¾²É¼¯µÈ¡£
±¾ÎĽ«¼¯ÖÐÔÚÖ§³Å΢·þÎñ½»»¥¡¢ÔËÐеĻù´¡¿ò¼Ü½²½âÉÏ£¬¼´¿¼Àµ±Ç°Ê¹ÓõÄDubbok¿ò¼Ü£¬DubbokÓɰ¢À↑ԴDubbo¿ò¼ÜµÄÓÅ»¯ºÍ¹¦ÄܸĽø¶øÀ´¡£µ±Ç°¿ªÔ´ÉÏ¿ÉÑ¡ÓõÄ΢·þÎñ¿ò¼ÜÖ÷ÒªÓÐDubbo¡¢Spring
CloudµÈ£¬¼øÓÚDubboÍ걸µÄ¹¦ÄܺÍÎĵµÇÒÔÚ¹úÄÚ±»ÖÚ¶à´óÐÍ»¥ÁªÍø¹«Ë¾Ñ¡Ó㬿¼À×ÔȻҲѡÔñÁËDubbo×÷Ϊ·þÎñ»¯µÄ»ù´¡¿ò¼Ü¡£ÆäʵÏà±ÈÓÚDubbo£¬Spring
Cloud¿ÉÒÔ˵ÊÇÒ»¸ö¸üÍ걸µÄ΢·þÎñ½â¾ö·½°¸£¬Ëü´Ó¹¦ÄÜÐÔÉÏÊÇDubboµÄÒ»¸ö³¬¼¯£¬¸öÈËÈÏΪ´ÓÑ¡ÐÍÉ϶ÔÓÚһЩÖÐСÐÍÆóÒµSpring
Cloud¿ÉÄÜÊÇÒ»¸ö¸üºÃµÄÑ¡Ôñ¡£ÌáÆðSpring Cloud£¬Ò»Ð©¿ª·¢µÄµÚÒ»Ó¡ÏóÊÇhttp+JSONµÄrestͨÐÅ£¬ÐÔÄÜÉÏÄÑ¿°ÖØÓã¬ÆäʵÕâÒ²ÊÇÒ»ÖÖÎó¶Á¡£Î¢·þÎñÑ¡ÐÍÒªÆÀ¹ÀÒÔϼ¸µã£ºÄÚ²¿ÊÇ·ñ´æÔÚÒ칹ϵͳ¼¯³ÉµÄÎÊÌ⣻±¸Ñ¡¿ò¼Ü¹¦ÄÜÌØÐÔÊÇ·ñÂú×ãÐèÇó£»httpÐÒéµÄͨÐŶÔÓÚÓ¦ÓõĸºÔØÁ¿»á·ñÕæÕý³ÉΪƿ¾±µã£¨Spring
CloudÒ²²¢²»ÊǺÍhttp+JSONÇ¿ÖÆ°ó¶¨µÄ£¬ÈçÓбØÒªThrift¡¢protobufµÈ¸ßЧµÄRPC¡¢ÐòÁл¯ÐÒéͬÑù¿ÉÒÔ×÷ÎªÌæ´ú·½°¸£©£»ÉçÇø»îÔ¾¶È¡¢ÍŶӼ¼Êõ´¢±¸µÈ¡£×÷ΪÒѾûÓÐÍŶӳÖÐøÎ¬»¤µÄ¿ªÔ´ÏîÄ¿£¬Ñ¡ÔñDubbo¿ò¼ÜÄÚ²¿¾Í±ØÐëÒª×齨һ¸öά»¤ÍŶӣ¬ÏȲ»ÂÛÄãҪ׼±¸Òª¼¯³É¶àÉÙ¹¦ÄÜ×ö¶àÉÙ¸ÄÔ죬×÷Ϊһ¸öÖ§³ÅËùÓй¤³ÌÕý³£ÔËתµÄ»ù´¡×é¼þ£¬ÎÊÌâµÄ¼°Ê±ÏìÓ¦Óë½â´ð¡¢ÖØ´óȱÏݵļ°Ê±ÐÞ¸´ÄÜÁ¦¾ÍÒÑ×ã¹»ÖØÒª¡£
ÏÂÎĽ«Ñ¡È¡Dubbo¸ßÐÔÄÜRPCͨÐÅÔÀí¡¢·þÎñ×¢²á·¢ÏÖÌØÐÔ¡¢ÒÀÀµ¸ôÀë¡¢Æô¶¯ÓëÍ£»úµÈ¼¸¸ö·½Ãæ²ûÊöDubbokµÄ¹¤×÷ÔÀíºÍÏà¹Ø¸Ä½ø¹¤×÷¡£
Ò»¡¢¸ßÐÔÄÜRPC
Dubbo×÷Ϊһ¸ö·Ö²¼Ê½Í¨ÐÅ¿ò¼Ü£¬×î»ù±¾µÄÖ°Ôð¾ÍÊÇÍê³É¿ç½ø³ÌµÄÔ¶³Ìµ÷Óã¨RPC£©¡£ÒÔÏÂÊÇRPC»ù±¾Á÷³Ìͼ£º

RPC¹¤×÷ÔÀí£¨Í¼Æ¬À´×ÔÍøÂ磩
RPC»ù±¾ÔÀí·Ç³£¼òµ¥£¬ÄÇôDubboÊÇÈçºÎʵÏÖ¸ßЧµÄRPCͨÐŵÄÄØ£¬ºÍÆäËû·Ö²¼Ê½Í¨ÐÅ×é¼þ¹Ø×¢µãÒ»Ñù£¬Ö÷Òª¼¯ÖÐÔÚÒÔϼ¸µãµÄÓÅ»¯£º
1.ÐÒéÕ»£º
DubboÖ§³Ö×Ô¶¨ÒåRPCÐÒ飬ÈßÓà×Ö¶ÎÉÙ¡¢Í¨ÐÅÐÔÄܸߣ»
ÐòÁл¯ÐÒéÖ§³Öhessian2¡¢Dubbo×Ô¶¨ÒåÐòÁл¯µÈ¸ßÐÔÄÜÐÒ飻
DubboÖ§³ÖÐòÁл¯ÐÒé½âÂëÔÚÒµÎñỊ̈߳¨Netty3±àÂë×Ô¶¯ÔÚÒµÎñÏß³ÌÖ´ÐУ©£» 
Dubbo RPCͨÐÅÐÒéÕ»
2.Ïß³ÌÄ£ÐÍ£º
ÒÀÀµNetty3µÄ·Ç×èÈûÏß³ÌÄ£ÐÍ£¬Ö§³ÖI/O¡¢ÒµÎñÂß¼Ï̷߳ÖÀ룬ͨ¹ýHandlerÁ´´¦ÀíÇëÇó¡£

Netty»ù±¾Ïß³ÌÄ£ÐÍ

DubboÒµÎñÏß³ÌÓënetty3 IOÏ߳̽»»¥
ÕâÀïÌØ±ðÇ¿µ÷Netty3£¬ÊÇÒòΪNetty4ÔÚÏß³ÌÄ£ÐÍ¡¢buffer»º³åÇøµÈ·½Ãæ×öÁËÖØ´óµÄÉè¼ÆºÍÐÔÄܸĽø£¬°üÀ¨Inbound¡¢OutboundʼþÇ¿ÖÆÔÚI/OÏ̷߳¢Æð¡¢bufferͨ¹ý»º³å³Ø¼õÉÙ·ÖÅäÊÍ·Å¡¢DirectBufferʵÏÖ»º³åÇøÁã¸´ÖÆµÈ¡£NettyÕâ¿éÉý¼¶Ïà¶ÔÊÇÒ»¸ö¸ß·çÏյĵ㣬Ã÷ÃæÉϵÄAPI¼æÈÝÐÔ¸ÄÔìÊÇС£¬Èç¶ÔNetty4¹¤×÷ÔÀíÈÏʶ²»×㣬еÄÏß³ÌÄ£ÐÍ¡¢buffer»º³å³ØµÈ´øÀ´µÄ·ÇÔ¤ÆÚÐÔÄÜϽµ¡¢ÄÚ´æÐ¹Â¶µÈÎÊÌâÏà¶Ô¸üÄѶ¨Î»Óë¸ú×Ù¡£
½²µ½Ïß³ÌÄ£ÐÍ£¬ÊµÏÖÉÏÃÜÇÐÏà¹ØµÄDubboÍøÂçÁ¬½ÓÄ£ÐͱØÐëÒªÌáһϡ£DubboĬÈÏÊÇËùÓзþÎñ¹²Ïíµ¥Ò»µÄTCP³¤Á¬½ÓµÄ£¨ÕâÒ²ÊÇΪʲô·þÎñ½Ó¿Ú²»Êʺϴ«Êä´ó¸ºÔØÖµ£¬¼´ÈÝÒ××èÈûÆäËû·þÎñµÄµ÷Óã©¡£ÎªÏìÓ¦Âý»òÖØÒªµÄ·þÎñ½Ó¿Ú¿¼ÂÇ£¬DubboÖ§³ÖÉèÖöàTCPÁ¬½Ó£¬´ËʱÁ¬½ÓÊýºÍÏ̳߳ØÊýĬÈÏÊǰ󶨵쬼´Ã¿Á¬½Ó¶ÔÓ¦Ò»¸öÏ߳أ¬consumer¡¢provider¶¼Ö´ÐÐÕâ¸ö²ßÂÔ£¬´ÓÏ̸߳ôÀëµÄ½Ç¶È½²ÊǺÏÀíµÄ£¬µ«²»×¢ÒâÒ²ÈÝÒ×Ôì³ÉÏß³ÌÕ¼ÓÃ×ÊÔ´¹ý¶à£¬ÓÈÆäÊǶÔÓÚÏû·Ñ¶Ë»ù±¾ÎÞÏß³Ì×èÈûµÄÇé¿öÏ¿ÉÄÜÊÇÒ»¸öÉè¼ÆÈ±ÏÝ¡£
3.»º³åÇø£º
DubboĬÈÏʹÓõÄÈ«²¿ÊÇheap»º³åÇø£¬Òò´ËSocketͨÐŲ»¿É±ÜÃâ»á´æÔÚÄں˻º³åÇøºÍ¶Ñ»º³åÇø¸´ÖÆÏûºÄ£»³ý´ËÖ®ÍâÔÚRPCÐÒé½âÎö£¨°üÀ¨Õ³°ü/°ë°ü´¦Àí£©¡¢ÐòÁл¯ÐÒé½âÎöµÈ´¦ÀíÉÏÒ²´æÔÚheapÇøÄڵĸ´ÖÆ£¬Òò´ËÐÔÄÜÉÏÊÇ´æÔÚÓÅ»¯µãµÄ£¨µ±È»ÒªÈ·ÓбØÒª£©¡£
¶þ¡¢×Ô¶¯×¢²á/·¢ÏÖ¡¢¸ºÔؾùºâµÈ·þÎñ»¯ÌØÐÔ
¸ßÐÔÄÜͨÐÅÊÇDubbo×÷ΪRPC¿ò¼ÜµÄ»ù±¾¹¦ÄÜ£¬µ«Ê¹ÆäÇø±ðÓÚThrift¡¢hessian¡¢gRPCµÈ¿ò¼ÜµÄ¹Ø¼üÔÚÓÚÆäÐÂÔöµÄ·þÎñ¼ä×Ô¶¯Ðµ÷¡¢·þÎñÖÎÀíµÈÌØÐÔ¡£
1. ·þÎñ×Ô¶¯×¢²á×Ô¶¯·¢ÏÖ¡¢¸ºÔؾùºâ
·þÎñ×Ô¶¯×¢²á·¢ÏÖÒÀÀµÓÚ×¢²áÖÐÐĵÄÖ§³Ö£¬consumerÓëproviderͨ¹ý×¢²áÖÐÐÄ»ñÈ¡¸÷×ÔµØÖ·ºóÖ±½ÓͨÐÅ¡£Ä¿Ç°¿¼ÀʹÓÃZookeeper×÷Ϊע²áÖÐÐÄ£¬DubboÔÉúÖ§³ÖRedis×÷Ϊע²áÖÐÐÄ£¬Ê¹ÓÃpub/sub»úÖÆÐµ÷·þÎñµÄÉÏÏÂÏßʼþ֪ͨ£¬µ«Redis·½°¸ÒªÇó·þÎñÆ÷ʱ¼äͬ²½ÇÒ´æÔÚÐÔÄÜÏûºÄ¹ý´óµÄȱµã¡£

Ïû·ÑÕß/ÌṩÕß×¢²áÖÐÐĽ»»¥Í¼
ʹÓÃZookeeper×÷Ϊע²áÖÐÐÄ£¬½¨ÒéÑ¡ÓÃcurator×÷Ϊ¿Í»§¶Ë¿ò¼Ü£»
Zookeeper·þÎñÆ÷Ò쳣崻ú²¢ÖØÐÂÆô¶¯µÄ³¡¾°Ï£¬Dubbo·þÎñµÄrecover»Ö¸´»úÖÆ´æÔÚ²»ÄÜÖØÐÂ×¢²áµÄÎÊÌ⣬µ¼ÖÂÀÏzk
sessionʧЧºó·þÎñ±»´íÎóÇå³ý¡£
·þÎñ¿ò¼Ü³£¼û¸ºÔؾùºâʵÏÖ·½°¸°üÀ¨£º¼¯ÖÐʽ¡¢·Ö²¼Ê½£¬·Ö²¼Ê½ÓÖ¿É·Ö½ø³ÌÄÚ¡¢·Ö½ø³ÌÁ½ÖÖ¡£Dubbo²ÉÓõÄÊÇ·þÎñ·¢Ïֺ͸ºÔؾùºâ¹²Í¬¼¯³ÉÔÚconsumer¶ËµÄ·Ö²¼Ê½½ø³ÌÄÚ½â¾ö·½°¸

Dubbo¸ºÔؾùºâ²ßÂÔ
¸ºÔؾùºâ²ßÂÔÉÏDubboÔÉúÌṩµÄÓлùÓÚÈ¨ÖØËæ»ú¸ºÔØ¡¢×îÉÙ»îÔ¾ÊýÓÅÏÈ¡¢Roundrobin¡¢Ò»ÖÂÐÔHashµÈ¼¸¸ö·½°¸¡£
ÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÎªÁËÄܶԸö±ð´íÎóÂʽϸߵÄÒì³£provider×öµ½¼°Ê±·¢ÏÖ¡¢¼°Ê±ÒýÁ÷£¬DubbokÔö¼ÓÁËеĸºÔؾùºâ²ßÂÔ£¬ÔÚÖ§³ÖÈ¨ÖØµÄ»ù´¡ÉÏ×Ô¶¯·¢ÏÖÒì³£provider£¬Òì³£ÆÚ×Ô¶¯¼õÁ÷¡¢Õý³£ºó×Ô¶¯»Ö¸´Á÷Á¿¡£
2.·ÓÉ¡¢¼¯ÈºÈÝ´í¡¢ÏÞÁ÷
ºÍ¸ºÔؾùºâ²ßÂÔÒ»Ñù£¬DubboµÄ·ÓÉ·½°¸ÊǼ¯³ÉÔÚÏû·Ñ¶ËµÄ£¬¼ÓÉϼ¯ÈºÈÝ´í¹¦Äܿͻ§¶ËÏà¶ÔÊÇÒ»¸öÖØÁ¿µÄ¹¦ÄÜ·â×°¡£¿ÉÑ¡·½°¸Êǽ«Â·Óɹ¤×÷ÒÆµ½×¢²áÖÐÐÄÍê³É£¨ÕâÒªÇó×¢²áÖÐÐľßÓнÏÇ¿µÄ¿É¶¨ÖÆÐÔ£¬²»½ö·ÓÉÏñȨÏÞ¿ØÖÆ¡¢·þÎñ¹ýÂË¡¢»·¾³¸ôÀëµÈ¶¼¿ÉÓÉ×¢²áÖÐÐɣ©
ÏÞÁ÷Ŀǰ֧³Öconsumer¡¢provider¶Ë²¢·¢ÏÞÁ÷£¬Êµ¼ÊÉÏÊÇ»ùÓÚÐźÅÁ¿ÏÞÖÆµÄ£¬ÒÔ½Ó¿ÚÁ£¶È·ÖÅäÐźÅÁ¿£¬µ±ÐźÅÁ¿ÓÃÍêеĵ÷Óý«±»¾Ü¾ø£¬µ±ÒµÎñ·µ»ØºóÐźÅÁ¿±»ÊÍ·Å¡£
Ïû·Ñ¶ËÏÞÁ÷Ó¦¸ÃÊÇΪÕû¸öÌṩ¶Ë¼¯Èº·ÖÅäÐźÅÁ¿£¬¶øDubbo´íÎóµÄ½«ÐźÅÁ¿·ÖÅ䏸µ¥¸ö»úÆ÷¡£Õâ¸öÎÊÌâĿǰ¿ÉÒÔͨ¹ýÏÂÎÄÌáµ½µÄ¸ôÀë¿ò¼ÜµÄÁ÷¿Ø¹¦ÄÜÀ´ÊµÏÖ¡£
ÏÞÁ÷²¢·Ç¾«È·ÏÞÖÆ£¬²»Ó¦µ±ÒÀÀµÆäʵÏÖÑϸñµÄ²¢·¢Êý¿ØÖÆ¡£
ºó¶Ëbackend·þÎñÏÞÁ÷ÐèÒªÒµÎñ·½ºÏÀíÆÀ¹Àÿ¸ö½Ó¿ÚµÄÁ÷¿ØÖµ£¬ÒªÇó¶ÔÒµÎñÁ¿ÓÐ×ã¹»¾ÑéÖµ£¨¿ÉÄÜÒªÔÚ¶à´ÎÏßÉϵ÷Óźó²ÅÄÜ×îÖյóöºÏÀíµÄÁ÷¿ØÖµ£©¡£¿¼ÀÄÚ²¿Á÷¿ØÊµ¼ùÖ¤Ã÷£¬¶ÔÓÚ±£Ö¤·þÎñÎȶ¨ÐÔ¡¢ÓÅÏȱ£Ö¤ÖØÒªÏû·Ñ·½¡¢ÊµÏÖ·þÎñ¸ôÀëµÈÓÐ×ÅÖØÒªµÄ×÷Óá£
3.·þÎñ¶¯Ì¬ÖÎÀí
¶¯Ì¬ÖÎÀí±¾ÖÊÉÏÊÇÒÀÀµDubboÔËÐÐÆÚ²ÎÊýµÄ¶¯Ì¬µ÷Õû£¬ÔÙͨÓÃÒ»µãÆäʵ¾ÍÊÇÓ¦ÓõIJÎÊý¶¯Ì¬µ÷Õû£¬¿ªÔ´³£ÓõÄdisconf¡¢diamond¡¢archaiusµÈ¼¯ÖÐÅäÖùÜÀí¹¤¾ß¶¼ÊÇÉè¼ÆÀ´½â¾öÕâ¸öÎÊÌâ¡£DubboÄÚ²¿ÔÚurl²ÎÊý´«µÝÄ£ÐÍ»ù´¡ÉÏʵÏÖÁËÒ»ÌײÎÊý¶¯Ì¬ÅäÖÃÂß¼£¬¸öÈËÈÏΪÏà±ÈÓÚDubboµÄʵÏÖ£¬¼¯³ÉdisconfµÈ¸üרҵµÄ¿ò¼ÜÓ¦¸ÃÊǸüºÃµÄ½â¾ö·½°¸£¬»òÐíDubboΪÁËһЩÆäËûÉè¼ÆÄ¿±ê½â³ýÁ˶ÔһЩÍⲿ¿ò¼ÜµÄÇ¿ÖÆÒÀÀµ¡£¶¯Ì¬ÖÎÀí¿ÉÒÔʵÏÖ´Ó»ù±¾²ÎÊýÈçtimeout¡¢mockµ½Ò»Ð©¸ß¼¶ÌØÐÔÈç·ÓÉ¡¢ÏÞÁ÷µÈ¼¸ºõËùÓеÄÔËÐÐÆÚ²ÎÊýµ÷Õû¡£
DubboÔÉúÔÚ¶¯Ì¬ÅäÖÃÉÏ´æÔںܶàbug£¬ÅäÖò»ÉúЧ»òÅäÖùæÔòÎó¶ÁµÈÎÊÌâ¶¼Óöµ½¹ý£¬Èç¹ûÄãÔÙʹÓÃÔÉúDubbo¹ý³ÌÖÐÒ²Óöµ½ÈκÎÅäÖÃÎÊÌ⣬DubbokÓ¦¸Ã¶¼ÒѾ½â¾öµôÁË¡£
Èý¡¢ÒÀÀµ¸ôÀ루·þÎñ½µ¼¶£©
µ±Ó¦Óñ»Éè¼ÆÒÀÀµÍⲿ·þÎñʱ£¬ÒªÊ¼ÖÕ±£³Ö¾¯Ìè״̬£ºÍⲿÒÀÀµÊDz»Îȶ¨µÄ£¬Îª´Ë¶Ô½ÓÍⲿÒÀÀµ×öºÃ½âñîÊǹؼü£¬±ÜÃâÍⲿ½Ó¿Ú·¢ÉúÒì³£ÍÏ¿å×ÔÉíϵͳ¡£DubboÌṩÁ˳¬Ê±timeout»úÖÆ×÷Ϊ×î»ù±¾µÄ½âñî´ëÊ©£¬Í¬Ê±ÔÚ½Ó¿Ú±¨´íʱ֧³ÖÌṩ½µ¼¶µÄÈÝ´íÂß¼£»³ýÁËÈÝ´í½µ¼¶£¬Dubbo½øÒ»²½Ö§³ÖÇ¿ÖÆµÄ¶Ì·½µ¼¶¡£

ÈÝ´í ¶Ì·
È»¶øÔÚÈÝ´í½µ¼¶Óë¶Ì·½µ¼¶Ö®¼ä£¬Dubboȱ·¦Ò»ÖÖÔÚÈÝ´íÓë¶Ì·¼äÇл»µÄ»úÖÆ£¬¼´×Ô¶¯ÈÛ¶Ï¡£×Ô¶¯ÈÛ¶ÏÒª´ïµ½µÄЧ¹ûÊÇ£ºµ±½Ó¿ÚżȻ±¨´íʱִÐÐÈÝ´í·µ»Ø±¸ÓÃÊý¾Ý£¬¶øµ±½Ó¿Ú³ÖÐø´óÁ¿±¨´íʱÄÜ×Ô¶¯ÔÚÏû·Ñ¶Ë¶Ô½Ó¿Úµ÷ÓöÌ·ֱ½Ó·µ»Ø±¸ÓÃÊý¾Ý£¬Ö®ºó³ÖÐø¼à²â½Ó¿Ú¿ÉÓÃÐÔ£¬½Ó¿Ú»Ö¸´ºó×Ô¶¯»Ö¸´µ÷Óá£ÕâÑùÄÜ×î´óÏ޶ȼõÉÙ½Ó¿ÚÒì³£¶ÔÏû·Ñ·½µÄÓ°Ï죬ͬʱҲ¼õÇá±¾¾Í´¦ÓÚÒ쳣״̬µÄÌṩ¶Ë¸ºÔØ¡£

×Ô¶¯È۶Ϲ¤×÷ÔÀíͼ
Dubbokͨ¹ý±ê×¼SPIµÄµÄÐÎʽ£¬ÊµÏÖÁËÈ۶Ϲ¦ÄÜ¡£Ä¿Ç°Ö§³ÖÁ½Ì×·½°¸£ºÒ»Ì×ÊÇ×Ô¼ºÊµÏÖµÄÈÛ¶ÏÂß¼£»Ò»Ì×ÊÇͨ¹ý¼¯³Éhystrix¿ò¼ÜʵÏÖ¡£Ä¿Ç°Ö§³Ö´íÎóÂÊ¡¢×îµÍÇëÇóÁ¿¡¢ÈÛ¶Ïʱ¼ä´°µÈ»ù±¾ÅäÖã¬Ö§³Ö½«ÒµÎñÒì³£ÄÉÈëͳ¼Æ·¶³ë£»ÒÔÉϲÎÊý¾ù¿Éͨ¹ýSOAÖÎÀíÆ½Ì¨ÔËÐÐÆÚ¶¯Ì¬µ÷Õû£»Ö§³ÖÍⲿDubboÒÀÀµµ÷ÓõÄ׼ʵʱ¼à¿Ø¡£

SOA¶¯Ì¬µ÷ÕûÈ۶ϲÎÊý

ÒÀÀµÊµÊ±¼à¿Ø
HystrixÊÇNetflixÔÚ΢·þÎñʵ¼ùÖÐΪʵÏÖÍⲿÒÀÀµ½âñî¶øÉè¼ÆµÄ¿ò¼Ü£¬Ëü¼ÙÉèËùÓеÄÍⲿÒÀÀµ£¨http¡¢MySQL¡¢RedisµÈµÈ£©¿ÉÄÜÔÚÈκÎʱ¼ä³öÏÖÎÊÌ⣨ÄãÉõÖÁ¿ÉÒÔÏëÏñ²»¾Òâ¼ä¾ÍʹÓÃÁËÒ»¸öûÓÐÌṩ³¬Ê±ÉèÖõÄhttp¿Í»§¶Ë£©¡£ÓÚÈκοÉÄܵÄÍⲿÑÓʱÔì³ÉµÄ×èÈû»òÆäËûÒì³££¬hystixÌṩÁË»ùÓÚÏ̳߳ظôÀëµÄ³¬Ê±»úÖÆ£¬Ð°汾ÔÚRxJava»ù´¡ÉÏÐźÅÁ¿¸ôÀëҲͬÑùÖ§³Ö³¬Ê±¡£´ËÍâ¿ò¼Ü»¹Ö§³Ö¶¨ÖÆÈÝ´íÂß¼¡¢ÇëÇó½á¹û»º´æ¡¢ÇëÇóºÏ²¢¡¢Ïû·Ñ¶ËÏ̳߳ظôÀëµÈ£¬ÓÉÓÚijЩ¹¦Äܵ±Ç°ÎÞÃ÷È·ÐèÇó»òÓëDubbo¹¦ÄÜÉè¼ÆÖØºÏ¶øÃ»ÓнøÐм¯³É¡£
Hystrix¸ü¶àÌØÐÔ¼°ÊµÏÖÔÀíÇë²Î¼ûNetflix¹Ù·½Îĵµ¡£
ËÄ¡¢Æô¶¯ÓëÍ£»ú
ÕâÀïÖ÷Òª¹Ø×¢Dubbo¹¤³ÌÆô¶¯³õʼ»¯½×¶ÎºÍÍ£»úÏú»Ù½×¶ÎµÄÒ»Ð©ÌØÐԺ͸Ľøµã£º
1.ÑÓ³Ù±©Â¶¡£
ĬÈÏDubbo·þÎñ»áËæ×ÅSpring¿ò¼ÜµÄ¼ÓÔØÖðÒ»Íê³É·þÎñµ½×¢²áÖÐÐĵÄ×¢²á£¨±©Â¶£©£¬Èç¹ûijЩ·þÎñÐèÒªµÈ´ý×ÊÔ´¾Íλ²ÅÄܱ©Â¶£¬ÄǾÍÐèÒªÑÓʱע²á¡£

Ôö¼ÓSpring context³õʼ»¯Íê³Éºó¼ÌÐøÑÓʱµÈ´ýµÄÅäÖÃÏî
ÔÚÎÞÌØÊâÅäÖõÄÇé¿öÏ£¬ËùÓеÄDubbo·þÎñĬÈÏÊÇ×¢²áÔÚͬһ¸ötcp¶Ë¿ÚµÄ¡£¶øÑÓ³Ù±©Â¶ÊÇͨ¹ý¿ªÆôеÄÑÓʱÏß³ÌʵÏֵ쬵±ÑÓʱ½áÊøÊ±ÓÉÓÚ¶àÏ̲߳¢·¢Ö´Ðе¼Ö¶à·þÎñËæ»ú×¢²áÔÚ¶à¸ö¶Ë¿Ú¡£
2.Æô¶¯Ô¤ÈÈ
һЩӦÓÃÔÚÔËÐÐÆÚ»áͨ¹ý±¾µØ»º´æÖмä½á¹ûÌáÉýÐÔÄÜ£¬¶øµ±´ËÀàÓ¦ÓÃÖØÆôʱ±¾µØ»º´æÊý¾Ý¶ªÊ§£¬Èç¹ûÖØÆôºóµÄ»úÆ÷Á¢¼´ÓдóÁ¿ÇëÇóµ¼Á÷¹ýÀ´£¬ÓÉÓÚûÓлº´æ¼ÓËٻᵼÖÂÇëÇó×èÈûÏìÓ¦ÐÔÄܽµµÍ¡£Í¨¹ý¶ÔÖØÆôºóµÄ»úÆ÷ÉèÖÃÔ¤ÈÈÆÚ¿ÉÓÐЧ»º½âÖØÆô»º´æÊ§Ð§ÎÊÌ⣺¾ßÌå×ö·¨ÊǽµµÍÔ¤ÈÈÆÚÄڵĻúÆ÷È¨ÖØ£¬Òýµ¼ÉÙ²¿·ÖÁ÷Á¿µ½´Ë»úÆ÷£¬´Ë»úÆ÷¿ÉÒÔÔÚÔ¤ÈÈÆÚÄÚÖð²½½¨Á¢»º´æ£¬´ýÔ¤ÈÈÆÚ¹ýºó»Ö¸´Õý³£È¨ÖØÓëÆäËû»úÆ÷ƽ¾ù·Ö̯Á÷Á¿¡£
3.ÓÅÑÅÍ£»ú
ÔÚ¼¯Èº²¿ÊðµÄÇé¿öÏ£¬µ¥¸öÏû·ÑÕß»òÌṩÕß»úÆ÷ÉÏÏÂÏß¶ÔÕû¸ö²úÆ·µÄÔËתӦ¸ÃÊǽüºõÎÞ¸ÐÖªµÄ£¬DubboÌṩÁËÓÅÑÅÍ£»ú¹¦»úÖÆ±£ÕÏÔÚ½ø³Ì¹Ø±ÕǰÇëÇ󶼵õ½Í×ÉÆ´¦Àí¡£
Ïû·Ñ·½ÓÅÑÅÍ£»ú£º¿ØÖƲ»ÔÙÓÐеÄÇëÇó·¢³ö£»µÈ´ýÒѾ·¢³öµÄÇëÇóÕýÈ··µ»Ø£»ÊÍ·ÅÁ¬½ÓµÈ×ÊÔ´¡£
Ìṩ·½ÓÅÑÅÍ£»ú£ºÍ¨ÖªÏû·Ñ¶ËÍ£Ö¹·¢ËÍÇëÇóµ½µ±Ç°»úÆ÷£»Í¨Öª×¢²áÖÐÐÄ·þÎñÏÂÏߣ»µÈ´ýÒѾ½ÓÊÕµÄÇëÇó´¦ÀíÍê³É²¢·µ»Ø£»ÊÍ·ÅÁ¬½ÓµÈ×ÊÔ´¡£
¿¼ÀÔÚÿ´Î·þÎñÉÏÏÂÏß¹ý³ÌÖУ¬Ã¿¸ö¹¤³Ì×ÜÊÇÊÕµ½´óÁ¿µÄÏû·Ñ·½/Ìṩ·½±¨³öµÄ·þÎñµ÷ÓÃÒì³££¬¾ÅŲéÊÇDubboÓÅÑÅÍ£»úʵÏÖµÄÎÊÌ⣬ÐÞ¸´ÎÊÌâºó¹¤³ÌÉÏÏß½×¶ÎÒì³£ÊýÃ÷ÏÔ¼õÉÙ¡£
ÁíÍâÍ£»ú½×¶Î×ÜÊÇĪÃûµÄÊÕµ½zkÁ¬½ÓΪ¿ÕµÄÒì³£ÐÅÏ¢¡£ÊÇÓÉÓÚÔÚ֪ͨע²áÖÐÐÄ·þÎñÏÂÏߵĹý³ÌÖУ¬SpringÏú»ÙÏ̺߳Íjvm
hookÏ̲߳¢·¢Ö´ÐУ¬µ¼ÖÂzk¿Í»§¶Ë±»ÌáǰÏú»Ùµ¼ÖÂÅ׳öÒì³£¡£
4.ProviderÖØÆô
×¢²áÖÐÐÄ·¢ËÍ´óÁ¿·þÎñÏú»ÙÓë×¢²á֪ͨµ¼ÖÂconsumer¹¤³ÌFull GC¡£
ÀúÊ·ÔÒò£¬¿¼ÀÄÚ²¿ÈÔ´æÔÚÒ»¸öÌṩ½ü200¸öDubbo·þÎñµÄµ¥Ì幤³Ì£¬¶øÃ¿´Îµ±Õâ¸ö¹¤³ÌÉÏÏßʱ£¬Ïû·ÑËüµÄconsumer¹¤³Ì¾Í»á³öÏÖÆµ·±Full
GC£¨3-5´Î£¬·ÇÄÚ´æÐ¹Â¶£©¡£
ÊÇDubboΪ±£Ö¤¸ß¿ÉÓöøÉè¼ÆµÄ×¢²áÖÐÐÄ»º´æµ¼ÖµÄÎÊÌ⣺ÔÚÿ´ÎÊÕµ½×¢²áÖÐÐıä¸üʱconsumer»áÔÚ±¾µØ´ÅÅ̱£´æÒ»·Ý·þÎñÊý¾Ý¸±±¾£¬ÓÉÓÚ¶à×¢²áÖÐÐĹ²Ïíͬһ·Ý»º´æÎļþ£¬ÎªÁ˱ÜÃâÏ໥¸²¸Ç£¬Ã¿¸ö×¢²áÖÐÐÄʵÀý»áÔÚÊÕµ½±ä¸üÊ±ÖØÐ´ӴÅÅ̼ÓÔØÎļþµ½»º´æ£¬ºÍ±ä¸üÊý¾Ý¶Ô±ÈºóÖØÐÂд»Ø´ÅÅÌ£¬ÔÚ½ü100ÌṩÕß»úÆ÷²»¶ÏÖØÆôµÄ¹ý³ÌÖУ¬´óÁ¿µÄ±ä¸ü֪ͨµ¼ÖÂµÄÆµ·±¼ÓÔØ»º´æÎļþÕ¼ÓôóÁ¿ÄÚ´æµ¼ÖÂFull
GC¡£
Îå¡¢Dubbok½üÆÚÓÅ»¯Ä¿±ê:
Ìṩ¶ËÏ̳߳ظôÀ룬½â¾öÌṩ¶ËÏ̳߳Ø×èÈûµÈÎÊÌ⣻ÓÅ»¯Ïû·Ñ¶ËÏ̳߳طÖÅä·½°¸
·þÎñÖÎÀí¶¯Ì¬ÅäÖù¦ÄÜÔö¼ÓÓ¦ÓᢻúÆ÷Á£¶ÈµÄÅäÖÃ
¶à×¢²áÖÐÐÄÏû·Ñ¶Ë¸ºÔؾùºâ²ßÂÔ
DubboÄÚ²¿×ÊÔ´JMX¼à¿Ø
½áºÏSOAƽ̨ÓÅ»¯¼à¿ØÍ³¼ÆÊý¾Ý£º´íÎóÀàÐÍϸ·Ö£¨³¬Ê±¡¢ÏÞÁ÷¡¢ÍøÂçÒì³£µÈ£©£»Ö´ÐÐʱ¼äϸ·ÖÈç90%¡¢99% RTµÈ£»Í³¼ÆÕ¼
ÓÃÏß³ÌÊý½Ï¶àµÄ·þÎñ¡¢´«ËÍÊý¾ÝÁ¿½Ï´óµÄ·þÎñ£¬Îª·ÖÏ̳߳ػòÁ¬½Ó×ö²Î¿¼
¶ÔSpring bootÍÆÐеÄJavaconfigÅäÖ÷½Ê½Ìṩ¸üÓѺá¢È«ÃæµÄ×¢½âÖ§³Ö
һЩ¿ò¼ÜÉý¼¶£¬ÈçJavassist¡¢NettyµÈ
Ìæ´úZookeeperµÄ¸ßÐÔÄÜ¡¢¿ÉÀ©Õ¹×¢²áÖÐÐÄ
·þÎñ°²È«¡¢ÊÚȨÎÊÌâµ÷ÑÐ
Spring CloudµÄһЩÓÅÐãÌØÐÔ½«×÷ΪDubbok¸Ä½øµÄÒ»¸ö³ÖÐø¹Ø×¢µã
¡¡
Áù¡¢×ܽá
ÎÄÖÐÌáµ½µÄһЩ¸Ä½øµãÖ»ÊǼòÂÔÃèÊö£¬DubbokµÄºÜ¶à¸Ä½øµãҲûÓÐÒ»Ò»Ìá¼°£¬ºóÐøÓÐʱ¼äÔÙÏêϸµÀÀ´¡£
Dubbok¿ò¼Ü¡¢SOA·þÎñÖÎÀíÆ½Ì¨¡¢·Ö²¼Ê½µ÷ÓÃÁ´Â·¸ú×ÙÒÔ¼°ÆäËû¿¼ÀÄÚ²¿Î¬»¤µÄÈç·Ö²¼Ê½ÊÂÎñ¡¢ÏûÏ¢Öмä¼þµÈ¹²Í¬Ö§³ÅÁË¿¼À΢·þÎñ»¯µÄÕý³£ÔËת¡£ÉÏÎÄÒ²Ìᵽ΢·þÎñÐèÒªÓпª·¢¡¢²âÊÔ¡¢ÔËÐС¢ÔËά¡¢²¿Êð¡¢·¢²¼µÈ¸÷½×¶ÎµÄÈ«Á´Â·Ö§³Å²ÅÄÜ·¢»Ó×î´ó¼ÛÖµ£¬ºóÐøÎÒÃǽ«¼ÌÐøÁªºÏÆäËûÐֵܲ¿ÃÅ£¬¶Ô΢·þÎñ»¯Êµ¼ù½øÒ»²½ÓÅ»¯¡£
|