• 钢
    2019-09-24
    老师,前阵子志玲结婚消息引起微博瘫痪,能分析下当时具体情况吗,是哪个扩容,限流,熔断中哪个环节引起的,后面又是如何改进的

    作者回复: 抱歉,尽量不在这里讨论公司相关的话题。

    
     4
  • 东东🎈
    2019-09-23
    老师,问个设计问题,发群消息的时候,怎么查询这个群的在线用户列表?

    作者回复: 个人觉得不需要针对群来维护在线状态,直接把所有群消息都pub给网关机,网关机根据本机维护的“当前这条消息的群的用户哪些在我本机上”这个映射来下推就可以了。

     4
     2
  • 钢
    2019-09-23
    在全链路压测监控中,统计哪个模块最脆弱,得出该模块最大访问次数,实际应用中对该模块请求次数进行统计,超过最大访问次数则进行熔断
    
     1
  • _CountingStars
    2019-09-23
    老师,流控令牌的本地批量预取,是单线程负责维护的吗?如果多线程是不是要使用锁来控制并发修改数据问题?这样不会把请求的响应时间拉的很长吗?

    作者回复: 可以使用原子性的、线程安全的数据结构来存储令牌,比如AotomicLong等,这种数据结构支持一次decr多个而且能保证线程安全和高性能的。

     1
     1
  • Geek_e986e3
    2019-09-23
    感觉应该用最近请求x次 失败y次做阈值?还有老师 想问问 降级的时候一般都是怎么处理的 是直接对外反馈服务不可用吗? 或者返回之前缓存或者默认值之类的吗?

    作者回复: 失败需要熔断,超时同样也需要熔断,要不然也会把服务拖死。降级的话看情况吧,如果是旁路非核心,对用户影响不大的可以直接“轻微有损返回”,对于核心的链路的熔断,可以直接返回失败让用户重试(熔断的价值在于避免服务整体不可用),或者通过重试队列把当时失败的请求先buffer起来后续恢复后再继续处理。

    
     1
  • 饭团
    2019-09-23
    老师。请问做限流有好的开源代码推介吗?虽说原理很简单,但是对于没做过的人还是看看具体的实现比较好!
    至于老师的问题!我感觉在服务上线前肯定会做压力测试!我们是不是可以记录下当时的各项服务的指标,当我们线上服务单位时间内服务的10%或者一个合适的比例,超过相应指标的时候就得做熔断了!

    作者回复: 单机限流推荐guava的RateLimiter,全局限流直接基于Redis+Lua写一个很简单。
    对,限流阈值需要模拟压测,避免由于阈值设置太宽松导致服务仍然可能被拖死或者阈值太敏感导致一点抖动也会整体熔断。

    
     1
  • HelloTalk
    2019-10-06
    自动熔断机制中,如何来确认 Fail-fast 时的熔断阈值(比如:当单位时间内访问耗时超过 1s 的比例达到 50% 时,对该依赖进行熔断)?

    一方面做压力测试 另外一方面可以做半熔断机制 结合流控 只放行50%的流量。
    
    
  • Ray
    2019-09-28
    有时候一个交互需要多个接口组合。举个不恰当的例子,比如登录,要验证密码,还要验证验证码,甚至可能还要调用第三方接口做一些验证。这种场景下如果去对每个接口单独限流,必定导致整体登录失败率大大提高,请问这种场景怎么进行限流

    作者回复: 不知道我理解对没,如果是要限制这个交互的频次,可以在这个交互的入口接口进行限流就可以呀。

     1
    
  • 东东🎈
    2019-09-27
    老师,对于netty的单机服务端收消息流控方案,高低水位好还是guava好?

    作者回复: netty的水位应该只是和tcp buffer相关的,如果需要消息条数维度的控制还是guava。

    
    
  • Keep-Moving
    2019-09-23
    流控实现的两大算法:
    1. 漏桶算法
    2.令牌桶算法
    
    
我们在线,来聊聊吧