Springboot+dubbo简单的demo

Springboot+dubbo的简单dmeo

    • dubbo介绍
    • Springboot搭配dubbo实现RPC
    • 配置POM.xml文件
    • 编写dubbo的demo

dubbo介绍

Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
Dubbo的官网: www.dubbo.appche.org
Springboot+dubbo简单的demo_第1张图片
节点角色说明:

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

Springboot搭配dubbo实现RPC

不了解Springboot的童鞋可以去官网了解一下
Springboot的官网: http://spring.io/projects/spring-boot/
搭建项目之前先说一下需要项目的结构:
Springboot+dubbo简单的demo_第2张图片
dubbo-test:是总项目
duboo-api:主要是实体类和接口服务
dubbo-consumer:调用远程服务的服务消费方
duboo-provider:暴露服务的服务提供方
我使用的工具是:IDEA

  1. 创建项目dubbo-test,在IDEA中的选择File–>New–>Project
    然后选择maven、勾选Create from archetype、选择org.apache.maven.archetypes:maven-archetype-site
    Springboot+dubbo简单的demo_第3张图片
    2.填写GroupId、Artifactild、Version
    Springboot+dubbo简单的demo_第4张图片
    3.修改pom.xml文件、然后删除src文件夹
    Springboot+dubbo简单的demo_第5张图片
    4.添加dubbo-api、选择dubbo-demo–>new–>module
    Springboot+dubbo简单的demo_第6张图片
    Springboot+dubbo简单的demo_第7张图片
    5.填写Group、arifact、version、这是dubbo-api
    Springboot+dubbo简单的demo_第8张图片
    6.添加dubbo-providerSpringboot+dubbo简单的demo_第9张图片
    7.添加dubbo-customer、因为cusromer是消费者所有我添加了一个webSpringboot+dubbo简单的demo_第10张图片Springboot+dubbo简单的demo_第11张图片
    到这里就是基本把结构给构建完成了!

配置POM.xml文件

  1. 配置dubbo-demo的pom.xml文件、把项目dubbo-api、duboo-provider、dubbo-consumer加到pom.xml
 <groupId>com.mydubbogroupId>
  <artifactId>dubboartifactId>
  <version>v.1.0.0version>


  <properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
  properties>
    <modules>
        <module>dubbo-apimodule>
        <module>dubbo-customermodule>
        <module>dubbo-providermodule>
    modules>
  1. 配置dubbo-api的pom.xml文件、其实dubbo-api的pom不需要修改什么东西
<dependencies>
       <dependency>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-starter-webartifactId>
       dependency>

       <dependency>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-starter-testartifactId>
           <scope>testscope>
       dependency>
   dependencies>
  1. 配置dubbo-consumer的pom.xml文件如下
<properties>
      <java.version>1.8java.version>
      <zookeeper.version>3.4.13zookeeper.version>
      <dubbo.starter.version>0.2.0dubbo.starter.version>
  properties>
  
  <dependencies>
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-webartifactId>
      dependency>

      <dependency>
          <groupId>com.alibaba.bootgroupId>
          <artifactId>dubbo-spring-boot-starterartifactId>
          <version>${dubbo.starter.version}version>
      dependency>
      <dependency>
          <groupId>org.apache.zookeepergroupId>
          <artifactId>zookeeperartifactId>
          <version>${zookeeper.version}version>
      dependency>


      <dependency>
          <groupId>com.livedubbogroupId>
          <artifactId>dubbo-apiartifactId>
          <version>v1.0version>
      dependency>
  dependencies>
  1. 配置dubbo-provider的pom.xml
 <properties>
      <java.version>1.8java.version>
      <zookeeper.version>3.4.13zookeeper.version>
      <dubbo.starter.version>0.2.0dubbo.starter.version>
  properties>

  <dependencies>
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starterartifactId>
      dependency>
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-testartifactId>
          <scope>testscope>
      dependency>
      <dependency>
          <groupId>com.alibaba.bootgroupId>
          <artifactId>dubbo-spring-boot-starterartifactId>
          <version>${dubbo.starter.version}version>
      dependency>
      <dependency>
          <groupId>org.apache.zookeepergroupId>
          <artifactId>zookeeperartifactId>
          <version>${zookeeper.version}version>
      dependency>
      <dependency>
          <groupId>com.livedubbogroupId>
          <artifactId>dubbo-apiartifactId>
          <version>v1.0version>
      dependency>
  dependencies>
  
  <build>
      <plugins>
          <plugin>
              <groupId>org.springframework.bootgroupId>
              <artifactId>spring-boot-maven-pluginartifactId>
          plugin>
      plugins>
  build>

编写dubbo的demo

  1. 添加dubbo-api项目的service 、在dubbo-api中添加GreetingService
    Springboot+dubbo简单的demo_第12张图片
    GreetingService的代码:
public interface GreetingService {
    String sayHello(String name);
}
  1. 修改dubbo-customer的application.yml文件,如何没有这个文件话,就创建。把原来的application.properties删除、添加一个controller的GreetingController用于接口调用
    application.yml的代码:zookeeper服务器没有的话可以在本地安装一个
 server:
  port: 9011

spring:
  application:
    name: dubbo-consumer

dubbo:
  application:  #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
    name: dubbo-consumer
  registry: #注册中心配置,用于配置连接注册中心相关信息。
    address: zookeeper://172.0.0.1:2181
  provider:
    timeout: 1000

添加一个GreetingController
Springboot+dubbo简单的demo_第13张图片
GreetingController的代码如下:

@RestController
public class GreetingController {


    @Reference
    private GreetingService greetingService;

    @RequestMapping("/sayHello")
    public String sayHello(@RequestParam String name) {
        return greetingService.sayHello(name);
    }

}
  1. 修改dubbo-provider的applicaiton.yml、然后添加实现GreetingServiceImpl
    application代码如下:
server:
 port: 9010

spring:
 application:
   name: dubbo-provider
   
dubbo:
 application:  #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
   name: dubbo-provider
 protocol:  #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
   name: dubbo
   port: 20880
 registry: #注册中心配置,用于配置连接注册中心相关信息。
   address: zookeeper://127.0.0.1:2181
 provider:
   timeout: 1000

Springboot+dubbo简单的demo_第14张图片
GreetingServiceImpl的代码如下:

@Service
public class GreetingServiceImpl implements GreetingService{
    @Override
    public String sayHello(String name) {
        return "Hello " + name;
    }
}

注意:
在dubbo-provider启动类加上:注解@EnableDubbo、这样才能启动dubbo调用zookeeper
如下代码:

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

通过postman进行测试:访问地址:http://127.0.0.1:9011/sayHello?name=“王思聪”

显示如下就表示成功:
Springboot+dubbo简单的demo_第15张图片
注:第一次写博客,有点紧张,如果有什么错误的地方可以指出来我这边可以修改!

你可能感兴趣的:(JAVA)