SpringCloud集成dubbo的使用。

1.生产者(服务提供者)操作。

(1)添加依赖(我这里的版本是2.2.3RELEASE)

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

(2)提供统一业务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;

服务启动的时候要先启动生产者服务,否则需要提供相应配置。

posted @   fjhnb  阅读(1107)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示