Dubbo简单用法
官网:https://dubbo.apache.org/zh/docs/concepts/registry-configcenter-metadata/
整体架构
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
dubbo使用xml配置方式
- 去除具体服务实现类中@Service注解,在服务提供者启动类中新增@ImportResource("provider.xml"),在服务消费者启动类中新增@ImportResource("consumer.xml"),最后使用@autowire去注入具体实现接口。
copy
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
//具体实现接口与实现方法
private UserService userService;
("/Hello")
public String sayHello() {
return userService.Hello();
}
//服务消费方,服务提供方与此类似
("consumer.xml")
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class);
}
}
Dubbo服务特性
-
依赖检查
大致可分为启动时使用-D参数配置或者在xml配置文件中使用check参数配置。这里-D参数配置优先级大于使用配置文件配置。
<dubbo:reference id="userService" check="false" interface="com.cdtu.user.service.UserService"/>
-
超时机制以及集群容错机制
超时机制如果方法跟整个服务同时设置了超时时间,这个时候以方法设置的超时时间为准,如果服务提供方跟服务消费方同时设置了超时时间,则以服务消费方为准,配置都是在xml配置文件中使用timeout参数。容错机制,当服务调用失败的时候,默认情况下,dubbo会进行重试,默认重试次数为2(不包含第一次)可通过retries参数进行设置重试次数。 -
Dubbo服务分组及配置
当一个接口有多种实现时,可以用 group 区分,服务提供者,在标签里加多个group进行区分,服务消费者在引用的时候,也在标签里加group。
copy
- 1
- 2
- 3
- 4
//服务提供者
<dubbo:service group="user1" interface="com.cdtu.user.service.UserService" ref="userService" /> <dubbo:service group="user2" interface="com.cdtu.user.service.UserService" ref="userService2" />
//服务消费者
<dubbo:reference group="user2" id="userService" check="false" interface="com.cdtu.user.service.UserService"/>
-
Dubbo服务多版本化配置,在配置文件中使用version参数配置即可。不同版本是获取不到相应配置的。
-
动态配置中心及配置外部化
外部化配置。启动配置的集中式存储 (简单理解为dubbo.properties的外部化存储)。 服务治理。服务治理规则的存储与通知。
1.在dubbo-ops 进行配置信息配置
2.在xml中配置<dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
<dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
本文作者:菜鸟王999
本文链接:https://www.cnblogs.com/bigdata123/p/16309612.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步