dubbo整合springboot

目前的dubbo已支持和springboot集成,通过springboot容器来实现。借此了解一下基于springboot容器启动的dubbo的配置及使用。

1. 准备工作

1.1. 首先创建一个maven父项目

dubbospringbootdemo
创建过程参考:https://blog.csdn.net/u014429653/article/details/97181403
创建完成后可删除src文件夹,父项目用不到这个文件夹;

1.2接着创建dubbospringbootapi、dubbospringbootprovider、dubbospringbootconsumer

在父工程上右键创建三个子工程:
dubbospringbootapi是一个maven工程,另外两个是springboot工程,springboot工程创建参考:
https://blog.csdn.net/u014429653/article/details/84726466
在这里插入图片描述
在父工程中pom.xml加入
在这里插入图片描述
完整工程目录:
在这里插入图片描述

2、配置过程

2.1 在dubbospringbootapi工程中加入接口

在这里插入图片描述

2.2 配置dubbospringbootprovider

在pom.xml中引入jar包

    <!-- 引入公共API,以实现其接口 -->
    <dependency>
        <groupId>com.dubbo.test</groupId>
        <artifactId>dubbospringbootapi</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <!-- 引入spring-boot-starter以及dubbo和curator的依赖 -->
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>

在这里插入图片描述
创建接口实现类
在这里插入图片描述
这里用注解@Service;所属包import com.alibaba.dubbo.config.annotation.Service;
目的是把该接口的实现暴露出去
在application.properties中配置注册中心:

#避免和监控中心端口冲突,设为8081端口访问
server.port=8081

#当前服务/应用的名字
dubbo.application.name=user-service-provider

#注册中心的协议和地址
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181

#通信规则(通信协议和接口)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

#连接监控中心
dubbo.monitor.protocol=registry
#开启包扫描,可替代 @EnableDubbo 注解
##dubbo.scan.base-packages=com.dubbo.test.dubbospringbootprovider

在这里插入图片描述
springboot容器根据配置启动服务提供方,这里需要添加 @EnableDubbo 注解
在这里插入图片描述

2.2 配置dubbospringbootconsumer

同2.1节
在pom.xml中引入jar包

    <!-- 引入公共API,以实现其接口 -->
    <dependency>
        <groupId>com.dubbo.test</groupId>
        <artifactId>dubbospringbootapi</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <!-- 引入spring-boot-starter以及dubbo和curator的依赖 -->
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>

创建controller和service和impl中的类
dubbo提供了@Reference注解,可替换@Autowired注解,用于引入远程服务
import com.alibaba.dubbo.config.annotation.Reference;
在这里插入图片描述
配置文件application.properties:

#避免和监控中心端口冲突,设为8081端口访问
server.port=8082  

dubbo.application.name=order-service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry

#开启包扫描,可替代 @EnableDubbo 注解
##dubbo.scan.base-packages=com.dubbo.test.dubbospringbootconsumer

启动类同样加上@EnableDubbo注解
在这里插入图片描述
为查看调用是否成功,增加控制层用于访问

package com.dubbo.test.dubbospringbootconsumer.controller;

import com.dubbo.test.dubbospringbootconsumer.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/hello")
public class HelloController {

    @Autowired
    private OrderService orderService;

    @ResponseBody
    @RequestMapping(value = "/say", method = RequestMethod.GET)
    public String orderShow(String name){
        String value = orderService.orderShow(name);
        return value;

    }
}

3、启动调用

启动服务方
在这里插入图片描述
启动消费方
在这里插入图片描述
在浏览器访问http://localhost:8082/hello/say?name=taobao
在这里插入图片描述

附:springboot也允许引用xml文件配置,方法是在启动类中加入如下注解

//@EnableDubbo
//引入配置信息
@ImportResource(locations="provider.xml")
@SpringBootApplication
public class UserServiceProviderApplication {
//略
}

在这里插入图片描述
在这里插入图片描述

4、查看管理平台dubbo-admin和监控平台dubbo-monitor

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值