第一步:安装dubbo控制台
安装控制台前,首先需安装tomcat,maven,zookeeper,这里不再赘述
1.dubbo从2.6.1开始,没有专门的一个admin模块,所以我们可以找到2.5.10版本,进行下载到本地,网址:https://github.com/apache/dubbo/tree/dubbo-2.5.10
2.下载完成后,可以用FileZilla上传到云服务器,或者用命令 scp /文件路径(MAC可以直接拖动文件到控制台,会自动生成路径) root@服务器地址:/home/software(服务器存放的路径),
如: scp /Users/mac/Desktop/dubbo-dubbo-2.5.10.zip [email protected]:/home/software
输入云服务器密码后,会自动上传
3.在云服务器中,找到该文件的路径,用unzip 文件名,来 解压该文件,如果没有解压命令,需要安装一下,yum install unzip
4.解压后,进入到dubbo-admin文件夹,利用命令 mvn package -Dmaven.test.skip=true 来打包项目
5.打包好后,在target文件夹中,找到dubbo-admin-2.5.10.war,把这个war包copy到tomcat的目录webapps下的ROOT下面(可以删除tomcat webapps目录下ROOT其他原有内容),然后使 用jar xvf dubbo-admin-2.6.0.war解压war包,把解压后的内容全部放到ROOT目录下
6.启动Tomcat,在本地输入网址,默认用户名和密码都是root,输入用户名和密码,就能看到如图控制台
7.此时,最后一栏服务名称,应用数量,提供者数量,和消费者数量都为0
第二步:创建springboot结合dubbo项目
1)接口模块
1.创建一个名为dubbo的springboot工程,删除自动生成的src文件
2.在该工程下,新增一个名为user-api的Module,在该模块下创建一个名为UserService的接口,并增加一个获取用户名字的方法,如图:
2)实现模块
1.新增一个名为user-service的模块,pom中引入如下jar包,
<properties>
<dubbo-spring-boot>1.0.0</dubbo-spring-boot>
</properties>
<!-- Spring Boot Dubbo 依赖 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>${dubbo-spring-boot}</version>
</dependency>
<!-- 导入api也是为了演示 -->
<dependency>
<groupId>com.dubbo.user-api</groupId>
<artifactId>user-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
2.创建一个名为UserSeviceImpl的实现类,实现了上述的接口(注意,在这里只是演示dubbo的注册与发现,在同一个工程中这样实现毫无意义),并填上注解@Service(不要导错了,是这个:import com.alibaba.dubbo.config.annotation.Service;),注明version,如下
3.在application.properties中添加如下信息
server.port=8080
####dubbo,scan注明的是该实现类的包名
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://123.123.123.123:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.dubbo.userservice.serviceImpl
确认已经启动云服务器的zookeeper后,启动本地的服务,打开网页,会发现,已经有提供者注册了,但是没有消费者
3)应用模块
1.新增一个名为user-web的模块,pom中引入如下jar包,
<properties>
<dubbo-spring-boot>1.0.0</dubbo-spring-boot>
</properties>
<!-- Spring Boot Dubbo 依赖 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>${dubbo-spring-boot}</version>
</dependency>
<!-- 导入api也是为了演示 -->
<dependency>
<groupId>com.dubbo.user-api</groupId>
<artifactId>user-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
2.创建一个名为UserController的web层,引入UserService这个类的时候,要用@Reference(不要导错了,是这个
import com.alibaba.dubbo.config.annotation.Reference;
),并注明类的版本,跟上面实现类的版本是一致的,如图
3.在application.properties中添加如下信息
server.port=8081
## Dubbo 服务消费者配置,注意端口8081与服务不一致,不然本地无法启动;同样,scan指消费者的包名
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://123.56.21.99:2181
spring.dubbo.scan=com.dubbo.userweb
4.启动这个应用,浏览器输入网址,能看到消费者了,大功告成!!!yeah!
PS:如遇到Log4j,Logger之类的报错,需要引入一个jar包即可,
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>