Fork me on GitHub
Alibaba Sentinel规则持久化-推模式-手把手教程【基于Nacos】

Alibaba Sentinel规则持久化-推模式-手把手教程【基于Nacos】

前面,已经为Sentinel实现了 基于拉模式的规则持久化 ,本文来实现基于 推模式的规则持久化。 一、推模式架构图 TIPS 图片来自官方。 引用自 https://github.com/alibaba/Sentinel/wiki/在生产环境中使用-Sentinel 二、原理简述 控制台推送规则: 将规则推送到Nacos或其他远程配置中心 Sentinel客户端链接Nacos,获取规则配置;并监听Nacos配置变化,如发生变化,就更新本地缓存(从而让本地缓存总是和...

Alibaba Sentinel 规则持久化-拉模式-手把手教程【基于文件】

Alibaba Sentinel 规则持久化-拉模式-手把手教程【基于文件】

本文实现基于拉模式的Alibaba Sentinel规则持久化。 一、拉模式架构 TIPS 图片来自官方。 引用自 https://github.com/alibaba/Sentinel/wiki/在生产环境中使用-Sentinel 二、原理简述 FileRefreshableDataSource 定时从指定文件中读取规则JSON文件【图中的本地文件】,如果发现文件发生变化,就更新规则缓存。 FileWritableDataSource 接收控制台规则推送,并根据...

SentinelResource注解 属性总结

SentinelResource注解 属性总结。 本文基于Sentinel 1.6.2,理论支持1.4.0+ 属性 作用 是否必须 value 资源名称 是 entryType entry类型,标记流量的方向,取值IN/OUT,默认是OUT 否 blockHandler 处理BlockException的函数名称。函数要求:1. 必须是 public 2.返回类型与原方法一致3. 参数类型需要和原方法相匹配,并在最后加 BlockExcepti...

Alibaba Sentinel 规则参数总结

Alibaba Sentinel 规则参数总结

本文总结了Alibaba Sentinel各种规则的参数。 基于Sentinel 1.6.2编写,未来如果本文不再适用,可自行点击每一节 参考 一览的链接前往查看如何配置。 一、流控规则1.1 配置 1.2 参数 Field 说明 默认值 resource 资源名,资源名是限流规则的作用对象 count 限流阈值 grade 限流阈值类型,QPS 或线程数模式 QPS 模式 limitApp 流控针对的调用来源 default,代表不...

Feign常见问题总结

TIPS 本文基于Spring Cloud Greenwich SR1,理论支持Spring Cloud Finchley及更高版本。 本文总结Feign常见问题及解决方案。 一、使用案例 如何使用Feign构造多参数的请求 使用Spring Cloud Feign上传文件 使用Feign实现Form表单提交 二、FeignClient接口如使用@PathVariable ,必须指定value属性代码示例: 123456@FeignClient("micro...

如何使用Feign构造多参数的请求

TIPS 本文基于Spring Cloud Greenwich SR1,理论上支持Finchley及更高版本。 本节来探讨如何使用Feign构造多参数的请求。笔者以GET及POST请求为例讲解,其他方式(例如DELETE、PUT等)的请求原理相通,读者可自行研究。 GET请求多参数的URL假设需请求的URL包含多个参数,例如http://microservice-provider-user/get?id=1&username=张三 ,该如何使用Feign构造...

扩展Ribbon支持Nacos集群配置

在Nacos上,支持集群配置。集群是对指定微服务的一种虚拟分类。集群还是比较有用的,例如: 为了容灾,把指定微服务同时部署在两个机房(例如同城多活【其中1个机房崩溃另一个机房还能顶】、异地多活【防止自然灾害,例如地震什么的】),比如南京机房和北京机房。 调用时,可优先调用同机房的实例,如果同机房没有实例,再跨机房调用。 当然cluster还有很多其他作用,请各位看客自行脑补,本文将围绕上面描述的场景展开。 虽然Spring Cloud Alibaba支持集群配置...

扩展Ribbon支持Nacos权重的三种方式

Nacos支持权重配置,这是个比较实用的功能,例如: 把性能差的机器权重设低,性能好的机器权重设高,让请求优先打到性能高的机器上去; 某个实例出现异常时,把权重设低,排查问题,问题排查完再把权重恢复; 想要下线某个实例时,可先将该实例的权重设为0,这样流量就不会打到该实例上了——此时再去关停该实例,这样就能实现优雅下线啦。当然这是为Nacos量身定制的优雅下线方案——Spring Cloud中,要想实现优雅下线还有很多姿势,详见:《实用技巧:Spring Cloud中...

搭建生产可用的Nacos集群

搭建生产可用的Nacos集群

TIPS 本文使用Nacos 1.0.1 + MySQL 8.0,理论兼容Nacos 1.1.3 前面部署的是单机版的Nacos Server,这一般不适用于生产。 本节详细探讨如何搭建一个生产可用的Nacos集群。讨论的内容主要包括:使用MySQL作为存储持久化数据,以及如何搭建Nacos集群。 一、部署架构图部署架构图如下: 二、安装MySQL数据库生产环境需使用MySQL作为后端存储,因此需要搭建MySQL。生产中,MySQL建议至少主备模式,高可用My...

Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案

Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案

相信使用Mybaits的小伙伴们一定会经常编写类似如下的代码: 可以看到 userMapper 下有个红色警告。虽然代码本身并没有问题,能正常运行,但有个警告总归有点恶心。本文分析原因,并列出解决该警告的几种方案。 原因众所周知,IDEA是非常智能的,它可以理解Spring的上下文。然而 UserMapper 这个接口是Mybatis的,IDEA理解不了。 而 @Autowired 注解,默认情况下要求依赖对象(也就是 userMapper )必须存在。而IDEA认为...