• Shliesce
    2019-08-23
    正在写一个与consul联动动态更新upstream的插件,我们之前使用的微博upsync模块功能不是太理想。目前我也是把upstream信息放在shared dict中的,因为consul自带的就有long polling和index,我考虑把index和value分别存在两个shared dict中,这样定时器只会频繁地访问index这个shared dict,减少全局锁对其他worker的影响,但是我估计性能还达不到我们产线量级的要求,就像老师说的每次请求都要反序列一次,后续可能会再引入lru cache。。老师有什么好的建议吗?

    作者回复: 建议看看 lua-resty-mlcache,等于多加一层 lru cache。mlcache提供了 `l1_serializer`,专门用于处理 shared dict 提升到 lru cache 时候对数据的处理,可以尽可能的减少序列化。

    
     1
  • 许童童
    2019-08-23
    跟着老师一起精进。
    
    
  • helloworld
    2019-08-23
    赞👍
    
    
  • Rye
    2019-08-23
    正在写API网关的插件,也用了sharedict,感谢老师的思路。sharedict和lru确实有点难两全的感觉。
    
    
我们在线,来聊聊吧