1核2G服务器如何做到最高效使用?
看到标题,你可能认为这是在教你选择腾讯云的服务器,其实这不是一篇介绍服务器配置选择的文章,这个一篇如何使用最低配置来支持高并发的文章。
为什么是 1核2G服务器 ,这个可能是现在最低的服务器配置了,刚看了一下腾讯云官网,最低配置是 2核2G
好吧,今天以我很久之前买的 1核2G服务器说起。
假设我们是做一个内容的网站,如何做到高并发?
你要做一个系统,首先是得采用一种编程语言,市面上那么多的编程语言,PHP 、java、Python、go 我们选择什么呢 ?
当然我们在这里选择go语言。为什么选择go语言呢? 它被誉为21世纪的C语言,可以做到执行效率和开发效率的兼顾,执行效率可以媲美C语言,开发效率可以跟PHP有一拼,所以使用go语言可以最大限度的发挥服务器的性能,不会在一些额外的性能开销。
你可能会说,使用go语言来做一个cms,太慢了,我们可以使用现有的框架,现在的框架不比PHP时代少,是更多了。
下面是go-web-framework-benchmark 上面进行的go语言的framework的评测:
我也是看了这个评测,从中选择一个 并发效率最高,内存占用最少的(因为咱们只有2G内存),经过一番调研,
我选择了 fiber框架,
Fiber 是一个受到 Express 启发的 Web 框架,基于使用 Go 语言编写的最快的 HTTP 引擎 Fasthttp 构建。旨在通过零内存分配和高性能服务,使快速开发更加简便。
这个框架做到了 效率最高,内存占用最少。
这个框架有很多有点,除了上面说的 性能最高,内存占用最少,还有下列优点:
- 强大的路由
- 静态文件服务
- 极限性能
- API 接口
- 中间件和 Next 支持
- 快速服务器端编程
- 模版引擎
- WebSocket 支持
- 频率限制
我比较喜欢的是它的中间件,这个中间件跟 laravel 的middleware 使用上都是想通的,迁移过来一点压力没有。
还有他的路由,比其他的框架强大不少,路由的参数可以支持限定,例如下面的是不是bool类型,是不是float类型,当然还支持正则表达式:regex(expression) ,使用起来真是太方便了
这是介绍了gofiber的强大功能。我们就采用这个来进行开发,文档也比较齐全,能充分发挥1核2G服务器的最高效率。
当然有的同学可能跟我说,你为啥不用rust,为啥不用C ,这些都是可以的,你也可以使用这些做服务,我采用go是考虑了我学习的成本,开发的成本、执行和开发效率等等。
明天再说说开发中的事情。