Rhino是一个服务保护平台, 提供故障模拟、降级演练、服务熔断、服务限流等功能。
服务保护平台
Rhino是由技术工程部基础架构团队研发并维护的一个服务保护平台, 提供故障模拟、降级演练、服务熔断、服务限流及sop预案等功能。
Rhino 一词来自于犀牛的英文,用它坚硬的独角捍卫着领土,如同 Rhino 组件保障着自己所在服务的稳定性
Rhino 设计
1.1管理端
1、展示当前rhino组件的接入数据、进度和版本号
2、实时更新配置信息
3、其它功能
1.2客户端
1、rhino在客户端的设计上采用了代理模式,服务启动时,由spring自动生成添加了@Rhino注解的类的代理对象,通过该代理对象执行rhino的内部逻辑,并最终执行业务方的方法,期间rhino可以做很多事情,诸如故障模拟、熔断降级、服务限流等。
2、考虑到框架组件的接入,提供了API的方式。
1.2.1故障模拟
目前的故障模拟提供了进程级别的故障模拟,如服务的延迟和异常。
1.2.2熔断降级
1、记录接口每次调用的的总次数,成功次数,失败次数,后台线程统计当前时间前10秒(可配置)的接口健康状态:失败率,每秒统计一次
2、熔断降级设计
3、熔断触发策略:统计窗口的请求总数达到阈值 requestVolumeThreshold 并且失败率达到阈值