Springboot整合Dubbo

本文详细介绍了如何在Springboot中整合Dubbo,包括Zookeeper配置、服务接口声明、应用配置文件的调整,并展示了启动过程和消费者引用的变化。重点在于配置的简化与服务调用的实战演示。

回顾

单机版Dubbo的流程我在上一篇说过了单机版Dubbo详解,Springboot和它的流程是一样的,不同的是springboot可以自动配置dubbo,我们主要看一下在application.yml中 提供者和消费者都需要写点什么

前期工作

  • 启动ZookeeperService
  • 启动ZookeeperCli
  • 启动Dubbo

提供者

这里我用的聚合工程
工程目录如下:
在这里插入图片描述

dubbo-boot-user-service(服务提供者)

application.yml
在这里插入图片描述
当时单机版Dubbo的provider我在xml里写过这么几个东西
在这里插入图片描述
dubbo的配置我贴一下,我们对比来看

dubbo:
  application:
  # <dubbo:application name =""/>
    name: user-service
  # <dubbo:registry address=""/>
  registry:
    address: zookeeper://127.0.0.1:2181
  # <dubbo: protocol name="" port="" />
  protocol:
    name: dubbo
    port: 9090

是不是还差两个东西 一个是发布的服务接口另一个是接口的实现类,我们看看写在哪了
在这里插入图片描述
@Service改用dubbo下的,这个注解办了两个事,就相当于写了
<bean id="" class=""/>+<dubbo:service ref="" class="" />

  • 第一个发布服务到注册中心
  • 第二个把接口实现类扔到IOC容器中

启动类:需要加@EnableDubbo注解自动加载Dubbo
在这里插入图片描述

dubbo-boot-consumer(消费者)

这是上一篇单机版配置,我们可以看到有三个东西需要在配置中体现出来
在这里插入图片描述
这是application.yml
在这里插入图片描述

dubbo:
# <dubbo:application name=""/>
  application:
    name: user-service-consumer
# <dubbo :registry address=""/>
  registry:
    address: zookeeper://127.0.0.1:2181

对比了一下 我们发现少了一个Reference对不对?去哪了呢?好说@Reference注解就上场了
在这里插入图片描述
消费者这里牵扯到的实体类(User)需要实现序列化接口

开猫启动

这里的消费者其实就是一服务的调用者,由它去调用注册中心中的服务,而里面的服务真正的和数据库交互
在这里插入图片描述
没有问题
Dubbo控制台看一眼
在这里插入图片描述
没有问题

总结

Springboot整合Dubbo就说完了,这其实就是一个配置变迁的过程,希望大家活学活用

### Spring Boot 整合 Dubbo 实现 RPC 分布式服务 #### 1. 环境准备 为了在 Spring Boot整合 Dubbo,需要先搭建好基础环境。这包括引入必要的依赖项以及配置 Zookeeper 注册中心。 以下是 Maven 配置文件中的依赖部分: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- Dubbo Dependency --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>3.0.8</version> </dependency> <!-- Zookeeper Client --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>5.2.0</version> </dependency> </dependencies> ``` 上述代码片段展示了如何通过 Maven 添加 Dubbo 和 Zookeeper 的支持[^1]。 #### 2. 配置 Dubbo 和 Zookeeper Dubbo 使用 Zookeeper 来管理服务的注册与发现过程。因此,在 `application.properties` 或 `application.yml` 文件中需定义相应的参数: 对于 `application.properties` 文件: ```properties dubbo.application.name=springboot-dubbo-demo dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 ``` 或者使用 YAML 格式的配置文件: ```yaml dubbo: application: name: springboot-dubbo-demo registry: address: zookeeper://127.0.0.1:2181 protocol: name: dubbo port: 20880 ``` 这些设置指定了应用名称、Zookeeper 地址以及协议端口等重要信息[^2]。 #### 3. 创建服务提供方 (Provider) 创建一个简单的接口及其实现类作为服务提供者。例如,假设有一个名为 `DemoService` 的接口: ```java public interface DemoService { String sayHello(String name); } ``` 接着为其编写具体的逻辑实现: ```java import org.apache.dubbo.config.annotation.Service; @Service(version = "1.0.0") // Mark this class as a service provider. public class DemoServiceImpl implements DemoService { @Override public String sayHello(String name) { return "Hello, " + name; } } ``` 这里利用了 Dubbo 提供的注解来标记该类为远程服务的一部分[^3]。 #### 4. 构建服务消费方 (Consumer) 同样地,在另一个模块里声明相同的接口并注入其实例即可完成调用操作。注意不要重复定义具体方法体! ```java import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Component; @Component public class DemoAction { @Reference(version = "1.0.0", timeout = 5000L) private DemoService demoService; public void execute() { System.out.println(demoService.sayHello("World")); } } ``` 此段落描述了如何借助于 `@Reference` 注解读取远端的服务实例,并执行跨节点间的交互行为。 --- #### 总结 以上就是关于如何在 Spring Boot 应用程序内部嵌入 Apache Dubbo 组件从而达成微服务体系架构下各组件间高效通讯的一个基本流程说明。它涵盖了从项目初始化到实际编码实践的所有必要环节。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

商朝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值