慌了,老大让我将线上的服务器升配,咋搞?

在业务高速发展的时候,后端的压力慢慢变大,服务器扩容在所难免。今天就聊聊扩容相关的问题。

首先我们看数据库的扩容,到底是加实例还是直接升配?

在创业初期,基本上都是单库的形式。比如最开始是4C8G的配置,到了某天数据库扛不住了,但是数据量其实没那么大,只是请求量上来了而已,或者由于研发写了很多复杂的Sql导致数据库性能下降了。

数据库加实例

这个时候最快的解决方式就是扩容了,首先我们来看加实例的方式,比如我们可以加N个从节点来提高查询的性能,可以对库进行垂直拆分或者水平拆分。

以上这些都是提高性能的方式,但是都有一个问题就是得改代码,还得测试,时间成本较高。

数据库升配

数据库升配指的是直接升级硬件层面的配置,比如4C8G升级到8C32G,性能直接大幅度提升。好处是应用代码都不用做任何改变,数据库层面直接升级即可。

当然也有需要注意的地方,如果你们是自建数据库的话,得进行数据迁移之类的操作。如果代码中的IP链接数据库的话得看IP会不会变,如果会变还是得改配置,重启应用程序。

如果用的云服务,一般都是用域名进行连接数据库,升配后连接断开也能重连。数据也不用我们操心,只需要在控制台点点按钮即可完成升配,就是有点费钱而已。

云服务升配特别需要注意的是一定要选择凌晨进行升配,在白天升配会有一定的影响。我们之前在白天升配过一次,升配失败,导致数据库无法响应。

服务器加实例

服务器加实例相对于数据库来讲会更简单,我们的后端服务都是无状态的,扩容也只需要有新的服务器,装个环境就可以直接部署了。如果用了Docker之类的容器就更方便了。

数据库加实例程序还得调整,后端服务加实例,不用改动代码。如果是服务层本身就用注册发现的机制,如果是web层,也只需要修改Nginx的配置即可。

所以建议大家在服务器需要扩容的时候尽量直接加机器,不用了也可以撤掉。

服务器升配

如果刚开始你的机器配置很低,比如2C4G这种,我建议你先升配。至少也得搞个4C8G的配置,不然性能太差了。

机器升配跟数据库一样,如果是自建的还好,直接将应用部署到新机器即可。如果是云服务,那么还是得选择凌晨进行升配,不能影响业务。

总结

创业初期,数据库尽量先升配,节约开发时间。数据量大了后在拆分多节点。

服务器配置低先升配,保证所有相同业务的部署机器一样的配置。如果配置不是很低,那么选择扩容节点,对业务没有任何影响,前提是服务需要无状态。

关于作者:尹吉欢,简单的技术爱好者,《Spring Cloud微服务-全栈技术与案例解析》, 《Spring Cloud微服务 入门 实战与进阶》作者, 公众号猿天地发起人。

posted @   猿天地  阅读(981)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2019-04-01 Sentinel Client: 整合Apollo规则持久化
点击右上角即可分享
微信分享提示