SpringBoot中使用Dubbo完成服务间调用

本文详细介绍如何在Spring Boot项目中集成Dubbo实现服务间的远程调用。通过配置注册中心Nacos并使用注解方式暴露服务及引用服务,简化了传统XML配置文件的方式。文章还提供了具体的代码实例。
摘要由CSDN通过智能技术生成

在 Dubbo 中使用注解 | Apache Dubbo

dubbo基础(三)——spring boot调用dubbo | 张利君的博客 (zhanglijun1217.github.io)

在项目中有使用到Dubbo来进行远程的调用,所以学习下。

其实用dubbo实现远程的调用并不难。机制就是"提供方-消费方",核心关键是同连同一个注册中心

  • 注册中心:Nacos

provider

配置

dubbo.application.name = xxx-service
dubbo.protocol.name = dubbox
dubbo.registry.address = nacos://172.x.x.x:8848
dubbo.consumer.check = false

注意要在启动类配置**@EnableDubbo**开启spring boot对dubbo的支持。

dubbo服务接口

这里使用 @DubboService注解来暴露服务,其实也是对应着dubbo-provider.xml中的dubbo:service标签

@DubboService
@Slf4j
public class ServiceApiImpl{
}

启动provider服务,可以在nacos中看到注册到注册中心的接口服务了。

577

consumer

消费者端要配置大体和服务提供者端是一样的,也是用**@DubboRefernce注解来代替对应的dubbo:refernce标签。这里也要在启动类上去加入@EnableDubbo**注解。

引入依赖

需要引入服务提供方的依赖

<dependency>
    <groupId>com.xxx</groupId>
    <artifactId>service-api</artifactId>
</dependency>

配置x

dubbo.application.name =x-service
dubbo.registry.address = nacos://172.x.x.x:8848

一定要注册到同一个注册中心

引用dubbo服务接口

@Slf4j
@Component
public class Consumer{

    @DubboReference
    private ServiceApi serviceApi;
    
    //...
}

这样就完成了dubbo服务接口之间的调用。

使用@FeignClient进行服务调用时,需要按照以下步骤进行操作: 1. 添加Feign依赖:在项目的pom.xml文件添加Feign的依赖。 ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> ``` 2. 创建Feign客户端接口:创建一个接口使用@FeignClient注解指定要调用服务名称。 ```java @FeignClient(name = "service-provider") public interface ServiceProviderClient { // 定义要调用服务接口方法 @GetMapping("/api/service") String getServiceData(); } ``` 3. 调用服务接口:在需要调用服务的地方,通过依赖注入的方式使用Feign客户端接口。 ```java @RestController public class MyController { @Autowired private ServiceProviderClient serviceProviderClient; @GetMapping("/api/data") public String getData() { // 调用远程服务接口 String serviceData = serviceProviderClient.getServiceData(); // 处理返回的数据 return serviceData; } } ``` 在上述代码,Feign客户端接口的方法定义与服务提供者的接口方法一致,通过调用该方法即可实现远程服务调用。Feign会根据@FeignClient注解指定的服务名称进行服务发现,并生成对应的代理类来执行远程调用。 需要注意的是,使用@FeignClient进行服务调用还需要配置服务注册心和服务提供者的相关信息,如注册心地址、服务提供者的URL等。具体配置在项目的配置文件进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值