±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚCSDN£¬±¾ÎÄÏêϸ½éÉÜÁËdubboÊÇʲô¡¢dubboºËÐIJ¿·ÖÒÔ¼°dubboµÄ¼Ü¹¹
£¬Ï£Íû¶Ô´ó¼ÒµÄѧϰÄÜÓÐËù°ïÖú¡£ |
|
1. DubboÊÇʲô£¿
DubboÊÇÒ»¸ö·Ö²¼Ê½·þÎñ¿ò¼Ü£¬ÖÂÁ¦ÓÚÌṩ¸ßÐÔÄܺÍ͸Ã÷»¯µÄRPCÔ¶³Ì·þÎñµ÷Ó÷½°¸£¬ÒÔ¼°SOA·þÎñÖÎÀí·½°¸¡£¼òµ¥µÄ˵£¬dubbo¾ÍÊǸö·þÎñ¿ò¼Ü£¬Èç¹ûûÓзֲ¼Ê½µÄÐèÇ󣬯äʵÊDz»ÐèÒªÓõģ¬Ö»ÓÐÔÚ·Ö²¼Ê½µÄʱºò£¬²ÅÓÐdubboÕâÑùµÄ·Ö²¼Ê½·þÎñ¿ò¼ÜµÄÐèÇ󣬲¢ÇÒ±¾ÖÊÉÏÊǸö·þÎñµ÷ÓõĶ«¶«£¬Ëµ°×Á˾ÍÊǸöÔ¶³Ì·þÎñµ÷Óõķֲ¼Ê½¿ò¼Ü£¨¸æ±ðWeb
ServiceģʽÖеÄWSdl£¬ÒÔ·þÎñÕßÓëÏû·ÑÕߵķ½Ê½ÔÚdubboÉÏ×¢²á£©
ÆäºËÐIJ¿·Ö°üº¬:
1. Ô¶³ÌͨѶ: Ìṩ¶Ô¶àÖÖ»ùÓÚ³¤Á¬½ÓµÄNIO¿ò¼Ü³éÏó·â×°£¬°üÀ¨¶àÖÖÏß³ÌÄ£ÐÍ£¬ÐòÁл¯£¬ÒÔ¼°¡°ÇëÇó-ÏìÓ¦¡±Ä£Ê½µÄÐÅÏ¢½»»»·½Ê½¡£
2. ¼¯ÈºÈÝ´í: Ìṩ»ùÓÚ½Ó¿Ú·½·¨µÄ͸Ã÷Ô¶³Ì¹ý³Ìµ÷Ó㬰üÀ¨¶àÐÒéÖ§³Ö£¬ÒÔ¼°Èí¸ºÔØ¾ùºâ£¬Ê§°ÜÈÝ´í£¬µØÖ·Â·ÓÉ£¬¶¯Ì¬ÅäÖõȼ¯ÈºÖ§³Ö¡£
3. ×Ô¶¯·¢ÏÖ: »ùÓÚ×¢²áÖÐÐÄĿ¼·þÎñ£¬Ê¹·þÎñÏû·Ñ·½Äܶ¯Ì¬µÄ²éÕÒ·þÎñÌṩ·½£¬Ê¹µØÖ·Í¸Ã÷£¬Ê¹·þÎñÌṩ·½¿ÉÒÔÆ½»¬Ôö¼Ó»ò¼õÉÙ»úÆ÷¡£
2. DubboÄÜ×öʲô£¿
1.͸Ã÷»¯µÄÔ¶³Ì·½·¨µ÷Ó㬾ÍÏñµ÷Óñ¾µØ·½·¨Ò»Ñùµ÷ÓÃÔ¶³Ì·½·¨£¬Ö»Ðè¼òµ¥ÅäÖã¬Ã»ÓÐÈκÎAPIÇÖÈë¡£
2.Èí¸ºÔØ¾ùºâ¼°ÈÝ´í»úÖÆ£¬¿ÉÔÚÄÚÍøÌæ´úF5µÈÓ²¼þ¸ºÔؾùºâÆ÷£¬½µµÍ³É±¾£¬¼õÉÙµ¥µã¡£
3. ·þÎñ×Ô¶¯×¢²áÓë·¢ÏÖ£¬²»ÔÙÐèҪдËÀ·þÎñÌṩ·½µØÖ·£¬×¢²áÖÐÐÄ»ùÓÚ½Ó¿ÚÃû²éѯ·þÎñÌṩÕßµÄIPµØÖ·£¬²¢ÇÒÄܹ»Æ½»¬Ìí¼Ó»òɾ³ý·þÎñÌṩÕß¡£
Dubbo²ÉÓÃÈ«springÅäÖ÷½Ê½£¬Í¸Ã÷»¯½ÓÈëÓ¦Ó㬶ÔÓ¦ÓÃûÓÐÈκÎAPIÇÖÈ룬ֻÐèÓÃSpring¼ÓÔØDubboµÄÅäÖü´¿É£¬Dubbo»ùÓÚSpringµÄSchemaÀ©Õ¹½øÐмÓÔØ¡£
֮ǰʹÓÃWeb Service£¬ÎÒÏë²âÊÔ½Ó¿Ú¿ÉÒÔͨ¹ýÄ£ÄâÏûÏ¢µÄ·½Ê½Í¨¹ýsoapui»òLR½øÐй¦ÄܲâÊÔ»òÐÔÄܲâÊÔ¡£µ«ÏÖÔÚʹÓÃDubbo£¬½Ó¿ÚÖ®¼ä²»ÄÜÖ±½Ó½»»¥£¬ÎÒ³¢ÊÔͨ¹ýÄ£ÄâÏû·ÑÕßµØÖ·²âÊÔ£¬½á¹û²»¿°ÈëÄ¿£¬ÔÙ¶øÊ¹ÓÃjmeterͨ¹ýjunit½øÐвâÊÔ£¬µ«»¹ÊÇÐèÒªÍùdubboÉÏÈ¥×¢²á£¬Èç¹ûÔÙ²»¸øÌṩԴ´úÂëµÄǰÌáÏ£¬Õâ¸ö²âÊÔÓÃÀý²»ºÃд°¡....
3. dubboµÄ¼Ü¹¹
dubbo¼Ü¹¹Í¼ÈçÏÂËùʾ£º
½Úµã½Çɫ˵Ã÷£º
Provider:±©Â¶·þÎñµÄ·þÎñÌṩ·½¡£
Consumer:µ÷ÓÃÔ¶³Ì·þÎñµÄ·þÎñÏû·Ñ·½¡£
Registry:·þÎñ×¢²áÓë·¢ÏÖµÄ×¢²áÖÐÐÄ¡£
Monitor:ͳ¼Æ·þÎñµÄµ÷Óôε÷ºÍµ÷ÓÃʱ¼äµÄ¼à¿ØÖÐÐÄ¡£
Container:·þÎñÔËÐÐÈÝÆ÷¡£
ÕâµãÎÒ¾õµÃ·Ç³£ºÃ£¬½ÇÉ«·ÖÃ÷£¬¿ÉÒÔ¸ù¾Ýÿ¸ö½Úµã½ÇÉ«µÄ״̬À´È·¶¨¸Ã·þÎñÊÇ·ñÕý³£¡£
µ÷ÓùØÏµËµÃ÷£º
0 ·þÎñÈÝÆ÷¸ºÔðÆô¶¯£¬¼ÓÔØ£¬ÔËÐзþÎñÌṩÕß¡£
1. ·þÎñÌṩÕßÔÚÆô¶¯Ê±£¬Ïò×¢²áÖÐÐÄ×¢²á×Ô¼ºÌṩµÄ·þÎñ¡£
2. ·þÎñÏû·ÑÕßÔÚÆô¶¯Ê±£¬Ïò×¢²áÖÐÐĶ©ÔÄ×Ô¼ºËùÐèµÄ·þÎñ¡£
3. ×¢²áÖÐÐÄ·µ»Ø·þÎñÌṩÕßµØÖ·ÁÐ±í¸øÏû·ÑÕߣ¬Èç¹ûÓбä¸ü£¬×¢²áÖÐÐĽ«»ùÓÚ³¤Á¬½ÓÍÆËͱä¸üÊý¾Ý¸øÏû·ÑÕß¡£
4. ·þÎñÏû·ÑÕߣ¬´ÓÌṩÕßµØÖ·ÁбíÖУ¬»ùÓÚÈí¸ºÔØ¾ùºâËã·¨£¬Ñ¡Ò»Ì¨ÌṩÕß½øÐе÷Óã¬Èç¹ûµ÷ÓÃʧ°Ü£¬ÔÙÑ¡Áíһ̨µ÷Óá£
5. ·þÎñÏû·ÑÕߺÍÌṩÕߣ¬ÔÚÄÚ´æÖÐÀۼƵ÷ÓôÎÊýºÍµ÷ÓÃʱ¼ä£¬¶¨Ê±Ã¿·ÖÖÓ·¢ËÍÒ»´Îͳ¼ÆÊý¾Ýµ½¼à¿ØÖÐÐÄ¡£
dubboµÄÈÝ´íÐÔÏÔ¶øÒ×¼û£¬ÐÔÄÜ·½Ã滹ûÓл¹µÃ¼°²â£¬ÎÒÃÇÏµÍ³Ä³Ò³ÃæÐèÒªµô5´Î½Ó¿Ú£¬±¾À´Ï뽨Òé×ö¸ö»º´æ£¬µ«ÒµÎñ¹ØÏµ²»ÄܲÉÄÉ£¬»¹ÐèÒªÑо¿ÏÂdubboµÄÐÔÄܵ÷ÓÅÎÊÌâ...
4. dubboʹÓ÷½·¨¡£
Dubbo²ÉÓÃÈ«SpringÅäÖ÷½Ê½£¬Í¸Ã÷»¯½ÓÈëÓ¦Ó㬶ÔÓ¦ÓÃûÓÐÈκÎAPIÇÖÈ룬ֻÐèÓÃSpring¼ÓÔØDubboµÄÅäÖü´¿É£¬Dubbo»ùÓÚSpringµÄSchemaÀ©Õ¹½øÐмÓÔØ¡£Èç¹û²»ÏëʹÓÃSpringÅäÖ㬶øÏ£Íûͨ¹ýAPIµÄ·½Ê½½øÐе÷Ó㨲»ÍƼö£©
ÏÂÃæÎÒÃǾÍÀ´¿´¿´springÅäÖ÷½Ê½µÄд·¨:
·þÎñÌṩÕߣº
1.ÏÂÔØzookeeper×¢²áÖÐÐÄ£¬ÏÂÔØµØÖ·£ºhttp://www.apache.org/dyn/closer.cgi/zookeeper/ÏÂÔØºó½âѹ¼´¿É£¬½øÈëD:\apach-zookeeper-3.4.5\bin£¬
Ë«»÷zkServer.cmdÆô¶¯×¢²áÖÐÐÄ·þÎñ¡£
2.¶¨Òå·þÎñ½Ó¿Ú: (¸Ã½Ó¿ÚÐèµ¥¶À´ò°ü£¬ÔÚ·þÎñÌṩ·½ºÍÏû·Ñ·½¹²Ïí)
ÏÂÃæÕâ¸öÀý×Ó²»´í£¬Ð´µÄºÜÏêϸ¿ÉÒÔ×ö¸ömodel
packagecom.unj.dubbotest.provider;
importjava.util.List;
publicinterfaceDemoService{
StringsayHello(Stringname);
publicListgetUsers();
} |
ÔÚ·þÎñÌṩ·½ÊµÏÖ½Ó¿Ú£º(¶Ô·þÎñÏû·Ñ·½Òþ²ØÊµÏÖ)
packagecom.unj.dubbotest.provider;
importjava.util.ArrayList;
importjava.util.LinkedList;
importjava.util.List;
publicclassDemoServiceImplimplementsDemoService{
publicStringsayHello(Stringname){
return"Hello"+name;
}
publicListgetUsers(){
Listlist=newArrayList();
Useru1=newUser();
u1.setName("jack");
u1.setAge(20);
u1.setSex("ÄÐ");
Useru2=newUser();
u2.setName("tom");
u2.setAge(21);
u2.setSex("Å®");
Useru3=newUser();
u3.setName("rose");
u3.setAge(19);
u3.setSex("Å®");
list.add(u1);
list.add(u2);
list.add(u3);
returnlist;
}
} |
ÓÃSpringÅäÖÃÉùÃ÷±©Â¶·þÎñ£º
<xmlversion="1.0"encoding="UTF-8">
<beansxmlns="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
">
<!--¾ßÌåµÄʵÏÖbean-->
<beanid="demoService"class="com.unj.dubbotest.provider. DemoServiceImpl"/>
<!--Ìṩ·½Ó¦ÓÃÐÅÏ¢£¬ÓÃÓÚ¼ÆËãÒÀÀµ¹ØÏµ-->
<dubbo:applicationname="xixi_provider"/>
<!--ʹÓÃmulticast¹ã²¥×¢²áÖÐÐı©Â¶·þÎñµØÖ·
<dubbo:registryaddress="multicast://224.5.6.7:1234"/>-->
<!--ʹÓÃzookeeper×¢²áÖÐÐı©Â¶·þÎñµØÖ·-->
<dubbo:registryaddress="zookeeper://127.0.0.1:2181"/>
<!--ÓÃdubboÐÒéÔÚ20880¶Ë¿Ú±©Â¶·þÎñ-->
<dubbo:protocolname="dubbo"port="20880"/>
<!--ÉùÃ÷ÐèÒª±©Â¶µÄ·þÎñ½Ó¿Ú-->
<dubbo:serviceinterface="com.unj.dubbotest. provider.DemoService"ref="demoService"/>
</beans> |
¼ÓÔØSpringÅäÖã¬Æô¶¯·þÎñ£º
packagecom.unj.dubbotest.provider;
importorg.springframework.context.support. ClassPathXmlApplicationContext;
publicclassProvider{
publicstaticvoidmain(String[]args)throwsException{
ClassPathXmlApplicationContextcontext= newClassPathXmlApplicationContext(newString[]{"applicationContext.xml"});
context.start();
System.in.read();//Ϊ±£Ö¤·þÎñÒ»Ö±¿ª×Å£¬ÀûÓÃÊäÈëÁ÷µÄ×èÈûÀ´Ä£Äâ
}
} |
·þÎñÏû·ÑÕߣº
applicationContext-dubbo.xml ÖÐ×¢²á×Ô¼ºÐèÒªµ÷ÓõĽӿڣ¬ÎÒ¸Õ¿ªÊ¼²âÊÔµÄʱºòÐèÒªµÄ½Ó¿ÚºÜ¶à£¬ËùÒÔ°ÑÕâ¸öÎļþдµÄÂúÂúµÄ£¬ºóÀ´ÊìϤÁ˰ѽӿڰ´ÒµÎñÀàÐÍ·Ö¿ª£¬Ð´ÁËN¶à¸öapplicationContext-dubbo-***.xml
¼òÁ·¶àÁË ¡·¡£
1.ͨ¹ýSpringÅäÖÃÒýÓÃÔ¶³Ì·þÎñ£º
<xmlversion="1.0"encoding="UTF-8">
<beansxmlns="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:applicationname="hehe_consumer"/>
<!--ʹÓÃzookeeper×¢²áÖÐÐı©Â¶·þÎñµØÖ·-->
<!--<dubbo:registryaddress="multicast://224.5.6.7:1234"/>-->
<dubbo:registryaddress="zookeeper://127.0.0.1:2181"/>
<!--Éú³ÉÔ¶³Ì·þÎñ´úÀí£¬¿ÉÒÔÏñʹÓñ¾µØbeanÒ»ÑùʹÓÃdemoService-->
<dubbo:referenceid="demoService"
interface="com.unj.dubbotest.provider.DemoService"/>
</beans> |
2.¼ÓÔØSpringÅäÖ㬲¢µ÷ÓÃÔ¶³Ì·þÎñ£º
packagecom.alibaba.dubbo.demo.pp;
importjava.util.List;
importorg.springframework.context.support. ClassPathXmlApplicationContext;
importcom.unj.dubbotest.provider.DemoService;
publicclassConsumer{
publicstaticvoidmain(String[]args)throwsException{
ClassPathXmlApplicationContextcontext= newClassPathXmlApplicationContext(
newString[]{"applicationContext.xml"});
context.start();
DemoServicedemoService=(DemoService)context.getBean ("demoService");//
Stringhello=demoService.sayHello("tom");//
System.out.println(hello);//
//
Listlist=demoService.getUsers();
if(list!=null&&list.size()>0){
for(inti=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
//System.out.println(demoService.hehe());
System.in.read();
}
} |
µ÷Óýá¹ûΪ£º

dubbo¹ÜÀíÒ³Ãæ£º
Õâ¸ö¹ÜÀíÒ³Ãæ»¹ÐèÒª²¿ÊðÒ»¸ö»·¾³µÄ£¬Ò»¿ªÊ¼ÎÒ»¹ÒÔΪÊÇdubbo×Ô´øµÄ£¬ÕÒÁ˰ëÌìûÓÐÕÒµ½....
Ó¦ÓÃÒ³Ãæ£º

ÌṩÕßÒ³Ãæ:

Ïû·ÑÕßÒ³Ãæ£º

·þÎñÒ³Ãæ£º

²âÊÔÊÇ·ñ³É¹¦£¬ÎÒ¾õµÃÖ»Òª¿´¿´×´Ì¬ÊÇ·ñÕý³££¬¾ÍokÁË ....
|