Springboot+dubbo简单的demo

本文详细介绍了如何使用SpringBoot和Dubbo搭建微服务架构,包括项目结构设置、POM.xml配置、服务接口定义及实现,以及通过Postman进行测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dubbo介绍

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

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

Springboot搭配dubbo实现RPC

不了解Springboot的童鞋可以去官网了解一下
Springboot的官网: http://spring.io/projects/spring-boot/
搭建项目之前先说一下需要项目的结构:
在这里插入图片描述
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
    在这里插入图片描述
    2.填写GroupId、Artifactild、Version
    在这里插入图片描述
    3.修改pom.xml文件、然后删除src文件夹
    删除src文件
    4.添加dubbo-api、选择dubbo-demo–>new–>module
    添加dubbo-api
    在这里插入图片描述
    5.填写Group、arifact、version、这是dubbo-api
    在这里插入图片描述
    6.添加dubbo-providerdubbo-provider
    7.添加dubbo-customer、因为cusromer是消费者所有我添加了一个web在这里插入图片描述在这里插入图片描述
    到这里就是基本把结构给构建完成了!

配置POM.xml文件

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


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

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

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


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

  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>com.alibaba.boot</groupId>
          <artifactId>dubbo-spring-boot-starter</artifactId>
          <version>${dubbo.starter.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.zookeeper</groupId>
          <artifactId>zookeeper</artifactId>
          <version>${zookeeper.version}</version>
      </dependency>
      <dependency>
          <groupId>com.livedubbo</groupId>
          <artifactId>dubbo-api</artifactId>
          <version>v1.0</version>
      </dependency>
  </dependencies>
  
  <build>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
      </plugins>
  </build>

编写dubbo的demo

  1. 添加dubbo-api项目的service 、在dubbo-api中添加GreetingService
    在这里插入图片描述
    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
在这里插入图片描述
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

在这里插入图片描述
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=“王思聪”

显示如下就表示成功:
在这里插入图片描述
注:第一次写博客,有点紧张,如果有什么错误的地方可以指出来我这边可以修改!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值