《架构世界》2020微服务刊:微服务分布式事务实战
上QQ阅读APP看书,第一时间看更新

3.微服务治理

实例上下线

通过设置实例的状态,使得实例不会被其他应用调用。这个是在客户端实现,客户端是通过ribbon做负载均衡,ribbon会过滤掉状态为OUT_OF_SERVICE的服务提供者实例。

API上下线

通过设置API的状态,使得API不会被其他应用调用。这个是在服务端实现,通过在服务端增加Filter拦截器,对已下线的API的请求访问,返回403的状态码。

熔断

EOS的熔断实现使用的是Hystrix,通过在页面配置熔断对象以及触发条件来设置断路器。熔断对象对应的是HystrixCommandKey,触发条件包括:

• 手工熔断(强制打开熔断器)

• 取消熔断(强制关闭熔断器)

• 自动熔断(规定时间内请求数超过阈值并且失败率达到阈值才会触发熔断,熔断后指定时间内尝试取消熔断)

这个配置通过写入到配置中心及时下放到各个应用,实现动态配置能力。

限流

EOS现在的限流是对于每个应用实例独立计算,如设置每秒访问10次,一个应用有3个实例,则这3个实例每个都允许每秒访问10次。限流是通过在服务端的Filter里使用GuavaRateLimiter实现。

这个配置通过写入到配置中心及时下放到各个应用,实现动态配置能力。

负载均衡

EOS的负载均衡使用的是Ribbon实现,可以针对每个目标客户端设置规则类型,支持:随机、循环、自定义等;另外还支持容错,容错是指当对某个实例的调用超时后的补救措施:

• 快速失败(Failfast):什么也不做,直接抛出异常

• 失败自动切换(Failover):尝试访问新的实例,按指定次数尝试

• 失败原地重试(Failback):尝试访问同一实例,按指定次数尝试

这个配置通过写入到配置中心及时下放到各个应用,实现动态配置能力。

以上向大家分享了普元EOS 8微服务平台里治理与统计分析,希望对大家有所帮助。不足之处,也请多多指正。


推荐阅读

谈谈微服务平台之灰度发布

微服务编排之道

普元微服务平台EOS Platform 8全新发布


关于作者:八点十分,普元信息高级软件工程师,开源技术爱好者,容器技术专家,曾参与浦东发展银行BPM项目、银联PAASV1等项目。