风暴俱乐部|Sentinel:分布式系统流量防卫兵( 三 )


/** * 该类处理流控、降级的自定义返回 */@Componentpublic class UserCenterFeignClientFallback implements UserCenterFeignClient {@Overridepublic UserDTO findById(Integer id) {UserDTO userDTO = new UserDTO();userDTO.setWxNickname("默认用户");return userDTO;}}//name = "user-center" 表示调用的服务名称@FeignClient(name = "user-center",fallback = UserCenterFeignClientFallback.class)public interface UserCenterFeignClient {/*** 根据ID查询用户信息 , feign会自动帮我们转成* http://user-center/users/{id}** @param id* @return*/@GetMapping("/users/{id}")UserDTO findById(@PathVariable("id") Integer id);}八、Sentinel 规则持久化两种模式及生产环境使用前面我们在Sentinel控制台配置规则之后 , 只要我们重启应用 , 规则就会丢失 , 这显然是不能在生产环境使用的 , 那么有什么解决办法呢?1、推模式:扩展读数据源(ReadableDataSource) , 规则中心统一推送 , 客户端通过注册监听器的方式时刻监听变化 , 比如使用 Nacos、Zookeeper 等配置中心 。 这种方式有更好的实时性和一致性保证 。 生产环境下一般采用 push 模式的数据源 。
2、拉模式:扩展写数据源(WritableDataSource) ,客户端主动向某个规则管理中心定期轮询拉取规则 , 这个规则中心可以是 RDBMS、文件等 。
具体使用大家还是看看官方文档(在生产环境中使用-Sentinel)比较全面详细 , 这里我说一下第三种也就是使用阿里云ahas在生产环境使用Sentinel 。
3、生产环境使用Sentinel首先注册一个阿里云账号 , 然后访问
风暴俱乐部|Sentinel:分布式系统流量防卫兵我们按照这个文档进行整合(1)、加依赖
org.springframework.cloudspring-cloud-starter-alibaba-sentinelcom.alibaba.cspsentinel-transport-simple-httpcom.alibaba.cspspring-boot-starter-ahas-sentinel-client1.6.6(2)、加配置
ahas.namespace: defaultproject.name: content-centerok , 此时我们请求接口然后去阿里云控制台看看:
风暴俱乐部|Sentinel:分布式系统流量防卫兵好了 , Sentinel的学习就到这里了 , 喜欢的小伙伴记得点赞哦 。
下一篇 , 阿七将带大家深入研究消息服务RocketMQ , 关注阿七 , 持续为您带来更多更好的文章 。