作者回复: 同学理解的没错,预热其实就是给系统一段慢慢热身的时间段,不过发生阶段并非是在系统启动的时候,而是在系统长期处于低水位运行下突然接到大并发访问量的时候。
作者回复: 多谢同学提醒,copy的时候删错了一行
作者回复: 咱也不藏着掖着了,没错,一开始确实是拍脑袋哈,但会在业务过程中逐渐对这个值进行调整。 打个比方,像阿里双11之类的大项目会有一个“稳定性团队”,专门搞大促全链路压测之类的,在这个过程里,就可以观察到不同流量下系统的表现情况,结合压测报告对每个环节的服务进行熔断限流方案的微调
作者回复: 这个就需要分析sentinel的运行日志了,同学把log级别调低,抓一个留控请求跟一下日志。 还有一个更彻底的方法,本地启动sentinel开启debug端口,拉对应版本源码用remote debug方式去跟一个请求,能彻查具体哪个步骤问题的同时,还能了解一下底层逻辑。
作者回复: 同学有没有往项目里添加示例代码以外的依赖项呢?这个error也有可能是依赖冲突。建议先用gitee上的原样代码去执行一下,如果可以顺利启动,那么再打印dependency tree,看下是否有依赖项的版本不同或者额外dependency加入到了项目中
作者回复: Sentinel的热点规则是入门版,现实场景里更多的挑战来自于不可提前预测的热点,比如重磅微博之类,比较常见的做法是用stream技术,汇总分析链路/网关流量特征,对热点做实时打标之后,运行期创建热点限流规则
作者回复: 同学在页面上配置的链路流控策略也截图看一下,我猜想应该是参数的“入口资源”没有指定对,导致sentinel没有识别到上游流量入口
作者回复: ClientProtocolException是一个通用错误,在很多项目里都会碰到,通常是在url里没有指定protocol (比如http, https)导致的
作者回复: 队列是有超时时间的,可以在控制台设置,其实很像我们用MQ时候设置TTL,如果队列中的请求留存时间超出设置,那么就会被限流掉
作者回复: 马总语录这样说(PUA)道:加班是应该的,不加班也是应该的,只有完不成工作是不应该的