首页 > 其他分享 >由简到繁,常见服务器结构优化演变

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

时间:2024-08-29 17:52:40浏览次数:10  
标签:请求 演变 数据库 网络 TCP 简到繁 服务器 优化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

标签:请求,演变,数据库,网络,TCP,简到繁,服务器,优化
From: https://blog.csdn.net/qq270232487/article/details/141681541

相关文章

  • EventSource事件流(允许网页与服务器之间建立一个持久的连接,服务器可以通过这个连接向
     EventSource是JavaScript中用于处理服务器发送事件(Server-SentEvents,SSE)的接口。它允许网页与服务器之间建立一个持久的连接,服务器可以通过这个连接向客户端推送更新。EventSource通常用于需要实时更新数据的场景,比如实时通知、股票价格更新等。 基本用法//创建一......
  • 监控Nginx负载均衡后端服务器状态的策略与实践
    在Nginx负载均衡的部署中,监控后端服务器的状态对于确保高可用性和服务连续性至关重要。通过检测后端服务器的状态,可以及时发现问题并采取措施,如故障转移或服务重启。本文将详细介绍如何检测Nginx负载均衡后端服务器的状态,包括监控方法、工具使用、配置实现以及自动化告警。......
  • SQL Server 链接服务器(Linked Servers)
    通过T-SQL语句来添加、删除或修改链接服务器配置进行跨数据库、跨实例或甚至跨数据库系统的数据集成和查询 SELECT*FROMsysservers可以查出当前SQLServer实例上配置的所有链接服务器的列表及其相关信息 sp_addlinkedserver[@server=]N'server'[......
  • Traccar服务器端前后端部署流程
    Traccar官方文档地址:BuildfromSource-Traccar由于官方文档本地部署步骤并不详细且无法复现,本文档从环境配置到运行代码一步一步进行操作教学:第一步:下载git打开该链接下载gitGit-DownloadingPackage(git-scm.com)下载安装包后打开按默认选项安装  ......
  • 服务器出现 HTTP 错误代码,及解决方法
    HTTP400-请求无效HTTP401.1-未授权:登录失败HTTP401.2-未授权:服务器配置问题导致登录失败HTTP401.3-ACL禁止访问资源HTTP401.4-未授权:授权被筛选器拒绝HTTP401.5-未授权:ISAPI或CGI授权失败HTTP403-禁止访问HTTP403-对Internet服务管理器的......
  • Oracle同一台服务器创建多个数据库
    有时候我们需要再同一台机器上创建多个数据库服务(不是单纯的数据库实例),每一个数据库可以有单独的服务运行,只是在一个机器环境而已。可以在不同的端口上监听,也可以在相同端口监听创建多个数据库步骤安装完Oracle数据库后,会自动安装很多工具,这里我们使用DatabaseConfiguration......
  • 生信学习好帮手——生信云服务器,分析更[省心]的云
    开篇生物信息学(Bioinformatics)相关领域的快速迭代带来了学习门槛的显著变化,呈现出一种k型分化。一方面,人工智能(AI)和云计算技术的融合降低了原本高门槛的生物信息学技术的入门难度。另一方面,随着越来越多的研究者涌入这一领域,发表文章的难度也随之增加,这要求研究者在专业......
  • 运维总监让我管理 4 万台服务器,这可能吗?
    今天看到这样一个问题:"一个运维可以管理4万台服务器吗?" 问题地址:https://www.zhihu.com/question/386653243背景介绍 看到这条评论我惊呆了,脑子有些懵,我想问问真的一个人可以管理4万台服务器吗?不论是实例还是物理机都算。国内哪些厂商有这么大规模的服务器机群和集群?大厂......
  • 一个人管理 4 万台服务器,看看大家怎么说
    今天看到这样一个问题:"一个运维可以管理4万台服务器吗?" 问题地址:https://www.zhihu.com/question/386653243背景介绍 看到这条评论我惊呆了,脑子有些懵,我想问问真的一个人可以管理4万台服务器吗?不论是实例还是物理机都算。国内哪些厂商有这么大规模的服务器机群和集群?大......
  • 一个运维可以管理4万台服务器吗?
    今天看到这样一个问题:"一个运维可以管理4万台服务器吗?" 问题地址:https://www.zhihu.com/question/386653243背景介绍 看到这条评论我惊呆了,脑子有些懵,我想问问真的一个人可以管理4万台服务器吗?不论是实例还是物理机都算。国内哪些厂商有这么大规模的服务器机群和集群?大......