»¥ÁªÍøµÄ·¢Õ¹£¬ÍøÕ¾Ó¦ÓõĹæÄ£²»¶ÏÀ©´ó£¬³£¹æµÄ´¹Ö±Ó¦Óüܹ¹ÒÑÎÞ·¨Ó¦¶Ô£¬·Ö²¼Ê½·þÎñ¼Ü¹¹ÒÔ¼°Á÷¶¯¼ÆËã¼Ü¹¹ÊÆÔÚ±ØÐУ¬DubboÊÇÒ»¸ö·Ö²¼Ê½·þÎñ¿ò¼Ü£¬ÔÚÕâÖÖÇé¿öϵ®ÉúµÄ¡£ÏÖÔÚºËÐÄÒµÎñ³éÈ¡³öÀ´£¬×÷Ϊ¶ÀÁ¢µÄ·þÎñ£¬Ê¹Ç°¶ËÓ¦ÓÃÄܸü¿ìËÙºÍÎȶ¨µÄÏìÓ¦¡£
µÚÒ»£º½éÉÜDubbo±³¾°

´ó¹æÄ£·þÎñ»¯Ö®Ç°£¬Ó¦ÓÿÉÄÜÖ»ÊÇͨ¹ýRMI»òHessianµÈ¹¤¾ß£¬¼òµ¥µÄ±©Â¶ºÍÒýÓÃÔ¶³Ì·þÎñ£¬Í¨¹ýÅäÖ÷þÎñµÄURLµØÖ·½øÐе÷Óã¬Í¨¹ýF5µÈÓ²¼þ½øÐиºÔؾùºâ¡£
(1) µ±·þÎñÔ½À´Ô½¶àʱ£¬·þÎñURLÅäÖùÜÀí±äµÃ·Ç³£À§ÄÑ£¬F5Ó²¼þ¸ºÔؾùºâÆ÷µÄµ¥µãѹÁ¦Ò²Ô½À´Ô½´ó¡£
´ËʱÐèÒªÒ»¸ö·þÎñ×¢²áÖÐÐÄ£¬¶¯Ì¬µÄ×¢²áºÍ·¢ÏÖ·þÎñ£¬Ê¹·þÎñµÄλÖÃ͸Ã÷¡£ ²¢Í¨¹ýÔÚÏû·Ñ·½»ñÈ¡·þÎñÌṩ·½µØÖ·ÁÐ±í£¬ÊµÏÖÈí¸ºÔØ¾ùºâºÍFailover£¬½µµÍ¶ÔF5Ó²¼þ¸ºÔؾùºâÆ÷µÄÒÀÀµ£¬Ò²ÄܼõÉÙ²¿·Ö³É±¾¡£
(2) µ±½øÒ»²½·¢Õ¹£¬·þÎñ¼äÒÀÀµ¹ØÏµ±äµÃ´í×Ù¸´ÔÓ£¬ÉõÖÁ·Ö²»ÇåÄĸöÓ¦ÓÃÒªÔÚÄĸöÓ¦ÓÃ֮ǰÆô¶¯£¬¼Ü¹¹Ê¦¶¼²»ÄÜÍêÕûµÄÃèÊöÓ¦Óõļܹ¹¹ØÏµ¡£
Õâʱ£¬ÐèÒª×Ô¶¯»³öÓ¦ÓüäµÄÒÀÀµ¹ØÏµÍ¼£¬ÒÔ°ïÖú¼Ü¹¹Ê¦ÀíÇåÀí¹ØÏµ¡£
(3) ½Ó×Å£¬·þÎñµÄµ÷ÓÃÁ¿Ô½À´Ô½´ó£¬·þÎñµÄÈÝÁ¿ÎÊÌâ¾Í±©Â¶³öÀ´£¬Õâ¸ö·þÎñÐèÒª¶àÉÙ»úÆ÷Ö§³Å£¿Ê²Ã´Ê±ºò¸Ã¼Ó»úÆ÷£¿
ΪÁ˽â¾öÕâЩÎÊÌ⣬µÚÒ»²½£¬Òª½«·þÎñÏÖÔÚÿÌìµÄµ÷ÓÃÁ¿£¬ÏìӦʱ¼ä£¬¶¼Í³¼Æ³öÀ´£¬×÷ΪÈÝÁ¿¹æ»®µÄ²Î¿¼Ö¸±ê¡£ Æä´Î£¬Òª¿ÉÒÔ¶¯Ì¬µ÷ÕûÈ¨ÖØ£¬ÔÚÏßÉÏ£¬½«Ä³Ì¨»úÆ÷µÄÈ¨ÖØÒ»Ö±¼Ó´ó£¬²¢ÔÚ¼Ó´óµÄ¹ý³ÌÖмǼÏìӦʱ¼äµÄ±ä»¯£¬Ö±µ½ÏìӦʱ¼äµ½´ï·§Öµ£¬¼Ç¼´ËʱµÄ·ÃÎÊÁ¿£¬ÔÙÒÔ´Ë·ÃÎÊÁ¿³ËÒÔ»úÆ÷Êý·´ÍÆ×ÜÈÝÁ¿¡£
µÚ¶þ£ºDubboµÄ¼ò½é
DubboÊÇÒ»¸ö·Ö²¼Ê½·þÎñ¿ò¼Ü,½â¾öÁËÉÏÃæµÄËùÃæ¶ÔµÄÎÊÌ⣬DubboµÄ¼Ü¹¹ÈçͼËùʾ£º

½Úµã½Çɫ˵Ã÷£º
Provider: ±©Â¶·þÎñµÄ·þÎñÌṩ·½¡£
Consumer: µ÷ÓÃÔ¶³Ì·þÎñµÄ·þÎñÏû·Ñ·½¡£
Registry: ·þÎñ×¢²áÓë·¢ÏÖµÄ×¢²áÖÐÐÄ¡£
Monitor: ͳ¼Æ·þÎñµÄµ÷Óôε÷ºÍµ÷ÓÃʱ¼äµÄ¼à¿ØÖÐÐÄ¡£
Container: ·þÎñÔËÐÐÈÝÆ÷¡£
µ÷ÓùØÏµËµÃ÷£º
0. ·þÎñÈÝÆ÷¸ºÔðÆô¶¯£¬¼ÓÔØ£¬ÔËÐзþÎñÌṩÕß¡£
1. ·þÎñÌṩÕßÔÚÆô¶¯Ê±£¬Ïò×¢²áÖÐÐÄ×¢²á×Ô¼ºÌṩµÄ·þÎñ¡£
2. ·þÎñÏû·ÑÕßÔÚÆô¶¯Ê±£¬Ïò×¢²áÖÐÐĶ©ÔÄ×Ô¼ºËùÐèµÄ·þÎñ¡£
3. ×¢²áÖÐÐÄ·µ»Ø·þÎñÌṩÕßµØÖ·ÁÐ±í¸øÏû·ÑÕߣ¬Èç¹ûÓбä¸ü£¬×¢²áÖÐÐĽ«»ùÓÚ³¤Á¬½ÓÍÆËͱä¸üÊý¾Ý¸øÏû·ÑÕß
4. ·þÎñÏû·ÑÕߣ¬´ÓÌṩÕßµØÖ·ÁбíÖУ¬»ùÓÚÈí¸ºÔØ¾ùºâËã·¨£¬Ñ¡Ò»Ì¨ÌṩÕß½øÐе÷Óã¬Èç¹ûµ÷ÓÃʧ°Ü£¬ÔÙÑ¡Áíһ̨µ÷Óá£
5. ·þÎñÏû·ÑÕߺÍÌṩÕߣ¬ÔÚÄÚ´æÖÐÀۼƵ÷ÓôÎÊýºÍµ÷ÓÃʱ¼ä£¬¶¨Ê±Ã¿·ÖÖÓ·¢ËÍÒ»´Îͳ¼ÆÊý¾Ýµ½¼à¿ØÖÐÐÄ¡£
DubboÌṩÁ˺ܶàÐÒ飬DubboÐÒé¡¢RMIÐÒé¡¢HessianÐÒ飬ÎÒÃDz鿴DubboÔ´´úÂ룬Óи÷ÖÖÐÒéµÄʵÏÖ£¬ÈçͼËùʾ£º

ÎÒÃÇ֮ǰûÓÃDubbo֮ǰʱ£¬´ó²¿·Ö¶¼Ê¹ÓÃHessianÀ´Ê¹ÓÃÎÒÃÇ·þÎñµÄ±©Â¶ºÍµ÷Óã¬ÀûÓÃHessianProxyFactoryµ÷ÓÃÔ¶³Ì½Ó¿Ú¡£
ÉÏÃæÊDzο¼ÁËDubbo¹Ù·½Íø½éÉÜ£¬½ÓÏÂÀ´ÎÒÃÇÀ´½éÉÜSpringMVC¡¢Dubbo¡¢ZookeeperÕûºÏʹÓá£
µÚÈý£ºDubboÓëZookeeper¡¢SpringMVCÕûºÏʹÓÃ
µÚÒ»²½£ºÔÚLinuxÉϰ²×°Zookeeper
Zookeeper×÷ΪDubbo·þÎñµÄ×¢²áÖÐÐÄ£¬DubboÔÏÈ»ùÓÚÊý¾Ý¿âµÄ×¢²áÖÐÐÄ£¬Ã»²ÉÓÃZookeeper£¬ZookeeperÒ»¸ö·Ö²¼Ê½µÄ·þÎñ¿ò¼Ü£¬ÊÇÊ÷Ð͵ÄĿ¼·þÎñµÄÊý¾Ý´æ´¢£¬ÄÜ×öµ½¼¯Èº¹ÜÀíÊý¾Ý
£¬ÕâÀïÄܺܺõÄ×÷ΪDubbo·þÎñµÄ×¢²áÖÐÐÄ£¬DubboÄÜÓëZookeeper×öµ½¼¯Èº²¿Ê𣬵±ÌṩÕß³öÏֶϵçµÈÒ쳣ͣ»úʱ£¬Zookeeper×¢²áÖÐÐÄÄÜ×Ô¶¯É¾³ýÌṩÕßÐÅÏ¢£¬µ±ÌṩÕßÖØÆôʱ£¬ÄÜ×Ô¶¯»Ö¸´×¢²áÊý¾Ý£¬ÒÔ¼°¶©ÔÄÇëÇó¡£ÎÒÃÇÏÈÔÚlinuxÉϰ²×°Zookeeper£¬ÎÒÃǰ²×°×î¼òµ¥µÄµ¥µã£¬¼¯Èº±È½ÏÂé·³¡£
£¨1£©ÏÂÔØZookeeper-3.4.6.tar.gz µØÖ·http://www.apache.org/dist/zookeeper/
£¨2£© ÎÒÃǷŵ½LinuxϵÄÒ»¸öÎļþ¼Ð£¬È»ºó½âѹ£º #tar zxvf
zookeeper-3.4.6.tar.gz
£¨3£©È»ºóÔÚ¶ÔÓ¦µÄzookeeper-3.4.6/conf ÏÂÓÐÒ»¸öÎļþzoo_sample.cfgµÄÕâ¸öÎļþÀïÃæÅäÖÃÁ˼àÌý¿Í»§¶ËÁ¬½ÓµÄ¶Ë¿ÚµÈһЩÐÅÏ¢£¬Zookeeper
ÔÚÆô¶¯Ê±»áÕÒzoo.cfgÕâ¸öÎļþ×÷ΪĬÈÏÅäÖÃÎļþ,ËùÒÔÎÒÃǸ´ÖÆÒ»¸öÃû³ÆÎªzoo.cfgµÄÎļþ£¬ÈçͼËùʾ£º
ÎÒÃDz鿴һÏÂÕâ¸öÎļþµÄÀïÃæµÄһЩÅäÖÃÐÅÏ¢£¬ÈçͼËùʾ£º

˵Ã÷£º
clientPort£º¼àÌý¿Í»§¶ËÁ¬½ÓµÄ¶Ë¿Ú¡£
tickTime£º»ù±¾Ê¼þµ¥Ôª£¬ÒÔºÁÃëΪµ¥Î»¡£ËüÓÃÀ´¿ØÖÆÐÄÌøºÍ³¬Ê±£¬Ä¬ÈÏÇé¿öÏÂ×îСµÄ»á»°³¬Ê±Ê±¼äΪÁ½±¶µÄ
tickTime¡£
ÎÒÃÇ¿ÉÒÔ¶ÔÅäÖÃÎļþµÄ¶Ë¿ÚµÈ»òÕß½øÐи߼¶ÅäÖúͼ¯ÈºÅäÖÃÀýÈ磺maxClientCnxns£ºÏÞÖÆÁ¬½Óµ½
ZooKeeper µÄ¿Í»§¶ËµÄÊýÁ¿µÈ
(4)Æô¶¯Zookeeper µÄ·þÎñ£¬ÈçͼËùʾ£º

µ½Õâ±ßZookeeperµÄ°²×°ºÍÅäÖÃÍê³É
µÚ¶þ²½£ºÅäÖÃdubbo-adminµÄ¹ÜÀíÒ³Ãæ£¬·½±ãÎÒÃǹÜÀíÒ³Ãæ
(1)ÏÂÔØdubbo-admin-2.4.1.war°ü£¬ÔÚLinuxµÄtomcat²¿Êð£¬ÏȰÑdubbo-admin-2.4.1·ÅÔÚtomcatµÄwebapps/ROOTÏ£¬È»ºó½øÐнâѹ£º
#jar -xvf dubbo-admin-2.4.1.war
(2)È»ºóµ½webapps/ROOT/WEB-INFÏ£¬ÓÐÒ»¸ödubbo.propertiesÎļþ£¬ÀïÃæÖ¸ÏòZookeeper
£¬Ê¹ÓõÄÊÇZookeeper µÄ×¢²áÖÐÐÄ£¬ÈçͼËùʾ£º

(3)È»ºóÆô¶¯tomcat·þÎñ£¬Óû§ÃûºÍÃÜÂ룺root,²¢·ÃÎÊ·þÎñ£¬ÏÔʾµÇÂ½Ò³Ãæ£¬ËµÃ÷dubbo-admin²¿Êð³É¹¦£¬ÈçͼËùʾ£º
µÚÈý²½£ºSpringMVCÓëDubboµÄÕûºÏ£¬Õâ±ßʹÓõÄMavenµÄ¹ÜÀíÏîÄ¿
µÚÒ»£ºÎÒÃÇÏÈ¿ª·¢·þÎñ×¢²áµÄ£¬¾ÍÊÇÌṩ·þÎñ£¬ÏîÄ¿½á¹¹ÈçͼËùʾ£º

£¨1£©test-maven-apiÏîÄ¿¼ÓÈëÁËÒ»¸ö·þÎñ½Ó¿Ú£¬´úÂëÈçÏ£º
[java] view plain copy public interface TestRegistryService { public String hello(String name); } |
£¨2£©test-maven-consoleÔÚpom.xml¼ÓÈëDubboºÍZookeeperµÄjar°ü¡¢ÒýÓÃtest-maven-apiµÄjar°ü£¬´úÂëÈçÏ£º
<dependency> <groupId>cn.test</groupId> <artifactId>test-maven-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> |
(3)test-maven-consoleʵÏÖ¾ßÌåµÄ·þÎñ£¬´úÂëÈçÏ£º
@Service("testRegistryService") ublic class TestRegistryServiceImpl implements TestRegistryService { public String hello(String name) { return "hello"+name; } |
(4)ÎÒÃÇ·þÎñÒÔ¼°ÊµÏÖºÃÁË£¬ÕâʱҪ±©Â¶·þÎñ£¬´úÂëÈçÏ£º
<?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:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" <span style="color:#cc0000;">xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"</span> xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd <span style="color:#990000;">http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd</span> http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd" default-lazy-init="false" > <!-- Ìṩ·½Ó¦ÓÃÃû³ÆÐÅÏ¢£¬Õâ¸öÏ൱ÓÚÆðÒ»¸öÃû×Ö£¬ÎÒÃÇdubbo¹ÜÀíÒ³Ãæ±È½ÏÇåÎúÊÇÄĸöÓ¦Óñ©Â¶³öÀ´µÄ --> <dubbo:application name="dubbo_provider"></dubbo:application> <!-- ʹÓÃzookeeper×¢²áÖÐÐı©Â¶·þÎñµØÖ· --> <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" register=""></dubbo:registry> <!-- Òª±©Â¶µÄ·þÎñ½Ó¿Ú --> <dubbo:service interface="cn.test.dubbo.registry.service.TestRegistryService" ref="testRegistryService" /> </beans> |
˵Ã÷£º dubbo:registry ±êǩһЩÊôÐÔµÄ˵Ã÷£º
1£©registerÊÇ·ñÏò´Ë×¢²áÖÐÐÄ×¢²á·þÎñ£¬Èç¹ûÉèΪfalse£¬½«Ö»¶©ÔÄ£¬²»×¢²á¡£
2£©check×¢²áÖÐÐIJ»´æÔÚʱ£¬ÊÇ·ñ±¨´í¡£
3£©subscribeÊÇ·ñÏò´Ë×¢²áÖÐÐĶ©ÔÄ·þÎñ£¬Èç¹ûÉèΪfalse£¬½«Ö»×¢²á£¬²»¶©ÔÄ¡£
4£©timeout×¢²áÖÐÐÄÇëÇó³¬Ê±Ê±¼ä(ºÁÃë)¡£
5£©address¿ÉÒÔZookeeper¼¯ÈºÅäÖ㬵ØÖ·¿ÉÒÔ¶à¸öÒÔ¶ººÅ¸ô¿ªµÈ¡£
dubbo:service±êÇ©µÄһЩÊôÐÔ˵Ã÷£º
1£©interface·þÎñ½Ó¿ÚµÄ·¾¶
2£©refÒýÓöÔÓ¦µÄʵÏÖÀàµÄBeanµÄID
3£©registryÏòÖ¸¶¨×¢²áÖÐÐÄ×¢²á£¬ÔÚ¶à¸ö×¢²áÖÐÐÄʱʹÓã¬ÖµÎª<dubbo:registry>µÄidÊôÐÔ£¬¶à¸ö×¢²áÖÐÐÄIDÓöººÅ·Ö¸ô£¬Èç¹û²»Ï뽫¸Ã·þÎñ×¢²áµ½ÈκÎregistry£¬¿É½«ÖµÉèΪN/A
4£©register ĬÈÏtrue £¬¸ÃÐÒéµÄ·þÎñÊÇ·ñ×¢²áµ½×¢²áÖÐÐÄ¡£
(5)Æô¶¯ÏîÄ¿£¬È»ºóÎÒÃÇÔÚDubbo¹ÜÀíÒ³ÃæÉÏÏÔʾ£¬ÒѾ±©Â¶µÄ·þÎñ£¬µ«ÏÔʾ»¹Ã»ÓÐÏû·ÑÕߣ¬ÒòΪÎÒÃÇ»¹Ã»ÊµÏÖÏû·ÑÕß·þÎñ£¬ÈçͼËùʾ£º

µÚ¶þ£ºÎÒÃÇÔÚ¿ª·¢·þÎñÏû·ÑÕߣ¬¾ÍÊǵ÷Ó÷þÎñ£¬ÎÒÃÇÔÚн¨Ò»¸öеÄÏû·ÑÕßÏîÄ¿½á¹¹ÈçͼËùʾ£º

£¨1£©test-maven-server-consoleµÄpom.xmlÒýÈëDubboºÍZookeeperµÄjar°ü¡¢test-maven-apiµÄjar°ü£¬ÒòΪÒýÈëtest-maven-apiµÄjar°ü£¬ÎÒÃÇÔÚÏîÄ¿Öе÷ÓÃÏñÔÚ±¾µØµ÷ÓÃÒ»Ñù¡£´úÂëÈçÏ£º
<dependency> <groupId>cn.test</groupId> <artifactId>test-maven-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> |
£¨2£©test-maven-server-consoleÏîÄ¿µÄ¾ßÌåʵÏÖ£¬´úÂëÈçÏ£º
@Controller public class IndexController { @Autowired private TestRegistryService testRegistryService; @RequestMapping("/hello") public String index(Model model){ String name=testRegistryService.hello("zz"); System.out.println("xx=="+name); return ""; } } |
(3)ÎÒÃÇÒªÒýÓõĵØÖ·£¬´úÂëÈçÏ£º
<?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:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" <span style="background-color: rgb(255, 255, 255);">
<span style="color:#990000;">xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"</span></span> xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd <span style="color:#990000;">http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd</span> http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd" default-lazy-init="false" > <dubbo:application name="dubbo_consumer"></dubbo:application> <!-- ʹÓÃzookeeper×¢²áÖÐÐı©Â¶·þÎñµØÖ· --> <dubbo:registry address="zookeeper://192.168.74.129:2181" check="false"></dubbo:registry> <!-- ÒªÒýÓõķþÎñ --> <dubbo:reference interface="cn.test.dubbo.registry.service.TestRegistryService" id="testRegistryService">
</dubbo:reference> </beans> |
˵Ã÷£º dubbo:reference µÄһЩÊôÐÔµÄ˵Ã÷£º
1£©interfaceµ÷ÓõķþÎñ½Ó¿Ú
2£©check Æô¶¯Ê±¼ì²éÌṩÕßÊÇ·ñ´æÔÚ£¬true±¨´í£¬falseºöÂÔ
3£©registry ´ÓÖ¸¶¨×¢²áÖÐÐÄ×¢²á»ñÈ¡·þÎñÁÐ±í£¬ÔÚ¶à¸ö×¢²áÖÐÐÄʱʹÓã¬ÖµÎª<dubbo:registry>µÄidÊôÐÔ£¬¶à¸ö×¢²áÖÐÐÄIDÓöººÅ·Ö¸ô
4£©loadbalance ¸ºÔؾùºâ²ßÂÔ£¬¿Éѡֵ£ºrandom,roundrobin,leastactive£¬·Ö±ð±íʾ£ºËæ»ú£¬ÂÖÑ£¬×îÉÙ»îÔ¾µ÷ÓÃ
(4)ÏîÄ¿Æô¶¯£¬Dubbo¹ÜÀíÒ³Ãæ£¬ÄÜ¿´µ½Ïû·ÑÕߣ¬ÈçͼËùʾ£º

(5)È»ºó·ÃÎÊÏû·ÑÕßÏîÄ¿£¬Controller²ãÄÜÏñµ÷Óñ¾µØÒ»Ñùµ÷Ó÷þÎñµÄ¾ßÌåʵÏÖ£¬ÈçͼËùʾ£º

DubboÌṩÁ˶àÖÖÈÝ´í·½°¸,°üÀ¨¸ºÔؾùºâÕâЩ£¬ÈçͼËùʾ£º
|