java分布式系统操作 java 分布式有哪些技术( 五 )


除了上面提供的各种路由负载均衡,还容许自定义路由规则:
– 条件路由:主要是通过条件表达式来实现;
– 脚本路由:通过脚本解析实现 。
其实应该还有一种客户端通过代码自定义路由选择 。这些主要是为了扩展性 。
路由策略定制
自定义路由场景:
1. 灰度;
2. 引流;
路由策略:
1. 框架提供接口扩展;
2. 配置平台提供路由脚本配置;
配置化路由

    本地配置:包括服务提供者和消费者,全局配置3种;注册中心:路由策略统一注册到服务注册中心,集中化管理;动态下发:配置后动态下发各服务消费端 。
集群容错 指的是服务调用失败后,根据容错策略进行自动容错处理 。
集群容错场景
通信链路故障:
    通信过程中,对方宕机导致链路中断;解码失败等原因Rest掉链接;消费者read-write socketchannel发生IOException导致链路中断;网络闪断故障;交换机异常导致链路中断;长时间Full GC导致;
服务端超时:
    服务端没有及时从网络读取客户端请求消息,导致消息阻塞;服务端业务处理超时;服务端长时间Full GC;
服务端调用失败:
    服务端解码失败;服务端流控;服务端队列积压;访问权限校验失败;违反SLA策略;其他系统异常;
业务执行异常不属于服务端异常 。
容错策略
这图不错,关系很清晰 。
失败自动切换(Failover):
    调用失败后切换链路调用;服务提供者的防重;重试次数和超时时间的设置 。
失败通知(FailBack):失败后直接返回,由消费端自行处理;失败缓存(Failcache):主要是失败后,缓存重试重发,注意:
    缓存时间、缓存数量;缓存淘汰算法;定时重试的周期T、重试次数;
快速失败(Failfast):失败不处理,记录日志分析,可用于大促期间,对非核心业务的容错 。容错策略扩展
    容错接口的开放;屏蔽底层细节,用户自定义;支持扩展 。
【java分布式系统操作 java 分布式有哪些技术】其实还有一点,感觉也挺重要,就是支持容错后本地mcok 。调用失败后的链路切换和快速失败肯定要支持,缓存重发可以不用 。

猜你喜欢