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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
DubboÈëÃÅ---´î½¨Ò»¸ö×î¼òµ¥µÄDemo¿ò¼Ü
 
  2641  次浏览      27
 2018-10-10
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÔÚ±¾ÎÄÖлùÓÚDubbo¿ªÊ¼ÓÚµçÉÌϵͳ¿ªÊ¼½éÉÜÁË£¬Dubbo±³¾°ºÍ¼ò½é£¬Ó¦Óüܹ¹ÒÔ¼°¹ÜÀí¿ØÖÆÌ¨¡£

Dubbo±³¾°ºÍ¼ò½é

Dubbo¿ªÊ¼ÓÚµçÉÌϵͳ£¬Òò´ËÔÚÕâÀïÏÈ´ÓµçÉÌϵͳµÄÑݱ佲Æð¡£

1.µ¥Ò»Ó¦Óÿò¼Ü(ORM)

µ±ÍøÕ¾Á÷Á¿ºÜСʱ£¬Ö»ÐèÒ»¸öÓ¦Ó㬽«ËùÓй¦ÄÜÈçϵ¥Ö§¸¶µÈ¶¼²¿ÊðÔÚÒ»Æð£¬ÒÔ¼õÉÙ²¿Êð½ÚµãºÍ³É±¾¡£

ȱµã£ºµ¥Ò»µÄϵͳ¼Ü¹¹£¬Ê¹µÃÔÚ¿ª·¢¹ý³ÌÖУ¬Õ¼ÓõÄ×ÊÔ´Ô½À´Ô½¶à£¬¶øÇÒËæ×ÅÁ÷Á¿µÄÔö¼ÓÔ½À´Ô½ÄÑÒÔά»¤

2.´¹Ö±Ó¦Óÿò¼Ü(MVC)

´¹Ö±Ó¦Óüܹ¹½â¾öÁ˵¥Ò»Ó¦Óüܹ¹ËùÃæÁÙµÄÀ©ÈÝÎÊÌ⣬Á÷Á¿Äܹ»·ÖÉ¢µ½¸÷¸ö×Óϵͳµ±ÖУ¬ÇÒϵͳµÄÌå»ý¿É¿Ø£¬Ò»¶¨³Ì¶ÈÉϽµµÍÁË¿ª·¢ÈËÔ±Ö®¼äЭͬÒÔ¼°Î¬»¤µÄ³É±¾£¬ÌáÉýÁË¿ª·¢Ð§ÂÊ¡£

ȱµã£ºµ«ÊÇÔÚ´¹Ö±¼Ü¹¹ÖÐÏàͬÂß¼­´úÂëÐèÒª²»¶ÏµÄ¸´ÖÆ£¬²»Äܸ´Óá£

3.·Ö²¼Ê½Ó¦Óüܹ¹(RPC)

µ±´¹Ö±Ó¦ÓÃÔ½À´Ô½¶à£¬Ó¦ÓÃÖ®¼ä½»»¥²»¿É±ÜÃ⣬½«ºËÐÄÒµÎñ³éÈ¡³öÀ´£¬×÷Ϊ¶ÀÁ¢µÄ·þÎñ£¬Öð½¥ÐγÉÎȶ¨µÄ·þÎñÖÐÐÄ

4.Á÷¶¯¼ÆËã¼Ü¹¹(SOA)

Ëæ×Å·þÎñ»¯µÄ½øÒ»²½·¢Õ¹£¬·þÎñÔ½À´Ô½¶à£¬·þÎñÖ®¼äµÄµ÷ÓúÍÒÀÀµ¹ØÏµÒ²Ô½À´Ô½¸´ÔÓ£¬µ®ÉúÁËÃæÏò·þÎñµÄ¼Ü¹¹Ìåϵ(SOA)£¬Ò²Òò´ËÑÜÉú³öÁËһϵÁÐÏàÓ¦µÄ¼¼Êõ£¬Èç¶Ô·þÎñÌṩ¡¢·þÎñµ÷Óá¢Á¬½Ó´¦Àí¡¢Í¨ÐÅЭÒé¡¢ÐòÁл¯·½Ê½¡¢·þÎñ·¢ÏÖ¡¢·þÎñ·ÓÉ¡¢ÈÕÖ¾Êä³öµÈÐÐΪ½øÐзâ×°µÄ·þÎñ¿ò¼Ü

´ÓÒÔÉÏÊǵçÉÌϵͳµÄÑݱä¿ÉÒÔ¿´³ö¼Ü¹¹ÑݱäµÄ¹ý³Ì£º

1.µ¥Ò»Ó¦Óüܹ¹

µ±ÍøÕ¾Á÷Á¿ºÜСʱ£¬Ö»ÐèÒ»¸öÓ¦Ó㬽«ËùÓй¦Äܶ¼²¿ÊðÔÚÒ»Æð£¬ÒÔ¼õÉÙ²¿Êð½ÚµãºÍ³É±¾¡£

´Ëʱ£¬ÓÃÓÚ¼ò»¯Ôöɾ¸Ä²é¹¤×÷Á¿µÄ Êý¾Ý·ÃÎÊ¿ò¼Ü(ORM) Êǹؼü¡£

2.´¹Ö±Ó¦Óüܹ¹

µ±·ÃÎÊÁ¿Öð½¥Ôö´ó£¬µ¥Ò»Ó¦ÓÃÔö¼Ó»úÆ÷´øÀ´µÄ¼ÓËÙ¶ÈÔ½À´Ô½Ð¡£¬½«Ó¦Óòð³É»¥²»Ïà¸ÉµÄ¼¸¸öÓ¦Óã¬ÒÔÌáÉýЧÂÊ¡£

´Ëʱ£¬ÓÃÓÚ¼ÓËÙǰ¶ËÒ³Ãæ¿ª·¢µÄ Web¿ò¼Ü(MVC) Êǹؼü¡£

3.·Ö²¼Ê½·þÎñ¼Ü¹¹

µ±´¹Ö±Ó¦ÓÃÔ½À´Ô½¶à£¬Ó¦ÓÃÖ®¼ä½»»¥²»¿É±ÜÃ⣬½«ºËÐÄÒµÎñ³éÈ¡³öÀ´£¬×÷Ϊ¶ÀÁ¢µÄ·þÎñ£¬Öð½¥ÐγÉÎȶ¨µÄ·þÎñÖÐÐÄ£¬Ê¹Ç°¶ËÓ¦ÓÃÄܸü¿ìËÙµÄÏìÓ¦¶à±äµÄÊг¡ÐèÇó¡£

´Ëʱ£¬ÓÃÓÚÌá¸ßÒµÎñ¸´Óü°ÕûºÏµÄ ·Ö²¼Ê½·þÎñ¿ò¼Ü(RPC) Êǹؼü¡£

4.Á÷¶¯¼ÆËã¼Ü¹¹

µ±·þÎñÔ½À´Ô½¶à£¬ÈÝÁ¿µÄÆÀ¹À£¬Ð¡·þÎñ×ÊÔ´µÄÀ˷ѵÈÎÊÌâÖð½¥ÏÔÏÖ£¬´ËʱÐèÔö¼ÓÒ»¸öµ÷¶ÈÖÐÐÄ»ùÓÚ·ÃÎÊѹÁ¦ÊµÊ±¹ÜÀí¼¯ÈºÈÝÁ¿£¬Ìá¸ß¼¯ÈºÀûÓÃÂÊ¡£

´Ëʱ£¬ÓÃÓÚÌá¸ß»úÆ÷ÀûÓÃÂ浀 ×ÊÔ´µ÷¶ÈºÍÖÎÀíÖÐÐÄ(SOA) Êǹؼü¡£

ÔÚÕâÀï²å²¥Ò»Ìõ¹ØÓÚRPCµÄ¼ò½é£º

RPC(Remote Procedure Call Protocol)£ºÔ¶³Ì¹ý³Ìµ÷Óãº

Á½Ì¨·þÎñÆ÷A¡¢B£¬·Ö±ð²¿Êð²»Í¬µÄÓ¦ÓÃa,b¡£µ±A·þÎñÆ÷ÏëÒªµ÷ÓÃB·þÎñÆ÷ÉÏÓ¦ÓÃbÌṩµÄº¯Êý»ò·½·¨µÄʱºò£¬ÓÉÓÚ²»ÔÚÒ»¸öÄÚ´æ¿Õ¼ä£¬²»ÄÜÖ±½Óµ÷Óã¬ÐèҪͨ¹ýÍøÂçÀ´±í´ïµ÷ÓõÄÓïÒå´«´ïµ÷ÓõÄÊý¾Ý¡£

˵°×ÁË£¬¾ÍÊÇÄãÔÚÄãµÄ»úÆ÷ÉÏдÁËÒ»¸ö³ÌÐò£¬ÎÒÕâ±ßÊÇÎÞ·¨Ö±½Óµ÷Óõģ¬Õâ¸öʱºò¾Í³öÏÖÁËÒ»¸öÔ¶³Ì·þÎñµ÷ÓõĸÅÄî¡£ RPCÊÇÒ»ÖÖͨ¹ýÍøÂç´ÓÔ¶³Ì¼ÆËã»ú³ÌÐòÉÏÇëÇó·þÎñ£¬¶ø²»ÐèÒªÁ˽âµ×²ãÍøÂç¼¼ÊõµÄЭÒé¡£RPCЭÒé¼Ù¶¨Ä³Ð©´«ÊäЭÒéµÄ´æÔÚ£¬ÈçTCP»òUDP£¬ÎªÍ¨ÐųÌÐòÖ®¼äЯ´øÐÅÏ¢Êý¾Ý¡£ÔÚOSIÍøÂçͨÐÅÄ£ÐÍÖУ¬RPC¿çÔ½ÁË´«Êä²ãºÍÓ¦Óò㡣RPCʹµÃ¿ª·¢°üÀ¨ÍøÂç·Ö²¼Ê½¶à³ÌÐòÔÚÄÚµÄÓ¦ÓóÌÐò¸ü¼ÓÈÝÒס£

RPC²ÉÓÿͻ§»ú/·þÎñÆ÷ģʽ¡£ÇëÇó³ÌÐò¾ÍÊÇÒ»¸ö¿Í»§»ú£¬¶ø·þÎñÌṩ³ÌÐò¾ÍÊÇÒ»¸ö·þÎñÆ÷¡£Ê×ÏÈ£¬¿Í»§»úµ÷Óýø³Ì·¢ËÍÒ»¸öÓнø³Ì²ÎÊýµÄµ÷ÓÃÐÅÏ¢µ½·þÎñ½ø³Ì£¬È»ºóµÈ´ýÓ¦´ðÐÅÏ¢¡£ÔÚ·þÎñÆ÷¶Ë£¬½ø³Ì±£³Ö˯Ãß״ֱ̬µ½µ÷ÓÃÐÅÏ¢µ½´ïΪֹ¡£µ±Ò»¸öµ÷ÓÃÐÅÏ¢µ½´ï£¬·þÎñÆ÷»ñµÃ½ø³Ì²ÎÊý£¬¼ÆËã½á¹û£¬·¢ËÍ´ð¸´ÐÅÏ¢£¬È»ºóµÈ´ýÏÂÒ»¸öµ÷ÓÃÐÅÏ¢£¬×îºó£¬¿Í»§¶Ëµ÷Óýø³Ì½ÓÊÕ´ð¸´ÐÅÏ¢£¬»ñµÃ½ø³Ì½á¹û£¬È»ºóµ÷ÓÃÖ´ÐмÌÐø½øÐС£

RPCÐèÒª½â¾öµÄÎÊÌ⣺

ͨѶÎÊÌâ : Ö÷ÒªÊÇͨ¹ýÔÚ¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼ä½¨Á¢TCPÁ¬½Ó£¬Ô¶³Ì¹ý³Ìµ÷ÓõÄËùÓн»»»µÄÊý¾Ý¶¼ÔÚÕâ¸öÁ¬½ÓÀï´«Êä¡£Á¬½Ó¿ÉÒÔÊǰ´ÐèÁ¬½Ó£¬µ÷ÓýáÊøºó¾Í¶Ïµô£¬Ò²¿ÉÒÔÊdz¤Á¬½Ó£¬¶à¸öÔ¶³Ì¹ý³Ìµ÷Óù²Ïíͬһ¸öÁ¬½Ó¡£

ѰַÎÊÌâ £º A·þÎñÆ÷ÉϵÄÓ¦ÓÃÔõô¸æËߵײãµÄRPC¿ò¼Ü£¬ÈçºÎÁ¬½Óµ½B·þÎñÆ÷£¨ÈçÖ÷»ú»òIPµØÖ·£©ÒÔ¼°Ìض¨µÄ¶Ë¿Ú£¬·½·¨µÄÃû³ÆÃû³ÆÊÇʲô£¬ÕâÑù²ÅÄÜÍê³Éµ÷ÓᣱÈÈç»ùÓÚWeb·þÎñЭÒéÕ»µÄRPC£¬¾ÍÒªÌṩһ¸öendpoint URI£¬»òÕßÊÇ´ÓUDDI·þÎñÉϲéÕÒ¡£Èç¹ûÊÇRMIµ÷Óõϰ£¬»¹ÐèÒªÒ»¸öRMI RegistryÀ´×¢²á·þÎñµÄµØÖ·¡£

ÐòÁл¯ Óë ·´ÐòÁл¯ £º µ±A·þÎñÆ÷ÉϵÄÓ¦Ó÷¢ÆðÔ¶³Ì¹ý³Ìµ÷ÓÃʱ£¬·½·¨µÄ²ÎÊýÐèҪͨ¹ýµ×²ãµÄÍøÂçЭÒéÈçTCP´«µÝµ½B·þÎñÆ÷£¬ÓÉÓÚÍøÂçЭÒéÊÇ»ùÓÚ¶þ½øÖƵģ¬ÄÚ´æÖеIJÎÊýµÄÖµÒªÐòÁл¯³É¶þ½øÖƵÄÐÎʽ£¬Ò²¾ÍÊÇÐòÁл¯£¨Serialize£©»ò±à×飨marshal£©£¬Í¨¹ýѰַºÍ´«Ê佫ÐòÁл¯µÄ¶þ½øÖÆ·¢Ë͸øB·þÎñÆ÷¡£

ͬÀí£¬B·þÎñÆ÷½ÓÊÕ²ÎÊýÒª½«²ÎÊý·´ÐòÁл¯¡£B·þÎñÆ÷Ó¦Óõ÷ÓÃ×Ô¼ºµÄ·½·¨´¦Àíºó·µ»ØµÄ½á¹ûÒ²ÒªÐòÁл¯¸øA·þÎñÆ÷£¬A·þÎñÆ÷½ÓÊÕÒ²Òª¾­¹ý·´ÐòÁл¯µÄ¹ý³Ì¡£

DubboÊÇ

1.ʲôDubboÊÇ£ºÒ»¿î·Ö²¼Ê½·þÎñ¿ò¼Ü

2.¸ßÐÔÄܺÍ͸Ã÷»¯µÄRPCÔ¶³Ì·þÎñµ÷Ó÷½°¸

3.SOA·þÎñÖÎÀí·½°¸

ÿÌìΪ2ǧ¶à¸ö·þÎñÌṩ´óÓÚ30ÒڴηÃÎÊÁ¿Ö§³Ö£¬²¢±»¹ã·ºÓ¦ÓÃÓÚ°¢Àï°Í°Í¼¯Íŵĸ÷³ÉÔ±Õ¾µãÒÔ¼°±ðµÄ¹«Ë¾µÄÒµÎñÖС£

Dubbo¼Ü¹¹

Provider: ±©Â¶·þÎñµÄ·þÎñÌṩ·½¡£

Consumer: µ÷ÓÃÔ¶³Ì·þÎñµÄ·þÎñÏû·Ñ·½¡£

Registry: ·þÎñ×¢²áÓë·¢ÏÖµÄ×¢²áÖÐÐÄ¡£

Monitor: ͳ¼Æ·þÎñµÄµ÷ÓôÎÊýºÍµ÷ÓÃʱ¼äµÄ¼à¿ØÖÐÐÄ¡£

µ÷ÓÃÁ÷³Ì

0.·þÎñÈÝÆ÷¸ºÔðÆô¶¯£¬¼ÓÔØ£¬ÔËÐзþÎñÌṩÕß¡£

1.·þÎñÌṩÕßÔÚÆô¶¯Ê±£¬Ïò×¢²áÖÐÐÄ×¢²á×Ô¼ºÌṩµÄ·þÎñ¡£

2.·þÎñÏû·ÑÕßÔÚÆô¶¯Ê±£¬Ïò×¢²áÖÐÐĶ©ÔÄ×Ô¼ºËùÐèµÄ·þÎñ¡£

3.×¢²áÖÐÐÄ·µ»Ø·þÎñÌṩÕßµØÖ·ÁÐ±í¸øÏû·ÑÕߣ¬Èç¹ûÓбä¸ü£¬×¢²áÖÐÐĽ«»ùÓÚ³¤Á¬½ÓÍÆËͱä¸üÊý¾Ý¸øÏû·ÑÕß¡£

4.·þÎñÏû·ÑÕߣ¬´ÓÌṩÕßµØÖ·ÁбíÖУ¬»ùÓÚÈí¸ºÔØ¾ùºâËã·¨£¬Ñ¡Ò»Ì¨ÌṩÕß½øÐе÷Óã¬Èç¹ûµ÷ÓÃʧ°Ü£¬ÔÙÑ¡Áíһ̨µ÷Óá£

5.·þÎñÏû·ÑÕߺÍÌṩÕߣ¬ÔÚÄÚ´æÖÐÀۼƵ÷ÓôÎÊýºÍµ÷ÓÃʱ¼ä£¬¶¨Ê±Ã¿·ÖÖÓ·¢ËÍÒ»´Îͳ¼ÆÊý¾Ýµ½¼à¿ØÖÐÐÄ

Dubbo×¢²áÖÐÐÄ

¶ÔÓÚ·þÎñÌṩ·½£¬ËüÐèÒª·¢²¼·þÎñ£¬¶øÇÒÓÉÓÚÓ¦ÓÃϵͳµÄ¸´ÔÓÐÔ£¬·þÎñµÄÊýÁ¿¡¢ÀàÐÍÒ²²»¶ÏÅòÕÍ£»

¶ÔÓÚ·þÎñÏû·Ñ·½£¬Ëü×î¹ØÐÄÈçºÎ»ñÈ¡µ½ËüËùÐèÒªµÄ·þÎñ£¬¶øÃæ¶Ô¸´ÔÓµÄÓ¦ÓÃϵͳ£¬ÐèÒª¹ÜÀí´óÁ¿µÄ·þÎñµ÷Óá£

¶øÇÒ£¬¶ÔÓÚ·þÎñÌṩ·½ºÍ·þÎñÏû·Ñ·½À´Ëµ£¬ËûÃÇ»¹ÓпÉÄܼæ¾ßÕâÁ½ÖÖ½ÇÉ«£¬¼´¼ÈÐèÒªÌṩ·þÎñ£¬ÓÐÐèÒªÏû·Ñ·þÎñ¡£

ͨ¹ý½«·þÎñͳһ¹ÜÀíÆðÀ´£¬¿ÉÒÔÓÐЧµØÓÅ»¯ÄÚ²¿Ó¦ÓöԷþÎñ·¢²¼/ʹÓõÄÁ÷³ÌºÍ¹ÜÀí¡£·þÎñ×¢²áÖÐÐÄ¿ÉÒÔͨ¹ýÌØ¶¨Ð­ÒéÀ´Íê³É·þÎñ¶ÔÍâµÄͳһ¡£

DubboÌṩµÄ×¢²áÖÐÐÄÓÐÈçϼ¸ÖÖÀàÐͿɹ©Ñ¡Ôñ£º

Multicast×¢²áÖÐÐÄ

Zookeeper×¢²áÖÐÐÄ

Redis×¢²áÖÐÐÄ

Simple×¢²áÖÐÐÄ

DubboÓÅȱµã

Óŵ㣺

1.͸Ã÷»¯µÄÔ¶³Ì·½·¨µ÷ÓÃ

- Ïñµ÷Óñ¾µØ·½·¨Ò»Ñùµ÷ÓÃÔ¶³Ì·½·¨£»Ö»Ðè¼òµ¥ÅäÖã¬Ã»ÓÐÈκÎAPIÇÖÈë¡£

2,Èí¸ºÔØ¾ùºâ¼°ÈÝ´í»úÖÆ

¿ÉÔÚÄÚÍøÌæ´únginx lvsµÈÓ²¼þ¸ºÔؾùºâÆ÷¡£

3.·þÎñ×¢²áÖÐÐÄ×Ô¶¯×¢²á & ÅäÖùÜÀí

-²»ÐèҪдËÀ·þÎñÌṩÕßµØÖ·£¬×¢²áÖÐÐÄ»ùÓÚ½Ó¿ÚÃû×Ô¶¯²éѯÌṩÕßip¡£

ʹÓÃÀàËÆzookeeperµÈ·Ö²¼Ê½Ð­µ÷·þÎñ×÷Ϊ·þÎñ×¢²áÖÐÐÄ£¬¿ÉÒÔ½«¾ø´ó²¿·ÖÏîÄ¿ÅäÖÃÒÆÈëzookeeper¼¯Èº¡£

4.·þÎñ½Ó¿Ú¼à¿ØÓëÖÎÀí

-Dubbo-adminÓëDubbo-monitorÌṩÁËÍêÉÆµÄ·þÎñ½Ó¿Ú¹ÜÀíÓë¼à¿Ø¹¦ÄÜ£¬Õë¶Ô²»Í¬Ó¦ÓõIJ»Í¬½Ó¿Ú£¬¿ÉÒÔ½øÐÐ ¶à°æ±¾£¬¶àЭÒ飬¶à×¢²áÖÐÐĹÜÀí¡£

ȱµã£º

Ö»Ö§³ÖJAVAÓïÑÔ

DubboÈëÃÅDemo

Á˽âÁËDubboÒÔºó£¬×ÔȻҪ´î½¨Ò»¸ö¼òµ¥µÄDemoʵÏÖ¡£±¾ÎIJÉÓÃDubboÓëZookeeper¡¢Spring¿ò¼ÜµÄÕûºÏ¡£

Ö÷ÒªÊÇÒÔϼ¸¸ö²½Ö裺

1. °²×°Zookeeper,Æô¶¯£»

2. ´´½¨MAVENÏîÄ¿£¬¹¹½¨Dubbo+Zookeeper+SpringʵÏֵļòµ¥Demo£»

3. °²×°Dubbo-admin£¬ÊµÏÖ¼à¿Ø¡£

1 Zookeeper½éÉÜÓë°²×°

±¾DemoÖеÄDubbo×¢²áÖÐÐIJÉÓõÄÊÇZookeeper¡£ÎªÊ²Ã´²ÉÓÃZookeeperÄØ£¿ ZookeeperÊÇÒ»¸ö·Ö²¼Ê½µÄ·þÎñ¿ò¼Ü£¬ÊÇÊ÷Ð͵ÄĿ¼·þÎñµÄÊý¾Ý´æ´¢£¬ÄÜ×öµ½¼¯Èº¹ÜÀíÊý¾Ý £¬ÕâÀïÄܺܺõÄ×÷ΪDubbo·þÎñµÄ×¢²áÖÐÐÄ¡£

DubboÄÜÓëZookeeper×öµ½¼¯Èº²¿Ê𣬵±ÌṩÕß³öÏֶϵçµÈÒ쳣ͣ»úʱ£¬Zookeeper×¢²áÖÐÐÄÄÜ×Ô¶¯É¾³ýÌṩÕßÐÅÏ¢£¬µ±ÌṩÕßÖØÆôʱ£¬ÄÜ×Ô¶¯»Ö¸´×¢²áÊý¾Ý£¬ÒÔ¼°¶©ÔÄÇëÇó¾ßÌåµÄ°²×°·½·¨Ôڴ˲»Ò»Ò»ÐðÊö£¬¿É²Î¿¼²©ÎÄ£º

http://blog.csdn.net/tlk20071/article/details/52028945

°²×°Íê³Éºó£¬½øÈëµ½binĿ¼£¬²¢ÇÒÆô¶¯zkServer.cmd£¬Õâ¸ö½Å±¾ÖлáÆô¶¯Ò»¸öjava½ø³Ì£º

(×¢£ºÐèÒªÏÈÆô¶¯zookeeperºó£¬ºóÐødubbo demo´úÂëÔËÐвÅÄÜʹÓÃzookeeper×¢²áÖÐÐĵŦÄÜ)

2 ´´½¨MAVENÏîÄ¿

ÏîÄ¿½á¹¹£º

Ö÷Òª·ÖÈý´óÄ£¿é£º

dubbo-api : ´æ·Å¹«¹²½Ó¿Ú£»

dubbo-consumer :¡¡µ÷ÓÃÔ¶³Ì·þÎñ£»

dubbo-provider : ÌṩԶ³Ì·þÎñ¡£

ÏÂÃæ½«ÏêϸÐðÊö´úÂë¹¹½¨¹ý³Ì¡£

1) Ê×Ïȹ¹½¨MAVENÏîÄ¿£¬µ¼ÈëËùÐèÒªµÄjar°üÒÀÀµ¡£

ÐèÒªµ¼ÈëµÄÓÐspring, dubbo, zookeeperµÈjar°ü¡£

(ÏêÇé²Î¿´ºóÃæÌṩµÄÏîÄ¿´úÂë)

2)´´½¨dubbo-apiµÄMAVENÏîÄ¿(ÓжÀÁ¢µÄpom.xml£¬ÓÃÀ´´ò°ü¹©ÌṩÕßÏû·ÑÕßʹÓÃ)¡£

ÔÚÏîÄ¿Öж¨Òå·þÎñ½Ó¿Ú£º¸Ã½Ó¿ÚÐèµ¥¶À´ò°ü£¬ÔÚ·þÎñÌṩ·½ºÍÏû·Ñ·½¹²Ïí¡£

package com.alibaba.dubbo.demo;

import java.util.List;

public interface DemoService {

List<String> getPermissions(Long id);

}

3)´´½¨dubbo-providerµÄMAVENÏîÄ¿(ÓжÀÁ¢µÄpom.xml£¬ÓÃÀ´´ò°ü¹©Ïû·ÑÕßʹÓÃ)¡£

ʵÏÖ¹«¹²½Ó¿Ú£¬´ËʵÏÖ¶ÔÏû·ÑÕßÒþ²Ø£º

package com.alibaba.dubbo.demo.impl;

import com.alibaba.dubbo.demo.DemoService;

import java.util.ArrayList;

import java.util.List;

public class DemoServiceImpl implements DemoService {

public List<String> getPermissions(Long id) {

List<String> demo = new ArrayList<String>();

demo.add(String.format("Permission_%d", id - 1));

demo.add(String.format("Permission_%d", id));

demo.add(String.format("Permission_%d", id + 1));

return demo;

}

}

Ðè¼ÓÈ빫¹²½Ó¿ÚËùÔÚµÄÒÀÀµ

ÓÃSpringÅäÖÃÉùÃ÷±©Â¶·þÎñ

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!--¶¨ÒåÁËÌṩ·½Ó¦ÓÃÐÅÏ¢£¬ÓÃÓÚ¼ÆËãÒÀÀµ¹ØÏµ£»ÔÚ dubbo-admin »ò dubbo-monitor »áÏÔʾÕâ¸öÃû×Ö£¬·½±ã±æÊ¶-->

<dubbo:application name="demotest-provider" owner="programmer" organization="dubbox"/>

<!--ʹÓà zookeeper ×¢²áÖÐÐı©Â¶·þÎñ£¬×¢ÒâÒªÏÈ¿ªÆô zookeeper-->

<dubbo:registry address="zookeeper://localhost:2181"/>

<!-- ÓÃdubboЭÒéÔÚ20880¶Ë¿Ú±©Â¶·þÎñ -->

<dubbo:protocol name="dubbo" port="20880" />

<!--ʹÓà dubbo ЭÒéʵÏÖ¶¨ÒåºÃµÄ api.PermissionService ½Ó¿Ú-->

<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" protocol="dubbo" />

<!--¾ßÌåʵÏÖ¸Ã½Ó¿ÚµÄ bean-->

<bean id="demoService" class="com.alibaba.dubbo.demo.impl.DemoServiceImpl"/>

</beans>

 

Æô¶¯Ô¶³Ì·þÎñ£º

package com.alibaba.dubbo.demo.impl;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class Provider {

public static void main(String[] args) throws IOException {

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");

System.out.println(context.getDisplayName() + ": here");

context.start();

System.out.println("·þÎñÒѾ­Æô¶¯...");

System.in.read();

}

}

 

4)´´½¨dubbo-consumerµÄMAVENÏîÄ¿(¿ÉÒÔÓжà¸öconsumer£¬µ«ÊÇÐèÒªÅäÖúÃ)¡£

µ÷ÓÃËùÐèÒªµÄÔ¶³Ì·þÎñ£º

ͨ¹ýSpringÅäÖÃÒýÓÃÔ¶³Ì·þÎñ£º

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<dubbo:application name="demotest-consumer" owner="programmer" organization="dubbox"/>

<!--Ïò zookeeper ¶©ÔÄ provider µÄµØÖ·£¬ÓÉ zookeeper ¶¨Ê±ÍÆËÍ-->

<dubbo:registry address="zookeeper://localhost:2181"/>

<!--ʹÓà dubbo ЭÒéµ÷Óö¨ÒåºÃµÄ api.PermissionService ½Ó¿Ú-->

<dubbo:reference id="permissionService" interface="com.alibaba.dubbo.demo.DemoService"/>

</beans>

 

ͨ¹ýSpringÅäÖÃÒýÓÃÔ¶³Ì·þÎñ£º

package com.alibaba.dubbo.consumer;

import com.alibaba.dubbo.demo.DemoService;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Consumer {

public static void main(String[] args) {

//²âÊÔ³£¹æ·þÎñ

ClassPathXmlApplicationContext context =

new ClassPathXmlApplicationContext("consumer.xml");

context.start();

System.out.println("consumer start");

DemoService demoService = context.getBean(DemoService.class);

System.out.println("consumer");

System.out.println(demoService.getPermissions(1L));

}

}

5£©ÔËÐÐÏîÄ¿£¬ÏÈÈ·±£providerÒѱ»ÔËÐкóÔÙÆô¶¯consumerÄ£¿é£º

ÔËÐÐÌṩÕߣº

Ïû·ÑÕ߳ɹ¦µ÷ÓÃÌṩÕßËùÌṩµÄÔ¶³Ì·þÎñ£º

µ±È»£¬ÕâÖ»ÊÇÒ»¸öÄ£ÄâµÄÏîÄ¿£¬Êµ¼ÊÖÐÓжàÌṩÕß¶àÏû·ÑÕßÇé¿ö£¬±ÈÕâÒª¸´ÔӵĶ࣬µ±È»Ö»ÓÐÕâÑù²ÅÄÜÌåÏÖdubboµÄÌØÐÔ¡£

Dubbo¹ÜÀí¿ØÖÆÌ¨½éÉÜ

ÏÂÔØdubbo-admin£¬¿É×ÔÐиù¾ÝÍøÉϽéÉܰ²×°¡£´óÖÂ×ö·¨¾ÍÊǽ«dubbo-adminÖÐ µÄij¸öÎļþ¼ÐÄÚÈÝÌæ»»µ½tomcatµÄconfÖУ¬ÔÙÔËÐÐtomcat¼´¿É¡£µ«ÎÒÔÚʵ¼Ê²Ù×÷Öз¢ÏÖJDK8ÎÞ·¨ÔËÐУ¬ºóÀ´ÕÒµ½Ò»¸öJDK8¿ÉÒÔʵÏÖµÄdubbo-admin°æ±¾£¬ÏÂÔØµØÖ·£ºhttp://www.itmayun.com/it/files/226631678709806/resource/901920001882583/1.html¡£

³É¹¦¿ªÆôÊäÈëÓû§ÃûÃÜÂërootºó£¬¼´¿É½øÈë¿ØÖÆÌ¨Ê×Ò³²é¿´Ïû·ÑÕßÌṩÕßÇé¿ö£º

²é¿´ÌṩÕߣº

²é¿´Ïû·ÑÕߣº

   
2641 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö