个人网站可以做品牌推广wordpress 极简模版
个人网站可以做品牌推广,wordpress 极简模版,国际网站卖东西怎么做,广东网站开发推荐一、通用秒杀架构概述系统设计是一个由宏观到微观的过程。要设计好秒杀系统#xff0c;首先需要深入理解其架构特点。本文将重点分析传统架构设计的特性#xff0c;介绍最新的秒杀系统架构#xff0c;并探讨技术选型和环境准备策略。二、一般性系统架构分析2.1 传统系统架构…一、通用秒杀架构概述系统设计是一个由宏观到微观的过程。要设计好秒杀系统首先需要深入理解其架构特点。本文将重点分析传统架构设计的特性介绍最新的秒杀系统架构并探讨技术选型和环境准备策略。二、一般性系统架构分析2.1 传统系统架构模式常见的系统功能架构图展示了我们熟悉的模式在这种架构中Nginx通常仅作为反向代理和负载均衡器许多业务开发人员对此层无感知通常由运维部门在生产环境搭建时配置。研发人员主要专注于Web服务和其他RPC服务/微服务的开发。我们将页面及其依赖的静态资源都放在Web服务中同时Web服务提供业务接口RPC服务提供支撑服务。2.2 动静分离架构改进经过动静分离优化后VUE前端部分会部署在Nginx上形成以下结构Nginx层承载页面及静态资源Web服务层提供业务接口RPC服务层提供支撑服务这种模式相比传统架构有所改进但在秒杀场景下仍面临挑战。三、页面访问问题分析3.1 商详页访问压力以商品详情页为例商城进行动静分离后商详页实现在product.vue中。每个商品都需要从后端获取详细信息进行展示javascriptmounted() { window.scroll(x:0, y:0); this.getProductInfo(); }, methods: { getProductInfo() { let id this.$route.params.id; this.axios.get(/pms/productInfo/${id}).then((res) { this.product res; }); } }在高并发秒杀场景下这种实现方式会对后端服务造成巨大压力即使产品信息全部缓存仍会消耗大量后端资源和带宽。四、Web服务器性能瓶颈4.1 Tomcat线程模型问题通常我们使用Tomcat部署Web服务。Tomcat通过线程处理请求这在秒杀场景下会带来问题线程激增瞬时大量请求导致线程池不足Tomcat会快速创建新线程直至达到最大线程数CPU过载线程数设置过大可能导致CPU打满机器宕机请求拒绝高负载下等待队列满后后续请求被拒绝连接4.2 扩展性限制虽然可以通过增加机器分摊流量但成本可能超出预算还会面临读写热点、库存超卖等问题五、常见的秒杀系统架构5.1 大厂秒杀架构设计结合秒杀各链路层级大厂的秒杀功能结构与系统架构如下图所示该架构与一般系统架构的主要区别包括5.2 CDN静态资源加速将原先由Web服务或Nginx提供的静态资源部署到CDNCDN遍布全国客户端就近拉取静态资源大大减轻秒杀域名的瞬时负担显著提升页面加载速度5.3 Nginx网关升级最大的改变是将Nginx职责扩展为Web网关承担部分业务逻辑校验黑白名单过滤限流和流控功能业务网关角色这种模式在大公司中很常见京东商详、秒杀业务网关美团负载均衡接入层12306车票查询网关5.4 流量筛选策略秒杀入口流量巨大但组成混杂刷子请求约60%无效请求约10%正常请求约30%网关层的核心任务是尽可能多地接收流量精确筛选有效请求将30%的正常请求分发到下游拦截70%的无效和刷子请求这样可以避免Web服务层浪费资源处理无效请求。六、电商项目技术选型电商项目秒杀系统技术选型的核心设计思路是对巨大的瞬时流量进行层层错峰6.1 错峰策略一页面静态化本质将动态数据和静态资源分离实现商品信息等静态内容使用Freemarker模板引擎实现优势减少动态数据请求提升页面加载速度6.2 错峰策略二秒杀前答题目的防止机器刷单错开用户下单时长实现通过HappyCaptcha添加动态验证码效果答题速度靠后的请求自然减少降低系统请求量6.3 错峰策略三Redis扣减库存作用一快速扣减库存保护数据库作用二提前识别热点数据优化方案优化提升处理效率限制控制请求频率隔离业务、系统、数据隔离6.4 错峰策略四Nginx快速通知秒杀结束实现引入OpenResty增强Nginx功能效果秒杀结束后在网关层直接拒绝后续请求保护后端服务6.5 错峰策略五MQ流量削峰方式通过MQ对前端并发请求进行削峰效果减少瞬间流量对后端服务器的压力6.6 错峰策略六下单服务异步化实现后端服务将下单消息发到MQ优势无需关心下游业务减轻下单服务压力七、OpenResty详解7.1 简介Nginx是为应对高并发网络请求场景而设计的具有并发能力强、资源消耗低的特性。其五大优点包括模块化事件驱动异步非阻塞多进程单线程OpenResty是Nginx的一个社区分支由中国人章亦春发起。它是一个基于Nginx与Lua的高性能Web平台集成了大量Lua库和第三方模块。7.2 为什么选择Lua线程模型匹配Lua采用单线程多协程模式与Nginx的单进程单线程完美匹配语法简洁Lua是一种小巧的脚本语言学习成本低广泛应用Redis也使用Lua作为脚本语言推荐学习资料豆瓣评分8分以上的Lua编程书籍。八、OpenResty原理深入8.1 Nginx进程模型Nginx服务器启动后产生Master进程接收外界信号监控Worker进程Worker进程实际处理外部请求数量通常与CPU核数一致8.2 Nginx请求处理阶段Nginx将HTTP请求处理划分为11个阶段阶段名称说明1ngx_http_post_read_phase接收完整HTTP头部后处理2ngx_http_server_rewrite_phaseURI重写location匹配前3ngx_http_find_config_phase寻找匹配的location配置4ngx_http_rewrite_phaselocation级别的URI重写5ngx_http_post_rewrite_phase防止重写死循环6ngx_http_preaccess_phase访问控制准备阶段7ngx_http_access_phase访问权限控制8ngx_http_post_access_phase访问控制后处理9ngx_http_try_files_phasetry_files指令处理10ngx_http_content_phase生成响应内容最重要阶段11ngx_http_log_phase日志记录其中HTTP无法介入的阶段有4个3、5、8、9。8.3 OpenResty的Lua插载点OpenResty在HTTP处理阶段基础上为Lua脚本提供处理能力主要插载点包括init_by_luaMaster进程加载配置时运行init_worker_by_luaWorker进程启动时执行set_by_lua变量初始化rewrite_by_lua复杂转发、重定向逻辑access_by_luaIP准入、接口权限处理content_by_lua内容处理器接收请求并输出响应header_filter_by_lua响应头部或cookie处理body_filter_by_lua响应数据过滤九、总结通用秒杀架构的设计核心在于层层错峰通过多种策略分散瞬时流量压力网关升级将Nginx扩展为业务网关承担更多逻辑处理静态分离充分利用CDN加速静态资源异步处理通过MQ实现流量削峰和业务异步化技术选型结合业务特点选择合适的技术栈如OpenResty这些设计原则不仅适用于秒杀系统对于其他高并发场景也有重要参考价值。通过合理的架构设计可以在有限的资源下支撑高并发业务实现系统的高可用和高性能。