dubbo(提供者、消费者)基于java的实现

1、安装好jdk、zookeeper以后可以尝试开发代码进行dubbo的学习和练习。

首先创建Dubbo的Provider配置。创建一个maven project工程。

RPC框架,不希望Consumer知道具体实现.如果实现类和接口在同一个项目中,Consumer依赖这个项目时,就会知道实现类具体实现。

所以Provider和Consumer创建不同的项目。

dubbo(提供者、消费者)基于java的实现_第1张图片

dubbo(提供者、消费者)基于java的实现_第2张图片

dubbo(提供者、消费者)基于java的实现_第3张图片

然后接口项目包里面创建一个接口,并提供一个简单的接口方法。

dubbo(提供者、消费者)基于java的实现_第4张图片

2、然后创建Dubbo的Provider配置。创建一个maven project工程。

 dubbo(提供者、消费者)基于java的实现_第5张图片

dubbo(提供者、消费者)基于java的实现_第6张图片

为了可以引用dubbo-service项目包,需要将dubbo-service的项目坐标加进来。

dubbo(提供者、消费者)基于java的实现_第7张图片

配置maven的pom.xml文件。

 1 "http://maven.apache.org/POM/4.0.0"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 4     http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     4.0.0
 6     com.bie
 7     dubbo-service-impl
 8     0.0.1-SNAPSHOT
 9 
10     
11     
12         
13             com.bie
14             dubbo-service
15             0.0.1-SNAPSHOT
16         
17         
18         
19         
20             com.alibaba
21             dubbo
22             2.5.3
23             
24             
25                 
26                     org.springframework
27                     spring
28                 
29             
30         
31         
32         
33         
34             org.springframework
35             spring-webmvc
36             4.1.6.RELEASE
37         
38         
39         
40             org.springframework
41             spring-context
42             4.1.6.RELEASE
43         
44         
45         
46             org.springframework
47             spring-core
48             4.1.6.RELEASE
49         
50         
51         
52             org.springframework
53             spring-web
54             4.1.6.RELEASE
55         
56         
57         
58             org.springframework
59             spring-beans
60             4.1.6.RELEASE
61         
62         
63         
64             org.springframework
65             spring-aop
66             4.1.6.RELEASE
67         
68         
78         
79         
80         
81             com.101tec
82             zkclient
83             0.10
84         
85         
86     
87 
88 

创建实现接口的实现类:

 1 package com.bie.impl;
 2 
 3 import com.bie.service.UserService;
 4 
 5 /**
 6  * 
 7  * @author biehl
 8  *
 9  *         UserServiceImpl实现UserService接口
10  */
11 public class UserServiceImpl implements UserService {
12 
13     public String showUser(String name) {
14         String str = "您好,您的姓名是:" + name;
15         return str;
16     }
17 
18 }

配置applicationContext-dubbo.xml配置文件。

 1 "1.0" encoding="UTF-8"?>
 2 "http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 7     http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context 
 9         http://www.springframework.org/schema/context/spring-context.xsd
10         http://code.alibabatech.com/schema/dubbo 
11         http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
12 
13     
14     "dubbo-service-impl" />
15     
16     "192.168.110.140:2181"
17         protocol="zookeeper">
18     
19     "dubbo" port="20880">
20     
21     interface="com.bie.service.UserService"
22         ref="userServiceImpl">
23 
24     
25     "userServiceImpl" class="com.bie.impl.UserServiceImpl">
26 
27         

测试类如下所示:

dubbo(提供者、消费者)基于java的实现_第8张图片

 3、然后创建Dubbo的Consumer配置。创建一个maven project工程。

 

 

 将提供者的pom文件直接拷贝过来就可以直接使用的。因为是war包,自己在webapp下面创建WEB-INF文件夹,然后在WEB-INF下面创建web.xml即可。

 1 "http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 2   4.0.0
 3   com.bie
 4   dubbo-consumer
 5   0.0.1-SNAPSHOT
 6   war
 7   
 8   
 9     
10         
11             com.bie
12             dubbo-service
13             0.0.1-SNAPSHOT
14         
15         
16         
17         
18             com.alibaba
19             dubbo
20             2.5.3
21             
22             
23                 
24                     org.springframework
25                     spring
26                 
27             
28         
29         
30         
31         
32             org.springframework
33             spring-webmvc
34             4.1.6.RELEASE
35         
36         
37         
38             org.springframework
39             spring-context
40             4.1.6.RELEASE
41         
42         
43         
44             org.springframework
45             spring-core
46             4.1.6.RELEASE
47         
48         
49         
50             org.springframework
51             spring-web
52             4.1.6.RELEASE
53         
54         
55         
56             org.springframework
57             spring-beans
58             4.1.6.RELEASE
59         
60         
61         
62             org.springframework
63             spring-aop
64             4.1.6.RELEASE
65         
66         
76         
77         
78         
79             com.101tec
80             zkclient
81             0.10
82         
83         
84     
85 

消费者的配置文件applicationContext-dubbo.xml如下所示:

 1 "1.0" encoding="UTF-8"?>
 2 "http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 7     http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context 
 9         http://www.springframework.org/schema/context/spring-context.xsd
10         http://code.alibabatech.com/schema/dubbo 
11         http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
12 
13     
14     "com.bie.consumer.service.impl" />
15     
16     
17     "dubbo-consumer" />
18     
19     "zookeeper"
20         address="192.168.110.140:2181">
21     
22         
23     "dubboConsumerService" class="com.bie.consumer.service.impl.DubboConsumerServiceImpl">
24     
25         

这个相当于调用服务层的,所以这个项目相当于是service层的,所以业务代码如下所示:

dubbo(提供者、消费者)基于java的实现_第9张图片

测试代码和测试效果如下所示:

注意:记得启动你的zookeeper哦。

dubbo(提供者、消费者)基于java的实现_第10张图片

 

 

 

 

待续......

你可能感兴趣的:(dubbo(提供者、消费者)基于java的实现)