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. 实现回调方法
网友评论