Springboot 如何整合 dubbo(1)|学习笔记

简介: 快速学习 Springboot 如何整合 dubbo(1)

开发者学堂课程【基于 Zookeeper、Dubbo 构建互联网分布式基础架构Springboot 如何整合 dubbo(1)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/635/detail/10166


Springboot 如何整合 dubbo(1)

 

目录:

一、复习回顾

二、用 springboot 整合 dubbo

 

一、复习回顾

上节内容对于 dubbo 的整合做了一个分布式的项目,演示怎么进行拆分、怎么进行通信,使用了 mvc 框架进行了操作。

那么现在我们了解 springboot 开始流行,接着本节就讲解如何将之前的项目切换到springboot 环境中。

在前面内容中,讲到了几个项目模块:service、serviceimpl、testweb。

其中 web 作为消费者,service 作为提供者,分析过两者不放在一个项目中的原因,此处不再复述。

然后我们将 serviceimpl 做成了 web 程序,跑到了一个服务器上,将 testweb 也跑到另一个服务器上,然后通过网络请求的方式让两者进行通信,从而让 web 拿到服务里的一些具体的实现。

而 service 作为中间人,两者实现的共同接口,这样才能让web中有定义的一个类型去引入 serviceimpl。


二、用 springboot 整合 dubbo

首先以maven创建工程建立一个quickstart,groupID为com.qianfeng,ArtifactId为springboot-dubbo,

下一步,显示名字已存在,

将 Project name 改为 springbootdubboonline,点击 finish。创建完项目后,把src删掉。

1.引入依赖

第一步先引入 spring 依赖,把这个项目的父声明为 springboot 即可。

在代码上添加如下代码:

org.springframework.boot spring-boot-starter-parent

1.5.9.RELEASE


声明后需要添加依赖,继续找到代码

,在两者间插入如下代码:

org.springframework.boot

spring-boot-starter-web


此处不需要添加版本号,springboot 会自动将版本依赖过来,接下来再添加一个dubbo 的依赖,

输入如下:

com.alibaba.boot

dubbo-spring-boot-starter

1.0.0-SNAPSHOT


接下来添加第三个依赖,因为 dubbo 和 springboot 进行整合需要加入一个检查状况的健康依赖,

输入如下:

com.alibaba.boot

dubbo-spring-boot-actuator

1.0.0-SNAPSHOT


在idea中还需要添加两个依赖包,否则 springbooot 会报错,继续插入如下:

ch.qos.logback

logback-core


ch.qos.logback

logback-classic


既然要整合,还需要整合 zookeeper,所以还需要整合 zookeeper 的客户端,

输入如下:

com.101tec

zkclient

0.10


以上添加完所有依赖,下一步就是来做项目

2.做项目,创建模块

建三个模块,第一个模块是接口,实现类会实现接口,web会定义接口类型。先写一个quickstart,ArtifactId为servicedubbo,创建完成。

把AppTest删掉,删掉后才可以删APP,在com.qianfeng上新建一个class,命名为springboot.dubbo.service.TestService,Kind选为Interface。

创建完后在主函数中输入代码,

即如下:

public interface TestService {

/**

*没有任何实际意义,主要是为了演示功能

*@param name

*@return

*/

String getData(String name);

}

接口创建完后建立第二个模块来实现,会被当作服务发送出去

新建 archetype-webapp,ArtifactId为serviceimpldubbo,创建成功。

创建完成后可以把项目安装一下,右击 servicedubbo,点击 Run Maven,点击install。安装之前把整个父安装一下,否则子无法安装。

先右击 springbootdubboonline,点击 Run Maven,点击 install。安装的目的是安装到本地仓库。

之后在代码中添加依赖:

找到代码,在两者间插入如下:

com.qianfeng

servicedubbo

1.0-SNAPSHOT


引入依赖后需要写实现,点击serviceimpldubbo下的src,右击main新建一个Directory,命名为java,标记为Sources Root,点击java,点击Mark Directory as,点击 Sources Root。

再写一个包,点击java,点击new,java class,name为:

com.qianfeng.springboot.service.impl.TestServiceImpl

进入后重写方法代码如下并加入注解:

//前面加注解时我们使用@Service加注解,但是注意,此处不是用这个注解

//相当于我们原先在xml配置文件中配置的东西

@Service(version = “1.0”,application = “”,protocol = “”,registry = “”)

//此注解的作用就是创建这个类型的对象,然后作为服务提供者发布出去(该注解中可以加如上参数)

public class TestServiceImpl implements TestService {

@Override

public String getData(String name) {

return “result =” +name;

application相当于名字,protocol相当于协议,registry相当于注册地址,其实就是将另外一边xml文件中配置的东西转换到这边。

@Service(version = “1.0”,application= “”,protoclo = “”,registry = “”)这样写容易写死,现在不写死它,将它写到一个配置文件中

写一个配置文件,右击resources,new一个file,命名为application.yml

创建完后输入:

spring:

application:

name:

相当于有spring标签、application标签、name标签,依赖于缩进,现在起名为dubbo-provider-demo,在name后输入dubbo-provider-demo

需要明白,我们这个项目若想要启用成web项目,需要一个端口,所以继续指定:

server:

port:9090

dubbo:

scan:

base-packages:com.qianfeng.springboot.dubbo  #base-packages的作用是用于扫描我们的dubbo的注解,比如@service。在base-packages后加入包

继续输入:

application:

id:dubbo-provider

name:dubbo-provider

protocol: //配置protocol

id:dubbo

name:dubbo

port:12345

status:server  #标明是一个 server

registry: //配置registry

id:my-reg

address:zookeeper://192.168.3.224:2181

再来加入是否发布服务的选项,

继续输入:

endpoints:

dubbo:

enabled:true

为了监控,再加入如下:

management:   //用于管理

port:9091

health:

dubbo:

status:

extras:load,threadpool  //监听健康状态

defaults:memory

以上就完成了配置,相当于将上节 xml 文件中的配置转换。

有了配置后进行取,如下

@Service(version=“1.0”,application=

“${dubbo.application.id}”,protocol= “${dubbo.protocol.id}”,registry = “${dubbo.registry.id}”)

相关文章
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
495 1
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
1005 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
Dubbo Java 应用服务中间件
Spring Boot 调用 Dubbo 接口与编写 Dubbo 接口实战
Spring Boot 调用 Dubbo 接口与编写 Dubbo 接口实战
1741 1
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
540 0
|
消息中间件 Java 数据库连接
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
449 0
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
281 2
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
399 100
|
Dubbo Java 应用服务中间件
💥Spring Cloud Dubbo火爆来袭!微服务通信的终极利器,你知道它有多强大吗?🔥
【8月更文挑战第29天】随着信息技术的发展,微服务架构成为企业应用开发的主流模式,而高效的微服务通信至关重要。Spring Cloud Dubbo通过整合Dubbo与Spring Cloud的优势,提供高性能RPC通信及丰富的生态支持,包括服务注册与发现、负载均衡和容错机制等,简化了服务调用管理并支持多种通信协议,提升了系统的可伸缩性和稳定性,成为微服务通信领域的优选方案。开发者仅需关注业务逻辑,而无需过多关心底层通信细节,使得Spring Cloud Dubbo在未来微服务开发中将更加受到青睐。
215 0
|
9月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
166 0