dubbo


dubbo配置

Dubbo服务集群容错模式配置 一、基础概念         容错即“耐故障”或“容许故障”的意思。对于组成系统的元器件发生不可避免的故障时,采取响应的措施,仍能使系统维持正常工作状态。

        容错模式:是解决容错问题的一系列解决方案。

二、dubbo服务集群容错模式         dubbo框架为服务集群容错提供了一系列好的解决方案,在此称为dubbo服务集群容错模式。

1、集群容错模式配置         标签:,

        属性:cluster;

        类型:String;

        是否必填:可选;

        缺省值:failover;

        作用:性能调优;

        集群方式:可选:failover/failfast/failsafe/failback/forking;

        兼容性:2.0.5以上版本。

2、 Failover Cluster:失败自动切换         当出现失败时,重试其他服务器,为缺省值。通常用于读操作,但重试会带来更长的延迟。可通过可通过retries=”2”来设置重试次数(不含第一次)。

        示例:

        <dubbo:service retries=”2” / >或<dubbo: reference retries=”2”/>

        或:

       

           

        </dubbo:reference>

3、FailFast Cluster:快速失败         只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如:新增记录。

        示例:

        <dubbo:service  cluster=”failfast” />或

4、Failsafe Cluster:失败安全         出现异常时,直接忽略。通常用于写入审计日志等操作。

5、Failback Cluster:失败自动恢复         后台记录失败请求,定时重发。通常用于消息通知操作。

6、Forking Cluster:并行调用                 并行调用多个服务器,只要一个成功即返回。通常用于实时性要求比较高的读操作,但需要浪费更多的服务资源。

        可通过forks=”2”来设置最大并行数。

 7、策略成熟度

[ https://upload-images.jianshu.io/upload_images/5543739-02625f807e97e341.jpg?imageMogr2/auto-orient/strip imageView2/2/w/1200/format/webp]

《dubbo源码》

img

img

img

参考:

https://www.cnblogs.com/markcd/p/8452827.html

《dubbo理解与实战》

引言

由于Dubbo重启维护后,官方的使用文档己经非常详细,本书如果再讲使用方法就没有太 多的意义,所以一开始就按源码解析、设计原理说明的方向定位,因此需要读者有一定的基础。 涉及源码的讲解,注定会有很多地方枯燥乏味,我们在编写的时候也尽量用自己的语言去提炼 总结,让读者可以少看代码。

使用dubbo

  • < !–通过XML方式把实现配置为Bean,让Spring托管和实例化–>
  • ClassPathXmlApplicationContext context = new ①指定服务暴露配置文件 ClassPathXmlApplicationContext(new String[]{“spring/echo-provider.xml”}); v— context.start(); <——②启动Spring容器并暴露服务
  • Dubbo框架启动时默认会通过Spring的容器来启动(本质上也是通过ClassPathXmlApplicationContext来启动服务的)
  • 使用Dubbo框架能够让我们把关注点放在编写服务消费逻辑上,而不必去关心网络连接和序列化等底层技术
  • 通过XML配置启动Dubbo服务是比较常见的方式,但Dubbo可以消除XML配置,直接使用注解来暴露服务,这种方式更友好一些,虽然业务代码会耦合一些Dubbo框架注解,但是未来代码重构比较便利
  • 使用^Service注解后,由Dubbo服务将这个实现类提升为Spring容器的Bean,并且负责 配置初始化和服务暴露
  • 通过注解消费服务时,只需要Reference注解标注,该注解适用于对象字段和方法中。因此需要做一下特殊的包装。

dubbo注册中心

  • 从dubbo-registry的模块中可以看到,Dubbo主要包含四种注册中心的实现,分别是 ZooKeeper > Redis > Simple > Multicast 。其中ZooKeeper是官方推荐的注册中心,在生产环境中有过实际使用,具体的实现在Dubbo源码的dubbo-registry-zookeeper模块中。阿里内部并没有使用Redis作为注册中心,其稳定性依赖于Redis本身。Simple注册中心是一个简单的基于内存的注册中心实现,它本身就是一个标准的RPC服务,不支持集群,也可能出现单点故障。Multicast模式则不需要启动任何注册中心,只要通过广播地址,就可以互相发现。服务提供者启动时,会广播自己的地址。消费者启动时,会广播订阅请求,服务提供者收到订阅请求,会根据配置广播或单播给订阅者。不建议在生产环境使用