dubbo高可用

作者: 张磊_e325 | 来源:发表于2019-11-06 13:46 被阅读0次

1、注册中心宕机与dubbo直连

1)注册宕机不影响服务调用,消费者会使用本地缓存的信息与提供者创建连接
2)dubbo直连:可以使用@Reference(url="127.0.0.1:20880"),可以直接创建连接,跳过注册中心

2、负载均衡(4种)

默认:Random
修改:通过@Refernce(loadbalance = "random")配置。4种负载均衡机制的类都是AbstractLoadBalance的子类,loadbalance的取值可以参考起NAME属性
1)Random LoadBalance:随机&权重
2)RoundRobin LoadBalance:轮询&权重
3)LeastActive LoadBalance:最小活跃数(调用上次接口响应速度最快的服务器)[100ms][200ms][300ms]
4)ConsistentHash LoadBalance:hash一致性 (参数hash分为一组的访问同一个服务器)[getUser?id=1][getUser?id=2][getUser?id=3]

3、服务降级

当服务器压力剧增的情况下,根据实际业务及流量,对某些服务有策略的不处理或简单处理,从而释放服务器压力,以保证核心功能正常运作或高效运作。
1)mock=force:return null 不发起远程调用直接返回null【通过控制台(admin)屏蔽】
2)mock=fail:return null 发起远程调用报错后,不抛错误,直接返回null【通过控制台(admin)容错】

4、服务容错

dubbo支持多种容错机制:
    幂等操作:【失败自动切换】->通过设置retries(默认2) 不算首次请求
    非幂等操作:【快速失败】retries=0
实现:    
    <dubbo:service cluster="failsafe" />
    或
    <dubbo:reference cluster="failsafe" />

开发中,可以通过整合hystrix
    1)服务提供者:
        a. 引入spring-cloud-starter-netflix-hystrix
        b. 启动类@EnableHystrix 启动hystrix
        c. 方法上@HystrixCommand 代理该服务
    2)服务消费者
        ab同上
        c. 方法上@HystrixCommand(fallbackMethod = "hello") 指定容错时要执行的方法
        d. 实现回调方法

相关文章

网友评论

    本文标题:dubbo高可用

    本文链接:https://www.haomeiwen.com/subject/dxjubctx.html