JAVA全系列 教程
3762个小节阅读:7092.1k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
负载均衡策略 | 说明 |
---|---|
Random | 随机,按权重设置随机概率(默认) |
RoundRobin | 轮询,按公约后的权重设置轮询比率 |
LeastActive | 最少活跃调用数,相同活跃数的随机 |
ConsistentHash | 一致性Hash,相同参数的请求总是发到同一提供者 |
配置负载均衡策略,既可以在服务提供者一方配置,也可以在服务消费者一方配置
//在服务消费者一方配置负载均衡策略
@Reference(check = false,loadbalance = "random")
x//在服务提供者一方配置负载均衡
@Service(loadbalance = "random")
public class HelloServiceImpl implements HelloService {
public String sayHello(String name) {
return "hello " + name;
}
}
在Dubbo中可以通过实现接口org.apache.dubbo.rpc.cluster.LoadBalance,自定义负载均衡器。
通过服务降级保证系统高可用
什么是服务降级?
当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务有策略的降低服务级别, 以释放服务器资源,保证核心任务的正常运行。
为什么要服务降级?
这是防止分布式服务发生雪崩效应,什么是雪崩?就是蝴蝶效应,当一个请求发生超时,一直等待着服务响应,那么在高并发情况下,很多请求都是因为这样一直等着响应,直到服务资源耗尽产生宕机,而宕机之后会导致分布式其他服务调用该宕机的服务也会出现资源耗尽宕机, 这样下去将导致整个分布式服务都瘫痪,这就是雪崩。
Dubbo 服务降级实现方式
第一种 在 dubbo 管理控制台配置服务降级
屏蔽和容错
第二种 指定返回简单值或者null
xxxxxxxxxx
<dubbo:reference id="xxService" check="false" interface="com.xx.XxService" timeout="300" mock="return null" />
<dubbo:reference id="xxService2" check="false" interface="com.xx.XxService2" timeout="3000" mock="return 1234" />
也可以使用注解的方式,如:
xxxxxxxxxx
@Reference(mock="return null")
@Reference(mock="return 简单值")
@Reference(mock="force:return null")