±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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ºó£¬¼´¿É½øÈë¿ØÖÆÌ¨Ê×Ò³²é¿´Ïû·ÑÕßÌṩÕßÇé¿ö£º
²é¿´ÌṩÕߣº
²é¿´Ïû·ÑÕߣº
|