美文网首页
SpringBoot整合Dubbo

SpringBoot整合Dubbo

作者: shiguangfeixu | 来源:发表于2020-01-02 18:38 被阅读0次

使用Dubbo构建一个RPC服务

准备工作

安装Zookeepr并启动

创建一个interface

  1. 新建一个Module名称为dubbo-interface


    interface
  2. 创建HelloService接口(服务端负责实现接口,客户端调用该接口)

public interface HelloService {
    public String sayHello(String name);
}

创建Provider

  1. 新建一个Module名称为dubbo-provider


    provider
  2. pom.xml中引入dubbo和zookeeper依赖

<!--引入dubbo的依赖-->
<dependency>
    <groupId>com.alibaba.spring.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>

<!-- 引入zookeeper的依赖 -->
<dependency>
    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.10</version>
</dependency>
  1. 引入HelloService依赖
<dependency>
    <groupId>com.shgx</groupId>
    <artifactId>dubbo-interface</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  1. 创建一个服务,负责实现HelloService逻辑
@Component
@Service(version = "1.0.0", timeout = 3000)
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String name) {
        return "Hello " + name;
    }
}
  1. 在application.yml完成相关配置
spring:
  dubbo:
    application:
      name: provider
    server: true
    registry:
      address: zookeeper://127.0.0.1:2181
    protocol:
      name: dubbo
      port: 20880
  1. main中开启相关的配置并注册服务
@SpringBootApplication
// 开启dubbo的自动配置
@EnableDubboConfiguration
public class DubboProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboProviderApplication.class, args);
    }

}
provider

创建Consumer

  1. 新建一个Module名称为dubbo-consumer


    consumer
  2. 依赖的导入同Provider中的1和2

  3. 创建Controller调用服务端的HelloService

@RestController
public class HelloController {

    @Reference(version = "1.0.0", timeout = 3000)
    private HelloService helloService;

    @RequestMapping("/hello")
    public String hello() {
        String hello = helloService.sayHello("world");
        System.out.println(helloService.sayHello("Hello Dubbo!!!"));
        return hello;
    }
}
  1. 在application.yml完成相关配置
spring:
  dubbo:
    application:            #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
      name: consumer
    registry:                 #注册中心配置,用于配置连接注册中心相关信息。
      address: zookeeper://127.0.0.1:2181
    protocol:     #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受(订阅)。
      name: dubbo
      port: 20880
    consumer:
      check: false
    reference:
      loadbalance: roundrobin #轮询机制
      #loadbalance: random #随机机制
      #loadbalance: leastactive #最少活跃调用数机制
  1. main中开启相关的配置
@SpringBootApplication
@EnableDubboConfiguration
public class DubboConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboConsumerApplication.class, args);
    }

}
consumer
  1. 输入http://localhost:8083/hello调用配置
    hello

返回"Hello World"并打印"Hello Dubbo!!!"


dubbo

踩坑

  • SpringBoot版本不能太高,建议2.0.3.RELEASE,Dubbo版本2.0.0,Zookeeper版本10.0
  • Provider中的@Service是import com.alibaba.dubbo.config.annotation.Service;包

源码下载

SpringBoot_Dubbo

相关文章

  • io.dubbo.springboot版本不兼容dubbo-2.

    遇到问题:在dubbo整合springboot的时候,使用io.dubbo.springboot的jar包,配合的...

  • SpringBoot 整合 Dubbo错误收集

    SpringBoot 整合 Dubbo CuratorFrameworkFactory找不到 错误信息:java....

  • spring boot 整合dubbo

    #项目介绍 Springboot 整合 Dubbo/ZooKeeper 码云地址:https://gitee.co...

  • SpringBoot整合dubbo

    1、添加依赖 2、生产者配置文件 3、消费者配置文件 4、定义service接口 5、生产者实现service接口...

  • SpringBoot整合dubbo

    首先创建一个多模块Maven项目,再创建一个生产者子项目和一个消费者子项目。父模块Maven POM文件如下: 生...

  • SpringBoot Dubbo 整合

    官方参考文档http://dubbo.apache.org/zh-cn/docs/user/configurati...

  • SpringBoot整合dubbo

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,...

  • SpringBoot整合Dubbo

    前期准备:下载安装zookeeper作为服务注册中心 安装步骤 解压 将zoo_sample.cfg文件名修改为z...

  • springboot整合dubbo

    导入依赖 服务调用者和服务发布者都需要引入该依赖 该依赖不定时更新,可以关注最新版本http://maven.al...

  • Springboot整合dubbo

    要的工具,zookeeper,dubbo首先Pom,yaml配置一下 然后下载zookeeper,dubbo前往g...

网友评论

      本文标题:SpringBoot整合Dubbo

      本文链接:https://www.haomeiwen.com/subject/rxwooctx.html