OpenResty历险记

OpenRestyLua大约 1039 字

背景介绍

由于后端服务运行在1核1G云机上,跑着Nginxphp-fpmMongoDBElasticsearchRedis,Swap了两G内存(自我安慰)。

到了每天阿里云扫描时段,短信告警一条接一条,CPU直接100%。

机器瓶颈

发现php-fpm占用了5个进程,每个进程大约100M内存,导致Es只限制了250M的内存上限,MongoDB更是只有150MNginxRedis一直在角落里瑟瑟发抖,OMG!

高级武器

OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

以前就了解过OpenRestyKong网关知乎静态资源CSDN等这些都是基于OpenResty。有这么多企业选择它,那我也就跟随大部队,追星一把。

陷入困境

经过几天的摸索,MongoDB可以由lua-resty-mongol实现连接,Redis由内置模块支持,页面渲染由lua-resty-template模板引擎可以搞定,但是有一个问题三天还没有解决。

将以Markdown标记的文章,转换为HTML的库有:

  • bungle/lua-resty-hoedown: bungle大佬作品,需要依赖Hoedown动态库(博主在Windows平台尝试多种方式未编译通过,*nix平台可以编译),末次更新2015/12。
  • mpeterv/markdown.lua: 纯lua语言实现,但渲染代码块有问题,末次更新2015/09。
  • asb/lua-discount: C语言实现,需依赖Linux中的Discount(yum/apt-get安装),无法在Windows调试开发,末次更新2010/05。
  • jgm/lunamark: jgm出品,Windows平台多次尝试未安装成功,末次更新2019/05。

目前还没有Windows平台可用的MarkdownHTML的解决方案。(伸手党,自己写不出)

如能帮助博主,请务必留言,多多感谢。

整装待发

项目后端打算使用OpenResty+PostgreSQL替换PHP+MongoDBMongoDB的数据同步将通过PostgreSQLFDW功能完成。

希望能一路顺利,少踩坑。

OpenResty见。

阅读 452 · 发布于 2020-02-15

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批