dubbo服务分为服务的提供者和消费者
1.服务提供者在nacos注册后通过
@DubboService 暴漏服务
2.dubbo服务消费者通过
@DubboReference来进行远程服务调用
dubbo的高级特性
1.启动检查:如果启动消费者无提供者则报错,通过配置文件check: false关闭
2.版本控制: 通过version来控制版本来实现灰度发布或不同版本并存
3.失败重试:防止消息堵塞
4.负载均衡策略:按比重轮巡,按比重概率,最少访问优先,一致性hash
注意: 服务提供者中的接口api要单独暴露出来,否则消费者提供者都要有 此接口,每次修改要修改两处,耦合很高,可以api独立出来然后使用maven聚合将他们融合起来
单独的api接口maven
<parent> <artifactId>tanhua-dubbo</artifactId> <groupId>com</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>tanhua-dubbo-interface</artifactId> <dependencies> <dependency> <groupId>com</groupId> <artifactId>tanhua-model</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
服务的提供者和消费者都加入api的依赖就可以降低耦合
<dependency> <groupId>com</groupId> <artifactId>tanhua-dubbo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>