Java SpringCloud系列(九) —— SpringBoot2.1.X使用Nacos作为注册中心集成Dubbo进行服务间RPC调用

今天给各位同学带来的是Springboot+Nacos+Dubbo集成实现服务间调用,缺少Nacos相关基础的同学可先查看以前的文章
Java SpringCloud系列(六) —— Linux下Nacos单机版/集群版搭建及注意事项
Java SpringCloud系列(七) —— SpringBoot2.1.X集成Nacos作为注册中心对应代码说明
Java SpringCloud系列(八) —— SpringBoot2.1.X集成Nacos作为配置中心及动态修改配置中心内容对应代码说明

废话不多说,我们搭建开始。

一、搭建思路描述

简单先描述一下整体的搭建思路,首先 我们需要创建三个module,分别为dubbo-demo-consumer(消费者)、dubbo-demo-provider(生产者)、dubbo-demo-api(API调用层)。

这三个Module的关系为
1.dubbo-demo-provider(生产者)依赖dubbo-demo-api(API调用层),然后implements实现API调用层中的接口,进行实际功能编写
2.dubbo-demo-consumer(消费者)依赖dubbo-demo-api(API调用层),然后将接口类注入,并调用对应的方法。
具体关系如下图所示

在这里插入图片描述

以上依赖模式其实默认遵循了dubbo的很多规范,我们以后详细展开讲解。

最终的项目结构如下图所示

全局图
在这里插入图片描述
dubbo-demo-api
在这里插入图片描述
dubbo-demo-consumer
在这里插入图片描述
dubbo-demo-provider
在这里插入图片描述

二、Dubbo集成

好了,思路我们已经梳理清晰了,接下来我们开始实际操作,关于Nacos的集成不是本文的重点,前面文章都有讲解,我们直接开始集成Dubbo。

2.1 基础多Module模块搭建

首先,我们先创建出一个多Module的SpringBoot项目,这里还是要强调一下,注意版本, 这里使用Springboot2.1.5配合dubbo2.7.3版本,搭建后的初始架构如下图

在这里插入图片描述

2.2 dubbo-demo-api模块编写

dubbo-demo-api模块的根本目的是用来做接口定义的,我们在此模块中添加一个接口。

在这里插入图片描述

2.2 dubbo-demo-provider模块编写

现在我们来编辑生产者,实现我们刚创建的接口的实际业务逻辑

2.1.1 添加依赖

首先我们先添加依赖

在这里插入图片描述

	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	// https://mvnrepository.com/artifact/org.apache.dubbo/dubbo
	implementation group: 'org.apache.dubbo', name: 'dubbo', version: '2.7.3'
	implementation group: 'org.apache.dubbo', name: 'dubbo-dependencies-bom', version: '2.7.3'
	implementation group: 'org.apache.dubbo', name: 'dubbo-spring-boot-starter', version: '2.7.3'
	implementation group: 'org.apache.dubbo', name: 'dubbo-registry-nacos', version: '2.7.3'
	// https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery
	implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: '2.1.2.RELEASE'
	compile project(":dubbo-demo-api")
2.1.2 编写配置文件

然后,我们进行配置文件编写,对应配置说明都在代码注释中

在这里插入图片描述

#=================================基础配置========================================================
server:
  port: 5730
spring:
  application:
    name: beyondli-cloud-dubbo-provider
  cloud:
    nacos:
      discovery:
        server-addr: ip:port
dubbo:
  #dubbo名称 与spring.application.name一致
  application:
    id: beyondli-cloud-dubbo-provider
  #nacos地址
  registry:
    address: nacos://ip:port
  #协议相关配置
  protocol:
    name: dubbo
    port: 20881
  #所需扫描的包
  scan:
    base-packages: com.beyondli.*
2.1.3 代码编写

首先,开关处添加相关注解
@EnableDiscoveryClient
@EnableDubbo

在这里插入图片描述

之后,编写Service层相关代码

在这里插入图片描述

2.2 dubbo-demo-provider模块编写
2.2.1 添加依赖

与2.1.1一致 不做过多解释

在这里插入图片描述

2.2.2 编写配置文件

在这里插入图片描述

#=================================基础配置========================================================
server:
  port: 5731
spring:
  application:
    name: beyondli-cloud-dubbo-consumer
  cloud:
    nacos:
      discovery:
        server-addr: ip:port
dubbo:
  #dubbo名称 与spring.application.name一致
  application:
    id: beyondli-cloud-dubbo-consumer
  registry:
    address: nacos://ip:port
  #无需生产者是否存在限制
  consumer:
    check: false
2.2.3 代码编写

首先,开关添加@EnableDiscoveryClient注解

在这里插入图片描述

之后,编写controller,调用所需接口,我们通过@Reference注解进行接口注入

在这里插入图片描述

三、项目启动测试

好了 现在我们启动dubbo-demo-provider和dubbo-demo-consumer两个项目,之后到我们的Nacos中查看我们的服务,会看到如下内容

在这里插入图片描述

现在,我们进行接口测试。
http://localhost:5731/dubbo/get/info?name=beyondLi71
大功告成

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值