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


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

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

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

    数据库加实例

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

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

    数据库升配

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

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

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

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

    服务器加实例

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

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

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

    服务器升配

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

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

    总结

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

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

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

    欢迎大家关注我的微信公众号‘猿天地’, 猿天地由《Spring Cloud微服务-全栈技术与案例解析》作者尹吉欢创建。 JAVA方向为主(Spring Boot, Spring Cloud,Sharding JDBC,Elastic Job,Mongodb等)。 技术之路很漫长,我们一起前行吧。 作者代码分享GitHub地址:https://github.com/yinjihuan , 个人网站:http://cxytiandi.com/course , 有任何问题或者合作请联系我。微信号:jihuan900
  • 相关阅读:
    hdu 4474 大整数取模+bfs
    Codeforces Mafia
    hdu 4750 Count The Pairs(并查集)
    zoj 3659 Conquer a New Region(并查集)
    zoj 3656
    poj 3678 Katu Puzzle(Two Sat)
    UVa 11235 RMQ
    hdu 4768 Flyer (二分)
    hdu 4762 Cut the Cake概率公式
    Ural 1046 Geometrical Dreams(解方程+计算几何)
  • 原文地址:https://www.cnblogs.com/yinjihuan/p/14605827.html
Copyright © 2020-2023  润新知