论代码标准的重要性
最近在重写Hostker的CDN,以前团队内部就存在nginx和squid选择的争议,我是站在nginx这边的,现在nginx遇到了内存问题,责任也就落到我头上。
传统的nginx已经满足不了Hostker各种变态的需求,我们内部使用了LUA对nginx进行一些扩展开发,比如anticc、防盗链等。对LUA用得越多,问题就越多,主机的增长导致配置文件越来越长,reload时间竟然要用秒计算,眼看着要破10秒,队列也拯救不了(anticc等紧急情况会插队立即发送重载命令),内存占用也在直线上升,可以预见未来要整天蹦出来的oom了,注定只能重写。
Hostker采用内网单一入口模式,squid可以做到不需要任何配置更新。新版CDN只重写nginx,采用的是单主机模式,不需要任何reload,一切配置都从内存直接取出,更新配置也是直接对内存写,读性能最高可达10万qps以上,可以满足未来CDN的需求。
不知道屏幕前的你有没有发现,扯了这几段,跟标题一点关系都没有啊(╯‵□′)╯︵┻━┻其实这次的坑和上面几段只有间接关系而已,上次被人吐槽字数太少所以太水所以我多写了点。
Hostker控制面板CDN部分的防盗链部分其实从内测期的旧版UI开始就是现在的样子,当时客户中心并没有采用ajax更新,php多人开发经验不足,造成了标准不规范,同Action下竟然负责了模板渲染和业务逻辑两个内容,采用判断表单里的submit是什么值来进行不同的业务逻辑,代码混乱不堪。
不仅是Action,Model也有问题。为了防止字段过多我脑子进水得把一大坨配置用json塞进了单个字段,控制面板在读写配置的时候需要一堆重复动作来处理这个地方,但是实际上几十个字段还是可以接受的嘛。为了省字段让代码变得很难看,重写的时候就会吐血过多身亡的!当初根本不懂优化为什么要乱优化!不作死就不会死!虽然现在也不懂优化就是了/w\
当初种下的恶果现在自己吃,开始重写恶心的防盗链惹。所以说我不适合码代码啦我不是程序员啦(╯—﹏—)╯( ┷━━━┷
不是程序员也是菊苣啦\(//∇//)\
你见过不懂优化的菊苣?我是渣渣!
030新喵菊苣~
嘛,比咱厉害多了orz
渲染和业务同时写的后果就是,再也不想维护这代码了。重新写一个还不算
毕竟是守护女
nginx reload竟然要10喵,你到底在上面挂载了多少奇怪的东西?
不是程序员也是菊苣啦\(//∇//)\
菊苣地图炮QAQ
啊啊啊啊,代码标准!要画阿卡林!
T_T 论如何写持久地写博客。
新喵棒棒哒~