Dubbo 与 SpringBoot 整合|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 快速学习 Dubbo 与 SpringBoot 整合

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门Dubbo 与 SpringBoot 整合】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9464


Dubbo 与 SpringBoot 整合


内容介绍:

一、创建 Spring boot 应用,provider 和 consumer

二、配置服务提供者

三、配置服务消费者


前面以普通的 Spring 配置文件的方式配置使用了 dubbo,在一般的 ssm 项目里,可将这些配置放在 Spring 配置文件中使用。


一、创建两个 Spring boot 应用,一个是 provider,一个是 consumer

右键创建一个 Spring Starter Project,第一个名称 Name 是 boot-user-service-provider, Package 是 com.atguigu.gmal,点击下一步不用选中任何功能模块,就是一个普通的应用,创建出来后将服务的实现复制 boot 工程里,要实现 UserService,在 boot 工程里依赖一下通用的接口,依赖 gmail interface,这是服务的提供者。

同样创建一个服务的消费者,名称 name 为 boot-order-service-consumer,消费者创建为 web 工程,以 web 的方式进行测试,把消费者通用的 interface 依赖进来,即 gmail interface,把之前写的实现复制过来,复制了实现类。

其次在那 name 上写 controller,假设消费者里有控制器,名称为 OrderController,作用是查询。

代码为@controller//注解      

public  class OrderController{

@Autowired

OrderService orderService;

@ResopnseBody

@Request Mapping(“/initOrder”)

publicListnitOrder(@RequestParam(“uid”)String userId)

return orderService.initOrder(userId);//返回订单进行查询

我们将用 UserService 拿到所有的订单内容,把订单内容返回,把 orderService 重新改成List<UserAddress>,

代码为public List<UserAddress> initOrder (String  userId);

把返回的实现改成 List<User Address>

OrderService 调用 USerService,直接返回 return addressList。


二、配置服务提供者

(1)、导入依赖

1)、导入 dubbo-starter

在 dubbo 项目主页,打开 Dubbo Spring Boot 的整合,导入

<dependency>

<groupId>com. alibaba. boot</groupId>

<artifactId>dubbo- spring- boot starter</artifactId>

<version>0.2.0</version>

</dependency>


(此依赖放入 user-Service-Provider 中)

注意 strater 版本适配:

image.png

Spring Boot 为1.5.X 版本的,versions 用0.1.1版本。

点开 dubbo-spring-boot-starter,同时导入了 dubbo2.6.2版本,zookeeper3.4.9版本以及操作 zookeeper 的客户端。

2)、导入 dubbo 的其他依赖

(2)、进行配置:

在 application.properties 中进行配置

1)、应用的名字 dubbo.application.name=user-service-provider

2)、注册中心地址 dubbo.registry.address=127.0.0.1:2181

3)、注册中心协议 dubbo.registry.protocol=zookeeper

4)、通信协议 dubbo.protocol.name=dubbo dubbo.protocol.port=20880

5)、连接监控中心 dubbo.monitor.protocol=registry

暴露服务中,由于配置的服务多,只需要在暴露的服务上标上注解,即@com.alibaba.dubbo.config.annotation,Service,//暴露服务

在主程序中加上@EnableDubbo//开启基于注解的 dubbo 功能

启动服务后,就会按照配置注册到指定的配置中心。

(3)、进行测试

启动,刷新管理控制台,服务应用数为2,点开,有 user-service-provider。


三、配置服务消费者

(1)、引入 dubbo-strater

在 orderService 中,引入代码为:

<dependency>

<groupId>com. alibaba. boot</groupId><artifactId>dubbo- spring- boot starter</artifactId><version>0.2.0</version>

</dependency>

(2)、进行配置

在 application.properties 中进行配置

1)、应用名字:dubbo.application.name=boot-order-service-consumer

2)、注册中心:dubbo.registry.address=zookeeper://127.0.0.1:2181

3)、监控:dubbo.monitor.protocol=registry

4)、端口号:server.port=8081

在 orderServiceImpl 中,不用@Autowired 自动注入

UserService,dubbo 为提供了注解,即@Reference 远程引用 OrderService 服务。

Dubbo注解功能@EnableDubbo

启动消费者,8081已启动,刷新注册中心,显示 service-consumer,访问local host8081/initOrder?uid=1,可查出两个用户的地址信息,整合成功。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5月前
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
5月前
|
Dubbo Java 应用服务中间件
实战指南:如何在Spring Boot中无缝整合Dubbo【四】
实战指南:如何在Spring Boot中无缝整合Dubbo【四】
83 0
|
5月前
|
Dubbo Java 应用服务中间件
Spring Boot Dubbo 构建分布式服务
Spring Boot Dubbo 构建分布式服务
111 0
|
5月前
|
Dubbo Java 应用服务中间件
微服务框架(十六)Spring Boot及Dubbo zipkin 链路追踪组件埋点
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文第一部分为调用链、OpenTracing、Zipkin和Jeager的简述;第二部分为Spring Boot及Dubbo zipkin 链路追踪组件埋点
|
5月前
|
JSON Dubbo Java
微服务框架(二十)Dubbo Spring Boot 生产就绪特性
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Dubbo Spring Boot 生产就绪特性
|
2月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
68 0
|
4月前
|
Dubbo Java 应用服务中间件
Spring Boot 调用 Dubbo 接口与编写 Dubbo 接口实战
Spring Boot 调用 Dubbo 接口与编写 Dubbo 接口实战
358 1
|
3月前
|
消息中间件 Java 数据库连接
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
75 0
|
5月前
|
SQL 监控 Java
nacos常见问题之dubbo+nacos+springboot3的native打包成功后运行出现异常如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
240 2
|
5月前
|
Dubbo Java 应用服务中间件
Spring Boot整合Dubbo+Zookeeper实现RPC调用
Spring Boot整合Dubbo+Zookeeper实现RPC调用 技术栈说明 Dubbo:Dubbo作为RPC框架,能在多个服务之间实现远程服务的调用。比如有两个独立的微服务A和B,A服务想要调用B服务时,因为两者不在同个内存空间中,不能直接调用,所以可以通过Dubbo实现这点。 功能和Spring Cloud的Feign相同,两者都是应用于微服务架构的远程调用框架 Zookeeper:作为注册中心去管理Dubbo服务,这点和Eureka、Nacos相同。 概述 通过一个示例说明Dubbo+Zookeeper在Spring Boot中的应用。 现有两个服务provider和con
161 4
下一篇
无影云桌面