1. Dubbo 的容错机制有哪些?
Dubbo 官网提出总共有六种容错策略
1)Failover Cluster 模式
失败自动切换,当出现失败,重试其它服务器。(默认)
2)Failfast Cluster
快速失败,只发起一次调用,失败立即报错。 通常用于非幂等性的写操作,比如新增记录。
3)Failsafe Cluster
失败安全,出现异常时,直接忽略。 通常用于写入审计日志等操作。
4)Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。 通常用于消息通知操作。
5)Forking Cluster
并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=”2”来设置最大并行数。
6)cast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0 开始支持) 通常用于通知所有提供者更新缓存或日志等本地资源信息。
总结: 在实际应用中查询语句容错策略建议使用默认 Failover Cluster ,而增删改建议使用 Failfast Cluster 或者使用 Failover Cluster(retries=”0”)策略 防止出现数据 重复添加等等其它问题!建议在设计接口时候把查询接口方法单独做一个接口提供查询。
2. Dubbo 的连接方式有哪些?
Dubbo 的客户端和服务端有三种连接方式,分别是:广播,直连和使用 zookeeper 注册中心。
1、Dubbo 广播
这种方式是 dubbo 官方入门程序所使用的连接方式,但是这种方式有很多问题。在企业开发中,不使用广播的方式。
2、Dubbo 直连
这种方式在企业中一般在开发中环境中使用,但是生产环境很少使用,因为服务是直接调用,没有使用注册中心,
很难对服务进行管理。Dubbo 直连,首先要取消广播,然后客户端直接到指定需要的服务的 url 获取服务即可。
服务端配置:taotao-manager 的修改如下,取消广播,注册中心地址为 N/A
客户端配置:taotao-manager-web 配置如下,取消广播,从指定的 url 中获取服务