不要瞎写!不要瞎写!不要瞎写!
因为最近需要做一个滑动窗口式的限流器,本着不要重复造轮子的原则找一些开源的,但找了半天发现都是些单机版的,没办法就自己搞一个吧 不多介绍,就是一个基于redis的sorted-set写的滑动窗口式的频率控制器,可以支持多种限流策略组合,适合类似于push这类的需要频控的业务 Just show the code https://github.com/elangx/redis-ratelimiter
我的博客之前一直是用的jekyll,一个很简单的静态博客生成系统,好处是真的很简单,没有评论、热度这类动态数据,同时也不需要数据库,用运行环境,搞个nginx指一下webroot就行,也有不少主题插件。不需要关心有没有人攻击、数据泄露、篡改什么的,但同时也一直有个问题存在,那就是更新有点麻烦,需要在本地打包手动上传到自己的vps上,搞的过程很像一次手动上线,比较繁琐,前一段时间正好换了vps,正好重新搞一套。 从头说 服务器选择 放在境内还是境外?境内的话两个选择,一是我手里有个阿里云的ces,2核2G,到是正好能用;二是放到nas里,好处是本地部署,不用占用云服务器,但是我的域名在Godady,如果转到境内的话还需要转到国内域名商,实名认证,然后还得备案,虽然我之前有过备案经历(当初备案还要用一个特殊的背景布自拍……),但还是觉得太麻烦,而且不想网站下面写个IPC备案这样的文案,太丑了;于是觉得先放境外,之前的『搬瓦匠』IP因为我在上面搭了个自用的梯子结果ip被封了,而且『搬瓦匠』换IP得7美元,而且换完还不一定是通的,刚好也快到期了,就准备换个服务商,找个名气小一点的,找来找去决定
平时我们在调一些rpc/db数据或获取一些远程setting时,常常会把他们保存在本地cache里,但每次又需要考虑存本地全局变量还是cache组件,还要考虑序列化反序列化,保存时间,数据结构调整之类的事,导致一些类似的工作会搞好几遍。于是我就搞了这个duration_cache的东西,他只需要在你原先读取数据的基础上调整一行代码就可以帮你把数据保存起来,过期后再重新获取,一般是不需要考虑结构调整,也不自己处理过期,使用了泛型,所以支持所有类型数据。 具体本地缓存用的freecache,因为它支持单key过期时间,同时使用了zero-gc的策略,保证了性能,不过也不时动态扩容;另外有个点是每个key大小不能大于千分之一的总容量 另外使用了singleflight来保证不会有并发更新的问题 使用方法很简单: 原代码示例: cacheRs, err := cache.GetUser(ctx, 1234) if err == nil && cacheRs != nil { return cacheRs, nil } row, err := db.GetUser(ctx, 1234) if
现状 graph TB WIFI(交换机+WIFI AP) WIFI-->TV LAN1 --> WIFI optical-modem(光猫) --> ikuai WIFI-->LAN2 LAN2-->nas LAN2 --> debian12 WIFI --> cell1(手机1) WIFI --> cell2(手机2) WIFI --> computer1(电脑1) WIFI --> computer2(电脑2) WIFI --> Switch(Switch游戏机) subgraph PVE ikuai(ikuai主路由) --> openwrt(openwrt旁路由) openwrt-->LAN1(LAN1) LAN2 subgraph debian12 subgraph docker nginx bolg end end subgraph nas qbittorrent(qbittorent下载器) jellyfin(jellyfin视频服务器) nastools flaresolverr end
什么是ALL IN ONE 之前从v2ex上看到,中年油腻男的三大爱好是路由器、nas和充电头,虽然目前还感知不到充电头的魅力,但我一直是对nas念念不忘的,同时对软路由也是有点兴趣。 从当年最早的19年的蜗牛星际这类矿机开始,一直想着搞一台nas,只是拖着没下手,慢慢的蜗牛的价格涨了,做为所谓的垃圾佬觉得不管涨了多少,只要涨价那我肯定是亏了,这一拖时间更长了,直到最近家属特批了一笔自由资金,终于可以想着搞一台nas。 但是nas就是nas吗?当然不是,也要包含之前提到的软路由,另一个想要鼓捣的起点home-assistant,之后可以对接apple-tv、手机的影音服务器,自己网站服务器,偶尔会用到的windows等等都可以扔到上面,那就需要一台不止是nas的ALL IN ONE,通过虚拟化方式把这些系统都装在一起的机器。 怎么搞? 吹的这么多,其实就是个普通的台式电脑而已,这么说也确实是,而且正常来说还是个配置比正常低的多的电脑,但同时因为它的用途特点,也会有一些特别的地方: 24 * 7在线:nas这类设备一般是24小时全天开机,运行稳定正常的情况下几年不关机也很常见,所以要求
eLangX