dubbo开发篇-启动检测,集群容错,配置直连

(1)在开发及测试环境下,可以绕过注册中心,只测试指定服务提供者,点对点直连。

    <dubbo:reference interface="IService" id="service" timeout="10000" check="false" url="dubbo://localhost:20884" />

(2)check表示是否启动检测。若true那么启动的时候回去注册中心找对应的服务,若服务不存在那么停止spring启动,直接报错,

(3)集群容错

在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。
Failover Cluster: 失败自动切换,当出现失败,重试其它服务器 1。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)。
    Failfast Cluster:快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
Failsafe Cluster:失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
Failback Cluster:失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
Forking Cluster:并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最大并行数。

Broadcast Cluster:广播调用所有提供者,逐个调用,任意一台报错则报错 2。通常用于通知所有提供者更新缓存或日志等本地资源信息。

(4)负载均衡

    在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。
    Random LoadBalance:随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
    RoundRobin LoadBalance:轮循,按公约后的权重设置轮循比率。存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
    LeastActive LoadBalance:最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大 

    ConsistentHash LoadBalance:一致性 Hash,相同参数的请求总是发到同一提供者,当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。

<dubbo:reference interface=IService" id="service" timeout="10000" check="false"  cluster="failover" retries="2" loadbalance="random"/>

(5)Dubbo协议

Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
Dubbo缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。
<dubbo:protocol name="dubbo" port="20884" />
连接个数:单连接
    连接方式:长连接
    传输协议:TCP
    传输方式:NIO异步传输
    序列化:Hessian二进制序列化
    适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。

    适用场景:常规远程服务方法调用

(5)Dubbo只订阅,只注册
   <dubbo:registry address="10.20.153.10:9090" register="false" /> -->    
  只注册
   如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部署,另一个注册中心还没来得及部署,
   而两个注册中心的其它应用都需要依赖此服务。这个时候,可以让服务提供者方只注册服务到另一注册中心,而不从另一注册中心订阅服务。
   <dubbo:registry id="registry1" address="192.168.153.10:8080" />
   <dubbo:registry id="registry2" address="192.168.152.10:8080" subscribe="false" />

猜你喜欢

转载自blog.csdn.net/u014172271/article/details/80185801