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

简介:
前言:
标题为啥要加个“小”,只因为上一篇文章“ 小网站架构优化:从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:项目路径还是原来的项目路径,然后设置新的应用程序池,最终如下图:
43844.jpg

总结:

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

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


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


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

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




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




相关文章
|
8天前
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
18天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
2天前
|
存储 算法 Linux
探索现代操作系统的架构与优化
本文深入探讨了现代操作系统的核心架构及其性能优化策略。通过对主流操作系统架构的分析,揭示其在多任务处理、内存管理和文件系统等方面的特点。同时,针对当前技术趋势,提出一系列优化措施,旨在提升系统的运行效率和用户体验。通过实例分析,展示如何在实际场景中应用这些优化技术,确保系统在高负载下的稳定运行。
|
7天前
|
缓存 算法 安全
探索现代操作系统的架构与优化
本文旨在深入探讨现代操作系统的核心架构,并详细分析其性能优化策略。通过对操作系统的基本功能、主要组件以及它们之间的交互进行剖析,帮助读者理解操作系统在提高硬件资源利用率和用户体验方面所发挥的关键作用。此外,文章还将介绍几种常见的性能优化方法,包括进程调度算法、内存管理技术和I/O系统优化等,并通过实际案例展示这些优化技术的应用效果。
|
11天前
|
消息中间件 弹性计算 运维
云消息队列RabbitMQ 版架构优化评测
云消息队列RabbitMQ 版架构优化评测
31 6
|
7天前
|
边缘计算 5G SDN
控制与用户平面分离 (CUPS): 5G 网络架构的革命性变革
控制与用户平面分离 (CUPS): 5G 网络架构的革命性变革
16 1
|
8天前
|
人工智能 算法 安全
探索现代操作系统的架构与优化
本文深入探讨现代操作系统的核心架构及其性能优化技术。通过分析操作系统的基本功能和设计原则,阐述其在资源管理、内存分配及多任务处理方面的创新方法。进一步,文章将聚焦于如何通过内核调优、算法改进等手段提升系统效率,确保在高负载环境下的稳定性和响应速度。最后,讨论未来操作系统可能面临的挑战与发展趋势,为相关领域的研究和实践提供参考。
|
16天前
|
Kubernetes Java Android开发
用 Quarkus 框架优化 Java 微服务架构的设计与实现
Quarkus 是专为 GraalVM 和 OpenJDK HotSpot 设计的 Kubernetes Native Java 框架,提供快速启动、低内存占用及高效开发体验,显著优化了 Java 在微服务架构中的表现。它采用提前编译和懒加载技术实现毫秒级启动,通过优化类加载机制降低内存消耗,并支持多种技术和框架集成,如 Kubernetes、Docker 及 Eclipse MicroProfile,助力开发者轻松构建强大微服务应用。例如,在电商场景中,可利用 Quarkus 快速搭建商品管理和订单管理等微服务,提升系统响应速度与稳定性。
31 5
|
18天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
21天前
|
缓存 算法 安全
深入探索现代操作系统架构及其优化策略
本文旨在探讨现代操作系统的架构设计及其在性能优化上的关键技术。通过对操作系统的核心组件和调度机制的分析,揭示其背后的设计理念与技术挑战,同时提出针对性的优化措施,以提升系统效率和用户体验。
下一篇
无影云桌面