由简到繁,常见服务器结构优化演变

        虽然,单服结构简单,但并不一定能满足需求。服务器结构设计,很多一开始是很简单的,慢慢变得越来越复杂。

        个人比较反感,一上来就很复杂的做法,业务是慢慢变复杂的,服务器也应该是如此。至于,一开始简单到什么程度合适?这也得视情况而定。

        此前,便提到过单服结构怎么扩展,不过,就简单的描述了下,本文从另外一个角度延续这个话题。优化服务器,一般是哪里不足,优化哪里。

一. 多搞几台服务器,同一个程序多部署几套

        在不同的服务器上,把程序多部署一套,并不是所有程序都能这样。

        web服务,大部分都能在多台服务器上部署,实现负载均衡。这依托于两个关键点,一是http请求可依托域名解析(或者网络代理),另外一点是数据存储的分离。

        TCP请求,也一样可以通过类似方式实现负载均衡。不仅一样可以通过域名解析,也可以直接客户端选择接入点,又或者通过请求分配网络IP端口。同样,也可以使用一些TCP网络代理软件实现负载均衡。

        http请求和TCP请求,还是有点不同的,http请求,完事就真的完事了,而TCP得维护一个连接状态。此外,TCP链接很多还会做安全校验,当然不一定非要做,但加上这些都会复杂不少。

二. 对外网络,使用专门的服务器

        服务器,不同的硬件配置,其强项也不同。与其,搞一台各方面都很好的服务器,那还不如多搞几台各司其职,充分利用资源。优点很多,不仅更安全,更稳定,性能能更好,且可能还更省钱。

        服务器,只负责对外网络的收发,并不会很占内存,且对CPU要求没那么高,就更没硬盘什么事了,网卡好,带宽高,其他够用就行。

        web服务,增加对外的网络服务器,便是典型的网络代理,负载均衡方案。

        TCP服务,相对麻烦点,简单点的话,通过网络代理转发,又或者网关服务器集中收发。但是,出于降低内网的通信压力,在对外网络服务器上,做一些节流方案,那还是很有必要。

         说起节流,可能都没啥概念,但是换个说法可能就懂了,拿个业务功能来说:比如群聊。

        一句话发给所有人,如果是代理转发,或者集中收发,都没办法减少内网包。都是同样的消息内容,没必要一条条的展开重复发送。内部通信,只要发一条消息,然后把归属人带上,或者标记群组,对外网络服务器,再逐一发送,显然内网包就少了很多。

三. 数据存储优化,分库、主备和缓存

        除网络优化外,数据存储优化,是另一个优化点。数据库,暂且不说分表(这涉及业务设计),数据量一大,业务一复杂,分库是很有必要的。

        但是,分库也不是那么好分的,不行的话,先做个主从方案。主从方案,不光能用来备份数据库,也能优化数据库的访问。

        显然,单纯的数据库访问,并不能满足需求。这时候,可能会考虑使用内存数据库,甚至是开发数据存储服务。

        现在,很多应用都会使用Redis/MongoDB,也一样需要考虑使用多个服务器去部署。

四. 提取耗性能的点,部署特别服务

        很多功能,特别耗费性能,不方便放一起,需要额外的服务器来支持。有的功能,需要搭建复杂的服务,同样也需要专门的服务器。

        除此之外,服务器一多了,就更得考虑服务器的管理和监控,这些也需要额外的服务器来支持。

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

5北520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值