SpringCloud集成dubbo的使用

1.生产者(服务提供者)操作。(服务提供者方的配置)
(1)添加依赖(我这里的版本是2.2.3RELEASE)

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

(2)提供统一业务api  (建议api层和实现层分为两个模块)

public interface ProducerClient{
    Product findByPid(Integer pid);
}

注意:相关实体类需要implements Serializable否则会报错。
(3)实现该api

@DubboService
public class ProducerClientImpl implements ProducerClient{
    
    @Resource
    private ProducerMapper producerMapper;
    
    @override
    public Product findByPid(Integer pid){
        return producerMapper.findById(pid);
    }
}

@DubboService 用来暴露服务,消费者才可以进行远程调用。
(4)远程调用需要dubbo协议,需要在配置文件中添加dubbo配置。

dubbo:
  scan:
    base-packages: com.fjh.dubbo # 开启包扫描(ProducerClientImpl所在的包,让@DubboService注解生效)
  protocol:
    name: dubbo # 服务协议
    port: -1 # 服务端口 -1是不限制的意思
  registry:
    address: nacos://@nacos.addr@ # nacos注册中心的地址

2.消费者(服务调用方)操作(消费者方的配置)
(1)添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

(2)添加dubbo配置

dubbo:
  registry:
    address: nacos://@nacos.addr@ # nacos注册中心的地址
  cloud:
    subscribed-services: 'service-product,...' #服务提供方的服务名称(spring.application.name),需要调用多个服务用,隔开。

(3)使用@DubboReference即可进行远程调用

@DubboReference
private ProducerClient producerClient;

服务启动的时候要先启动生产者服务,否则需要提供相应配置。汇总:该项目是springcloud集成dubbo,注册中心是nacos,使用起来还是非常方便的。

posted @ 2023-04-21 15:01  郭慕荣  阅读(208)  评论(0编辑  收藏  举报