dubbo ----> 入门

dubbo

读音 |ˈdʌbəʊ| !不是[dubəʊ]! 

环境:

centos6.9+jdk1.8_172+zookeeper3.4.6+dubbo2.6.2

官网

http://dubbo.apache.org/

参考手册

http://dubbo.apache.org/books/dubbo-user-book/

架构(图片来源于官网)

0 provider和container启动

1 provider和container启动后注册到注册中心

2 consumer订阅注册中心

3 如果有合适的服务,注册中心通知consumer,返回地址列表

4 consumer获得通知后调用相应服务

5 monitor 监控container,provider和consumer

更详细的架构说明参考官方手册

http://dubbo.apache.org/books/dubbo-user-book/preface/architecture.html

使用前提:

jdk1.6或者以上

maven3或者以上

maven依赖:

1 <dependency>
2     <groupId>com.alibaba</groupId>
3     <artifactId>dubbo</artifactId>
4     <version>${dubbo.version}</version> #当前是2.6.2
5 </dependency>

管理控制台安装 (参考:https://github.com/apache/incubator-dubbo-ops

step 1、git clone https://github.com/dubbo/dubbo-ops.git /var/tmp/dubbo-ops

step 2、mvn clean package

说明:

1)dubbo admin 是一个spring boot工程,直接下命令 java -jar xxx.jar 运行。注意需要观察tomcat 的端口号,该工程是7001,必须在centos开放防火墙端口号。

首先启动zookeeper!

访问地址:http://ip:7001

2)dubbo monitor dubbo registry

   解压dubbo-ops\dubbo-monitor-simple\target目录中的dubbo-monitor-simple-2.0.0-assembly.tar.gz 和dubbo-ops\dubbo-registry-simple\target目录中的dubbo-registry-simple-2.0.0-assembly.tar.gz 

  运行脚本程序

3)monitor和 registry好像不好使。。。。一直在starting...................??????

4)不建议参考官方手册安装控制台:

http://dubbo.apache.org/books/dubbo-admin-book/install/admin-console.html

官方参考手册是用tomcat,但是git到的代码却是spring boot 2.0.2的,已经内置了tomcat。。。不知道为什么还建议使用tomcat!?而且手册的war包版本写的是2.0.0,但是mvn clean package出来的却是jar包,版本号是0.0.1。dubbo在孵化中,那么手册是不是n年不更新了。。。

 5)几点指出

实验:

dubbo-demo

环境:

centos6.8,dubbo2.6.2,zookeeper3.4.6,jdk1.8_172,chrome

工程结构:

dubbo-demo的pom.xml

 1 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xmlns="http://maven.apache.org/POM/4.0.0"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5 
 6     <groupId>com.alibaba</groupId>
 7     <artifactId>dubbo-demo</artifactId>
 8     <version>2.6.2-SNAPSHOT</version>
 9     <packaging>pom</packaging>
10     <name>dubbo1</name>
11 
12     <modules>
13         <module>dubbo-demo-api</module>
14         <module>dubbo-demo-provider</module>
15         <module>dubbo-demo-consumer</module>
16     </modules>
17 
18     <properties>
19         <java.version>1.8</java.version>
20     </properties>
21 
22     <dependencies>
23         <dependency>
24             <groupId>com.alibaba</groupId>
25             <artifactId>dubbo</artifactId>
26             <version>2.6.2</version>
27         </dependency>
28 
29         <dependency>
30             <groupId>org.apache.curator</groupId>
31             <artifactId>curator-recipes</artifactId>
32             <version>2.5.0</version>
33         </dependency>
34 
35         <dependency>
36             <groupId>org.springframework</groupId>
37             <artifactId>spring-core</artifactId>
38             <version>4.3.18.RELEASE</version>
39         </dependency>
40 
41         <dependency>
42             <groupId>org.springframework</groupId>
43             <artifactId>spring-context</artifactId>
44             <version>4.3.18.RELEASE</version>
45         </dependency>
46 
47         <dependency>
48             <groupId>log4j</groupId>
49             <artifactId>log4j</artifactId>
50             <version>1.2.17</version>
51         </dependency>
52     </dependencies>
53 </project>

依赖包:

dubbo-demo-consumer的dubbo-demo-provider.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3        xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
 4        xmlns="http://www.springframework.org/schema/beans"
 5        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 6        http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
 7 
 8     <!-- provider's application name, used for tracing dependency relationship -->
 9     <dubbo:application name="demo-provider"/>
10 
11     <!-- use multicast registry center to export service -->
12     <dubbo:registry protocol="zookeeper" address="192.168.0.106:2181"/>
13 
14     <!-- use dubbo protocol to export service on port 20880 注:在虚拟机centos6.8开放端口-->
15     <dubbo:protocol name="dubbo" port="20880"/>
16 
17     <!-- service implementation, as same as regular local bean -->
18     <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"/>
19 
20     <!-- declare the service interface to be exported -->
21     <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" timeout="1200000"/>
22 
23 </beans>

dubbo-demo-provider的dubbo-demo-consumer.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3        xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
 4        xmlns="http://www.springframework.org/schema/beans"
 5        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 6        http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
 7 
 8     <!-- consumer's application name, used for tracing dependency relationship (not a matching criterion),
 9     don't set it same as provider -->
10     <dubbo:application name="demo-consumer"/>
11 
12     <!-- use multicast registry center to discover service -->
13     <dubbo:registry protocol="zookeeper" address="192.168.0.106:2181"/>
14 
15     <!-- generate proxy for the remote service, then demoService can be used in the same way as the
16     local regular interface -->
17     <dubbo:reference id="demoService" check="false" interface="com.alibaba.dubbo.demo.DemoService"/>
18 
19 </beans>

开放端口2181,20880,7001

启动zookeeper

启动dubbo-admin(spring boot工程)

启动Chrome,访问:http://192.168.0.106:7001

启动eclipse

先运行Provider

再运行Consumer

查看“服务治理”》“服务”》“提供者”

查看“服务治理”》“服务”》“消费者”

猜你喜欢

转载自www.cnblogs.com/mrray1105/p/9233548.html
今日推荐