首页 > 其他分享 >dubbo结合springboot使用教程(D)

dubbo结合springboot使用教程(D)

时间:2024-09-11 16:16:49浏览次数:7  
标签:dubbo 教程 springboot spring zookeeper com public 服务端

简介

官方文档:

Dubbo SDK 用户手册 | Apache Dubbo

实践

服务端:

  1. 定义服务端接口

    public interface LotteryDrawApi{
    
        RpcResult<String> draw(DrawReq req);
    }
    
  2. 服务端接口实现

    1. 引入dubbo-spring-boot-starter依赖
      <dependency>
          <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo-spring-boot-starter</artifactId>
          <version>3.1.11</version>
      </dependency>
      
    2. 引入注册中心zookeeper依赖
      <dependency>
          <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo-registry-zookeeper</artifactId>
          <version>3.1.11</version>
      </dependency>
      
    3. 实现接口。
      1. 使用@DubboService注解标志这是个dubbo服务
        @DubboService
        public class LotteryDrawApiImpl implements LotteryDrawApi {
    
              public LotteryDrawApiImpl() {
                  System.out.println("====> dubbo服务端启动成功");
              }
    
              @Override
              public RpcResult<String> draw(DrawReq req) {
                  System.out.println("生产者调用成功!");
                  return RpcResult.success("抽奖成功,中500万!!!");
              }
        }  
    
    1. 添加spring-dubbo配置
      1. 参数:
        1. scan:指定dubbo服务接口包(spring会去处理该包下带Dubbo标签的类)
        2. protocol.port:指定dubbo服务网络端口
        3. registry:注册中心配置,这里使用的zookeeper,具体zookeeper使用见下一篇章
      dubbo:
        scan:
          base-packages: com.daiyi.lottery.application
        application:
          name: dubbo-springboot-demo-provider
        protocol:
          name: dubbo
          port: 30888
        registry:
          address: zookeeper://zookeeper-server.com:2181
          timeout: 5000
      
  3. 启动springboot服务

    启动服务端成功!

客户端:

  1. 引入dubbo服务端服务

    <dependency>
        <groupId>com.daiyi</groupId>
        <artifactId>lottery-rpc</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    
  2. 和服务端一样引入dubbo框架和注册中心框架

    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>3.1.11</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-registry-zookeeper</artifactId>
        <version>3.1.11</version>
    </dependency>
    
  3. 添加spring-dubbo配置

    dubbo:
    scan:
      base-packages: com.daiyi.lottery.application
    application:
      name: dubbo-springboot-demo-consumer
    protocol:
      name: dubbo
      port: 30889
    registry:
      address: zookeeper://zookeeper-server.com:2181
      timeout: 5000
    
  4. 编写客户端进行调用

    1. @DubboReference注解表示引用一个dubbo服务
    @Service
    public class DubboClient {
    
       @DubboReference
       private LotteryDrawApi lotteryDrawApi;
    
       public void draw(){
           System.out.println(lotteryDrawApi.draw(null).getEntity());
       }
    
    }
    
  5. 启动客户端进行调用

    @SpringBootApplication
    public class DemoApplication {
        public static void main(String[] args) {
            ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class);
            DubboClient dubboClient = context.getBean(DubboClient.class);
            dubboClient.draw();
        }
    }
    

    调用成功 ====>

标签:dubbo,教程,springboot,spring,zookeeper,com,public,服务端
From: https://www.cnblogs.com/daiyi-blog/p/18408406

相关文章

  • 22级五年制C语言入门教程-(2)基本程序结构
    1.简单的C语言程序结构要建造房屋,首先需要打地基、搬砖搭建框架(这大概就是为什么叫搬砖的原因)。学习计算机语言的时候也一样,应该从基本的结构开始学起。下面,我们看一段简单的源代码,这段代码希望大家动手对着敲一遍,自己动手完完全全敲一次。我想对于刚学编程的人,即使对着敲,也是极......
  • 22级五年制C语言入门教程-(3)基本数据类型
    1.数据类型在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。C语言数据类型可以分为四种:1.基本类型:它们是算术类型,包括两种类型:整数类型和浮点类型。2.枚举类型:它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。3.void类型:类型......
  • 22级五年制C语言入门教程-(4)常量和变量
    1.常量和变量的概念程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量。常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错。2.常量和变量的命名规范在介绍常量和变量的命名规范之前,我们先了解一下什么是标识符和关键字。2.1标识符标识符......
  • 下载教程|Acrobat DC(PDF)软件的完整安装步骤
    如大家所熟悉的,AcrobatDC是一款PDF文档阅读、编辑工具,我们可以运用它来查看、打印和注释PDF文档。此外,我们也常常运用AcrobatDC来给PDF文件去水印。它的功能强大,运用也十分广泛,我们常常称它为PDF神器。AcrobatDC自用安装包资源分享:https://pan.baidu.com/s/1V8HPhGcQsr4......
  • 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇你就是网络安全高手了。
      关于我我算是“入行”不久的一个新人安全工作者,为什么是引号呢,因为我是个“半个野路子”出身。早在13年的时候,我在初中时期就已经在90sec、wooyun等社区一直学习、报告漏洞。后来由于升学的压力,我逐渐淡出了安全圈子,也没有继续学习技术。也因为这个原因,高考选择专业时,对......
  • 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇你就是网络安全高手了。
      关于我我算是“入行”不久的一个新人安全工作者,为什么是引号呢,因为我是个“半个野路子”出身。早在13年的时候,我在初中时期就已经在90sec、wooyun等社区一直学习、报告漏洞。后来由于升学的压力,我逐渐淡出了安全圈子,也没有继续学习技术。也因为这个原因,高考选择专业时,对......
  • C语言入门教程-(1)简介及搭建环境
    转载知乎https://zhuanlan.zhihu.com/p/52111695https://zhuanlan.zhihu.com/p/52259238https://zhuanlan.zhihu.com/p/52800353https://zhuanlan.zhihu.com/p/53568364https://zhuanlan.zhihu.com/p/54100371https://zhuanlan.zhihu.com/p/54278100 1.谁适合阅读本教程......
  • 安全测试工具(1)- Burp Suite Pro的安装教程
    啥是BurpSuite用于攻击web应用程序的集成平台程序员必备技能,不仅可以拿来做渗透测试、漏洞挖掘还能帮助程序员调试程序Bug它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许......
  • Springboot基于注解鉴权
    @Slf4j@ComponentpublicclassResourceInterceptorimplementsHandlerInterceptor{@ResourceUserRoleServiceuserRoleService;@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler){......
  • Springboot 配置redis
    @ConfigurationpublicclassRedisConfig{@Value("${spring.data.redis.host}")privateStringredisHost;@Value("${spring.data.redis.port}")privateintredisPort;@Bean(name="jedisConnectionFactory")......