- 网关集中买点,覆盖大部分应用场景
搞定网关上的限流熔断可以解决绝大部分场景,其他的限流熔断埋点可以根据实际情况去做细化 比如杨波老师说的携程在调用三方接口去查询机票信息的时候,需要调用航空公司自己的接口 有比如,我之前做过保险报价平台,需要并发调用多家保险公司的接口进行报价 像这些依赖的三方接口可以做一些限流熔断是非常有必要的。
-
尽量框架集中埋点,客户端为主
一般是客户端调用服务端的时候进行封装的
-
配置对接配置中心比如Apollo,根据实际情况动态调整配置阈值
-
信号量隔离VS线程池隔离
- 信号量:如果是网关的话一般使用信号量,还有一些缓存的请求也是信号量
- 线程池:服务间调用客户端,数据库访问,第三方调用,有性能消耗
-
线程池大小经验
30 rps x 0.2 sec = 6 + breathing room = 10 threads Thread-pool Queue size: 5~10
-
部署部分
- Hystrix Dashboard 大盘(无线/H5/第三方网关)实时监控进入网关的流量
- 共享Hystrix Dashboard/Turbine服务器,公司小组间内部尽量共享。
- 熔断告警
-
如果使用了Springboot框架可以使用SpringCloud Hystrix进行开发,降低了开发难度