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,使用起来还是非常方便的。
郭慕荣博客园