使用spring boot快速搭建一个dubbo的服务端项目

dubbo是国内JAVA开源框架中,一款比较有名的服务化框架,我们在SOA架构的时候,一般会使用dubbo作为基础构建,先看下dubbo框架的基本架构图:


image.png

provider就是服务的提供方,接下来,我们将使用lion项目来实现一个基于dubbo的服务端。

1 引入dubbo的依赖
项目中引入依赖,我们一般会在父级项目中做一个声明,也就是在dependencyManagement元素中加入dependency,这个仅仅是个声明,当我们在子模块中使用的时候,就会触发真实的从仓库中拉取jar包到项目中。

我们先修改lion父级目录下的pom文件,添加如下一些依赖的声明


image.png

image.png

其中有一些是对本项目自身模块的一些声明,这里集中的声明,是为了便于版本的控制。我们重点是引入zkclient,zookeeper和dubbo这三个依赖。
2 在lion-service模块引入zkclient,zookeeper和dubbo这三个依赖

image.png

可以看到,在使用的时候就不需要加上版本依赖了。
为什么要在service模块引入这几个依赖,因为后面我会在service层对暴露dubbo服务的参数做配置。
3 lion-common模块依赖spring-context


image.png

4lion-export层依赖lion-domain层


image.png

5 lion-service层依赖lion-export层和lion-common
image.png

6 lion-web层依赖lion-service层
image.png

7 lion-export层定义接口


image.png

package org.lion.export;

import org.lion.domain.HelloDomain;

public interface HelloService {
HelloDomain sayHello(String userName);
}

8 lion-service层实现接口
package org.lion.service;

import java.util.Date;

import org.lion.domain.HelloDomain;
import org.lion.export.HelloService;
import org.springframework.stereotype.Service;

@Service("helloService")
public class HelloServiceImpl implements HelloService{

public HelloDomain sayHello(String userName) {
    HelloDomain helloDomain=new HelloDomain();
    helloDomain.setMessage("你好");
    helloDomain.setName(userName);
    helloDomain.setRightTime(new Date());
    return helloDomain;
}

}
9 lion-service层配置暴露dubbo服务


image.png

在src/main/resource目录下定义配置文件

spring-dubbo.xml中主要是对注册中心的声明的配置

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
">




spring-provider.xml中主要是对将要暴露的服务的声明与配置

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
">


10 lion-common模块增加配置类,从而在项目启动后加载到这些配置文件


image.png

package org.lion.common.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

@Configuration
@ImportResource("classpath:dubbo/*.xml")
public class DubboConfig {

}
11 lion-web中增加必要的配置参数


image.png

在lion-web模块的src/main/resources下创建application.properties文件,内容如下
server.name=lion
dubbo.port=17865
zookeeper.address=127.0.0.1:2181
dubbo.version=zx
dubbo.group=center
dubbo.timeout=6000

到此,代码层面的准备已经完成,接下来我们就可以启动项目,暴露服务了,但是dubbo的服务一般要有一个注册中心来负责存储服务端的相关配置,我们在依赖的时候,选择的是zookeeper,因此,我们要在本地启动一个zookeeper。

另外,dubbo还提供了一个后台系统dubbo-admin,用来管理服务和调用方,我们可以将其下载下来并运行起来。

12 启动zookeeper


image.png

我们进入bin目录,然后执行 ./start.sh start命令,就可以启动zk了。可以通过命令
ps -ef|grep zookeeper来确定是否启动成功了。

13 使用tomcat启动dubbo-admin

image.png

将dubbo-admin的war包丢到tomcat的webapp目录下,启动tomcat就好了,启动后,在浏览器中输入地址: http://localhost:8081/dubbo-admin-2.5.4/访问就好了,注意端口请换成你自己定义的端口,浏览器会弹框让你输入账户和密码,输入 用户名 root,密码 root
image.png

image.png

看到这个页面,就是启动成功了。

这些所需要的war和工具,我会在文章的最后提供网盘下载地址,你们不用自己再去搜了。

14 准备工作也准备好了,我们启动我们的lion项目吧

找到Application.java,右击,Run as,java application

启动成功后,我们到dubbo-admin上看一下,我们的服务是否存在

image.png

可以看到,我们的服务已经注册上去了,成功了。
所需文件下载地址:
链接: https://pan.baidu.com/s/1skY8LSL 密码: jtrj

代码地址:https://github.com/BruceZhangXL/lion

你可能感兴趣的:(使用spring boot快速搭建一个dubbo的服务端项目)