【网站架构】服务器弹性伸缩不能全自动,实际如何追加服务器
创始人
2024-02-09 16:44:40
0

大家好,欢迎来到停止重构的频道。

本期,我们讨论大型网站的伸缩性

伸缩性指的是通过自动增减服务器数量以适应用户量或压力。

这些年,微服务、ServerLess、K8S等技术,都让人有一种服务器自动伸缩很容易实现的错觉

其实,想要实现服务器完全自动伸缩是一件十分困难的事情

我们按这样的顺序讨论:

1、自动伸缩服务器的难点在哪

2、数据服务软件为什么扩展服务器非常困难

3、如何处理数据服务软件扩展困难的问题 

自动伸缩服务器的难点在哪

在前面《部署架构》里说过,一个网站系统是由4部分组成的,分别是前端部分、后端部分、数据部分、云计算部分

前端部分由于可以接入CDN 所以基本不会出现性能问题。

 后端部分采用微服务且解决好共享session的话,服务器扩展也是十分简单的。

云计算部分的话,如果采用一些分布式框架,如我们研发的Hive框架,云计算服务器扩展也是十分简单的。

但是数据部分的扩展确实是一件特别麻烦的事情,数据部分包含MySQL等数据库、Redis等非关系型数据库、RabbitMQ等消息队列等等。

所以网站系统伸缩服务器的难点在于数据服务软件上

数据服务软件为什么扩展服务器非常困难

当然,数据服务软件一般都有集群方案,感兴趣的小伙伴可以翻看之前介绍。

那为什么说数据服务软件的扩展特别困难呢?不是都有集群方案吗,加一台服务器到集群应该不麻烦吧。

数据服务软件的集群方案一般有2种 :

一种是所有服务器镜像存储数据,数据库主从读写分离也是这种模式。

每次更新数据时需要做多服务器的数据同步。

如果需要新增一台服务器的话,新服务器需要同步所有数据,而同步数据是需要时间的,数据量大的话所需时间会特别长(十分不现实)。

另一种是分片存储,集群中的每个服务器只负责处理一部分数据,这是MySQL等关系型数据库常见的集群模式。

这种集群方式虽然说扩展服务器不需要同步数据,但是新扩展的服务器其实并不能缓解压力,因为数据压力仍然集中在旧服务器上。

 除了以上的问题,还有请求均衡的问题,一般需要额外增加中间件实现请求均衡。

另外,一些数据服务软件集群只能手动添加服务器(需要手工配置重启)。

所以数据服务软件的服务器扩展特别麻烦,而且扩展服务器也不一定能提升性能。

如何处理数据服务软件扩展困难的问题 

那如何处理数据服务软件扩展困难的问题呢?

一般是预先扩展,我们的做法是让数据服务软件都拥有目标性能的两倍当突发情况发生时,就可以通过快速扩展后端服务实现2倍性能扩展

如果是有大型活动,则提前扩展好数据服务软件的服务器。

另外,一个网站系统最好不要采用单数据软件实例的做法,最好根据业务模块分离多数据软件实例。

这样,一开始压力不大时可以多实例部署在一台服务器上,压力上来了,可以立马分离服务器并实现集群

但是,正如前面性能那一期所言,数据服务软件的性能是有极限的,不可能通过增加服务器以扩展无限性能。

所以,终究还是需要跳出 “扩展服务器就能扩展性能的误区”。

在性能要求特别高时,需要考虑编程方案以突破性能瓶颈。

比如,对于点击量观看量这些频繁更新的数据,可以先在Redis中增加,然后再定期写入数据库。

对于大量统计信息,可以先放到KafKa,然后再慢慢处理。

​对于一些修改概率特别低的数据,可以考虑静态化,这样就可以利用CDN缓解性能压力。

总结

网站系统的伸缩性,虽然理论上是可以做到自适应用户量的,但是现实其实很难做到,至少现在还比较困难。

最后,作为工程师,我们不要过分依赖某个软件或框架,比这更重要的是清楚软件系统的核心问题,并根据实际情况调整解决方案。

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...