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;
服务启动的时候要先启动生产者服务,否则需要提供相应配置。

浙公网安备 33010602011771号