小网站架构优化-提升抗并发能力:子应用程序分离方案

简介:
前言:
标题为啥要加个“小”,只因为上一篇文章“ 小网站架构优化:从100并发抗到4000并发”,带了个“小”字,所以这篇也顺流加个“小”了。

大意“小”是特指秋色园(流量小,服务器配置低)的意思,毕竟文章都是从实战后才写出来的。

关于现实网站的抗并发实情:

由于每个网站的性能点,最后都离不开抗并发这一话题。


也许,网站本身并没有那么多并发访问,但为何还要抗并发?

因为现实不是每个人都是善良的,商业竞争也很激烈,竞争对手间时不时的互相攻击网站也很普遍。

昨天才一网友向我说起,他朋友的网站,逢周一就会被竞争对手攻击,导致业务无法开展,换服务器也无济于事。

所以,提升网站的抗并发能力,除了抵抗用户的高峰期访问,也是是自我网站保护的一种手段。

什么样的站点能抗的起高并发?

若除却外部带宽等因素造成的外部影响,则内部答案只有一个:静态网站。


静态网站何以能抗高并发?

因为静态页面据说在操作系统内核级就能缓存数据并做出响应,所以抗并发能力理论上是最强的。


所以,你看看电商网站,除却技术背后的实现,你能看到的页面,多数是静态页面。


所以技术的背后是Java还是.net还是php,看似就不是那么的特别了。


当然了,也不是所有站点都适合静态化,所以技术架构优化显的特别的重要。

根据某网友提供的数据,仅供参考:

CSDN首页的文章:2000并发以下挂了,这块是java提供服务。

而CSDN的博客:能顶好万级的并发,这块是ASP.NET提供服务。


而CSDN的论坛:能顶好几十级以上的并发,这就是静态化的结果。


所以那篇很火的“去.NET化的文章”,可能是作者个人意淫, 当然了,这些数据可能也是意淫的结果,不一定所属事实。

所以,要提高抗并发数,高配的服务器不是全部,还需要合理的代码架构优化:


本次实践分离方案的背景:
在秋色园系统的优化文章中,都似多似少的提到了搜索这块引发的CPU命案。

某天,我想起了“ IIs 网站应用程序与虚拟目录的区别及高级应用说明”这篇文章的内容。


有了想把搜索独立出去的想法,这样即使搜索挂了,也不影响网站访问,更不用担心搜索引发的CPU命案。

构思中:

于是三七二十七,就开始想了:

目前秋色园的URL搜索这一块为:www.cyqdata.com/search/类型/搜索内容。


而文章的关键字(一般博客为设置为tag,引到文章,而我是引到搜索区)。

想了两种方案


A:是弄个二级域名,建个网站来运行,这个需要动点代码:
这种方案,要修改URL变为so.cyqdata.com/类型/搜索内容,看似改动不少,需要调整URL机制和301处理,预计整体在30-60分钟内应该可以解决完。

这种方案的好处是,后续扩展可以部署到其它服务器。

B:直接使用子应用程序,可以不改动代码,直接把搜索这块分离独立子应用程序运行:

这种方案,代码不用改,因为根据search建立子应用程序即可。

这种方案,一般就局域服务器只能在局域网内了。

方案选择:

综合秋色园目前的情况,也就一台VPS。

两个方案的区别就在于动代码和不动代码了。
后来我选择了不动代码,因为实际的效果几乎是一样的,所以就不动代码了。

方案二实施过程:


1:在IIS 6 里新建一虚拟目录search,创建右键属性,应用程序名那里对应的按钮点击“创建应用程序”然后虚拟目录就转化为应用程序了。

2:项目路径还是原来的项目路径,然后设置新的应用程序池,最终如下图:

总结:

一般一个项目大了后,或者逻辑变的复杂后,往往的解决方案就是分解成子项目。

而分解的方案:一般是根据域名,或首页节点目录。


后来思绪了一下,比如目前博客的URL是:xxx.com/cyq1162/admin/...
如果一开始考虑把它设计成:xxx.com/admin/cyq1162/...
这样是不是也就可以轻松的把博客的前后台分离开来。


当然了,分成多个进程,是需要思考,是否有涉及直接的通讯。

文本就介绍到这里了,仅提供一种参考方案。




     本文转自cyq1162 51CTO博客,原文链接:http://blog.51cto.com/cyq1162/1211354,如需转载请自行联系原作者




相关文章
|
21天前
|
存储 数据挖掘 BI
2-5 倍性能提升,30% 成本降低,阿里云 SelectDB 存算分离架构助力波司登集团实现降本增效
波司登集团升级大数据架构,采用阿里云数据库 SelectDB 版,实现资源隔离与弹性扩缩容,查询性能提升 2-5 倍,总体成本降低 30% 以上,效率提升 30%,助力销售旺季高效运营。
97 9
|
23天前
|
机器学习/深度学习 存储 人工智能
RAG系统文本检索优化:Cross-Encoder与Bi-Encoder架构技术对比与选择指南
本文将深入分析这两种编码架构的技术原理、数学基础、实现流程以及各自的优势与局限性,并探讨混合架构的应用策略。
112 10
RAG系统文本检索优化:Cross-Encoder与Bi-Encoder架构技术对比与选择指南
|
5月前
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
145 0
|
1月前
|
数据采集 机器学习/深度学习 运维
从数据感知到决策优化:MyEMS 开源能源管理系统的技术架构与实践效能解析
MyEMS 是一款开源能源管理系统,采用分层解耦与模块化设计,支持多能源协同监测与智能优化调度。系统具备数据采集、分析、预警、碳核算等功能,助力企业实现节能降耗、安全管控与低碳转型,已在百余家全球企业落地应用,具备自主可控、成本低、安全性强等优势,面向虚拟电厂、数字孪生等未来场景持续演进。
94 0
|
5月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
465 69
|
2月前
|
缓存 Java 数据库
Java 项目分层架构实操指南及长尾关键词优化方案
本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
137 2
|
3月前
|
监控 搜索推荐 应用服务中间件
301重定向:网站迁移、SEO优化与架构重塑的核心引擎
301重定向是数字世界中确保网站迁移无缝过渡的关键策略。它通过HTTP状态码告知浏览器和搜索引擎资源的永久迁移,帮助维持权重传递与用户体验。本文深入解析301重定向的工作机制、SEO影响及实施策略,涵盖域名迁移、HTTPS升级、URL标准化等场景,并提供服务器配置示例(如.htaccess和Nginx规则)。同时,强调避免重定向链、循环等问题,推荐使用专业工具监控效果。掌握这些技巧,可确保网站在架构调整或迁移时保持流量稳定与搜索引擎信任,成为网站管理不可或缺的战略工具。
85 8
|
2月前
|
缓存 监控 API
电商API的微服务架构优化策略
随着电商快速发展,API成为连接用户、商家与系统的核心。本文探讨微服务架构下电商API的优化策略,分析高并发、低延迟与数据一致性等挑战,并提供服务拆分、缓存异步、监控容器化等实践方案,助力构建高性能、高可用的电商系统,提升用户体验与业务效率。
61 0
|
5月前
|
缓存 监控 安全
301重定向进阶指南:从基础配置到企业级架构优化
本文深入探讨网站重定向的高级技巧与企业级实现,涵盖正则表达式重定向、权重无损迁移、分布式系统适配等核心内容。通过解析301/302状态码区别及应用场景,结合Nginx、Apache配置示例,帮助开发者优化大规模网站重定向逻辑。同时,文章介绍CDN边缘重定向、微服务架构下的规则管理以及容灾设计,确保高性能与安全性。最后提供全链路监控方案和经典案例分析,助你规避流量损失风险,提升SEO表现。
152 38

热门文章

最新文章