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

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

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

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


Springboot 如何整合 dubbo(2)

 

目录:

一、继上节模块及启动

二、写实现类

 

一、继上节模块及启动

接着写一个主程序

右击 serviceimpldubbo 下的 java,new 一个 java class,命名为com.qiangfeng.springboot.dubbo.App

进入后先在主函数上添加 @SpringBootApplication,然后在主函数中写入 main 方法,

代码如下:

@SpringBootApplication

public class App {

public static void main(String[] args){

SpringApplication.run(App.class);

}

写完后先来启动,它会启动app所在的包以及子包下所有的类

image.gif结果报错,原因是代码

<!—用于健康状态检查的-->

<dependency>

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

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

<version>1.0.0-SNAPSHOT</version>

</dependency>

导错包,修改为如下

<!—用于健康状态检查的-->

<dependency>

<groupId>org.springframework.boot</groupId>

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

</dependency>

再来启动,启动成功后再来写实现类


二、写实现类

点击springbootdubboonline,new一个module,点击Maven,找到webapp,创建一个web项目,Artifactid为webdubbo

创建完后,添加依赖,

输入以下:

<dependency>

<groupId>com.qianfeng</groupId>

<artifactId>servicedubbo</artifactId>

<version>1.0-SNAPSHOT</version>

</dependency>

引入后点击main,在main下创建一个java,然后右击java创建一个java class,

命名为:

com.qianfeng.springboot.dubbo.controller.TestController

进入后加入注解:

@RestController

@RequestMapping(“/test”) //加一个路径test

然后在主函数中输入 private TestService testService,以前使用@Autowired 进行注解,此处也不使用@Autowired ,使用@Reference进行注解,也需要配version和id,

代码如下:

public class TestController {

@Reference (version = “1.0”,application = “”)

private TestService testService;

继续在主函数中输入:

public String getData(String name) {

String data = testService.getData(name);

return data;

再加入注解,

修改如下:

@RequestMapping(“/getdata/{name}”)

public String getData(@PathVariable(“name”String name) {

String data = testService.getData(name);

return data;

之后将serviceimpldubbo下的application.yml移到webdubbo下的resources中,

修改一下

spring:

application:

name:dubbo-consumer-demo

server:

port:8080

dubbo:

application:

id:dubbo-consumer

name:dubbo-consumer

protocol:

id:dubbo

name:dubbo

port:23456

registry:

id:my-reg

address: zookeeper://192.168.3.224:2181

配置完后再点击 com.qianfeng,new 一个 java class,名为 App

新建一个 App.java

新建进入后,在主函数上添加 @SpringBootApplication,再在主函数中重写方法,

代码如下:

@SpringBootApplication(scanBasePackages= {“com.qianfeng.springboot.dubbo”})

public class App {

public static void main(String[] args) {

SpringApplication.run(App.class);

写完后启动,在启动过程中查看serviceimpldubbo下的com.qianfeng.springboot.server.impl,

发现代码base-packages导错包,

修改为base-packages:com.qianfeng.springboot

停止启动,先来看页面

image.gif如图,可以看到没有提供者,因为刚才扫错包

接着再来启动提供者,启动起来后再来查看页面

image.gif显示正常,点击后可以看到如图

image.gif提供者是192.168.3.84:20880

消费者是192.168.3.84

应用有两个,分别是 dubbo-consumer,dubbo-provider

说明 serviceimpldubbo 服务已经发布出去了,webdubbo 已经收到了。

接着可以访问测试,输入网址 localhost:8080/test/getdata/abc,网络报错

image.gif有可能提供者没有注册上来,现在关掉再来启动消费者。再来刷新页面,发现还是报错

再来全部停掉,然后启动 webdubbo 下的 App,使用调试启动 Debug’App(1)’,然后打点 TestController 中的代码 String data=testService.getData(name),访问页面再来返回看代码,

显示如图:

image.gif然后放行,之后刷新页面,页面显示结果为 result=abc

可以看到已经拿到数据,返回的 data 为 result=abc,我们传的是abc,但是返回的是result=abc 呢?

我们会发现是通过testService 方法返回的。现在是两个web项目,webdubbo 项目中拿到另外一个web项目中的对象,这样让 dubbo 整合出了springboot模式。

Springboot 主要的目的就是减少配置,只需要将变化的例如中心地址、端口、名字修改就可以

 

相关文章
|
5月前
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
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 接口实战
359 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
|
2月前
|
Dubbo Java 应用服务中间件
💥Spring Cloud Dubbo火爆来袭!微服务通信的终极利器,你知道它有多强大吗?🔥
【8月更文挑战第29天】随着信息技术的发展,微服务架构成为企业应用开发的主流模式,而高效的微服务通信至关重要。Spring Cloud Dubbo通过整合Dubbo与Spring Cloud的优势,提供高性能RPC通信及丰富的生态支持,包括服务注册与发现、负载均衡和容错机制等,简化了服务调用管理并支持多种通信协议,提升了系统的可伸缩性和稳定性,成为微服务通信领域的优选方案。开发者仅需关注业务逻辑,而无需过多关心底层通信细节,使得Spring Cloud Dubbo在未来微服务开发中将更加受到青睐。
69 0
|
12天前
|
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 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
|
2月前
|
负载均衡 Dubbo 应用服务中间件
框架巨擘:Dubbo如何一统异构微服务江湖,成为开发者的超级武器!
【8月更文挑战第8天】在软件开发中,微服务架构因灵活性和可扩展性备受欢迎。面对异构微服务的挑战,Apache Dubbo作为高性能Java RPC框架脱颖而出。它具备服务注册与发现、负载均衡及容错机制等核心特性,支持多种通信协议和序列化方式,能有效连接不同技术栈的微服务。Dubbo的插件化设计保证了面向未来的扩展性,使其成为构建稳定高效分布式系统的理想选择。
40 5
|
5月前
|
Dubbo Java 应用服务中间件
阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo
软件架构是一个包含各种组织的系统组织,这些组件包括Web服务器,应用服务器,数据库,存储,通讯层),它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。
|
5月前
|
Dubbo Cloud Native 应用服务中间件
【阿里云云原生专栏】云原生环境下的微服务治理:阿里云 Dubbo 与 Nacos 的深度整合
【5月更文挑战第25天】阿里云Dubbo和Nacos提供微服务治理的强大工具,整合后实现灵活高效的治理。Dubbo是高性能RPC框架,Nacos则负责服务发现和配置管理。整合示例显示,通过Nacos注册中心,服务能便捷注册发现,动态管理配置。简化部署,提升适应性,但也需注意服务稳定性和策略规划。这种整合为云原生环境的微服务架构带来强大支持,未来应用前景广阔。
264 2
下一篇
无影云桌面