流程图
dubbo高可用
1.注册中心zookeeper宕机与dubbo直连
原因要看dubbo健壮性
1.监控中心宕机不影响使用,知识丢失部分数据
2.数据库宕机后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
3.注册中心对等集群,任意一个宕机后,将自动切换到另一台
4.注册中心全部宕机后,服务提供者和服务消费者仍能通过本地缓存通讯
5.服务提供者无状态,任意一台宕机后,不影响使用
6.服务提供者全部宕机后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
2.dubbo负载均衡机制
1.Random LoadBalance 随机加权重
2.RoundRobin LoadBalance 轮循 加权重
3.LeastActive LoadBalance 最小活跃数
4.一致性hash
3.服务降级
什么是服务降级?
当服务器压力剧增的情况下,根据实际业务情况以及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。
dubbo支持两种服务降级策略
1.mock=force:return+null 表示消费者对该服务的方法调用都直接返回null ,不在发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
2.mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回null,不抛出异常,用来容忍不重要服务不稳定时对调用方的影响
4.集群容错模式
failover Cluster (默认)
失败自动切换,当出现失败,重试其他服务器。通常用于读操作,但重试会带来更长延迟,可通过retries = “2” 来设置重试次数
failfast cluster
快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作
failsafe cluster
失败安全,出现异常时,直接忽略。通常写入审计日志操作。
failback cluster
失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作
Forking Cluster
并行调用多个服务器,只要一个成功即返回,通常用于实时性要求比较高的操作,但需要浪费更多的服务资源,可通过forks=“2”来设置最大并发数
Broadcast Cluster
广播调用所有提供者,逐个调用 有一个报错则报错。
整合hystrix