购物网站 设计,国外做论坛网站,网站建设财务怎么入账,网站怎么做能中英文的所谓高并发系统#xff0c;是指能同时处理大量并发请求#xff0c;并及时响应#xff0c;从而保证系统的高性能和高可用
那么我们在设计一个高并发系统时#xff0c;应该考虑哪些方面呢#xff1f;
1. 搭建集群
如果你只部署一个应用#xff0c;只部署一台服务器…所谓高并发系统是指能同时处理大量并发请求并及时响应从而保证系统的高性能和高可用
那么我们在设计一个高并发系统时应该考虑哪些方面呢
1. 搭建集群
如果你只部署一个应用只部署一台服务器那抗住的流量请求是非常有限的。并且单体的应用有单点的风险如果它挂了那服务就不可用了
因此设计一个高并发系统我们可以采用分布式部署的方式部署多台服务器使用负载均衡的方式把流量分流开让每个服务器都承担一部分的并发和流量从而提升整体系统的并发能力
2. 微服务拆分
所谓的微服务拆分其实就是把一个单体的应用按功能单一性拆分为多个服务模块。比如一个电商系统拆分为用户系统、订单系统、商品系统等等。
因此微服务拆分同样可以分摊请求流量提高并发能力。如果配合分布式部署为每个微服务搭建集群性能将进一步提升
3. 分库分表
在高并发的场景下大量请求访问数据库如果表存储的数据量太大会影响 MySQL 性能此时可以考虑分库分表
不管是分库还是分表都有两种切分方式水平切分和垂直切分
分表 垂直分表表中的字段较多将字段拆分到多个表水平分表表中的数据较多将数据拆分到多个表 分库 垂直分库数据库表太多按照业务逻辑进行切分比如用户相关表放在一个数据库订单相关表放在另一个数据库水平分库指将单张表的数据切分到多个数据库每个数据库都具有相应的表只是表的数据不同
4. 主从分离
单机 MySQL 支撑的请求访问是有限的如果遇到双十一这种情况查询请求量会非常大。这时可以做主从分离实时性要求不高的读请求都去读从库写请求或者实时性要求高的请求才走主库提高了系统的吞吐
5. 使用缓存
使用缓存可以提升接口的性能在高并发场景下支持更多的用户同时访问。常用的缓存包括Redis 缓存内存缓存浏览器缓存等等
6. CDN
CDN 就是内容分发网络它表示将静态资源分发到位于多个地理位置机房的服务器可以做到数据就近访问加速了静态资源如图片、视频等的访问速度让系统更好处理正常别的动态请求
7. 异步处理
在类似双十一的活动可能会遇到流量暴涨系统处理不过来造成请求阻塞系统崩溃。这时可以引用消息队列将请求写入消息队列系统再以合适的速率从消息队列获取请求处理避免造成阻塞提高系统性能
8. 熔断降级
当前互联网系统一般都是分布式部署的如果出现某个基础服务不可用最终将导致整个系统不可用。比如分布式调用链路 A - B - C如果 C 出现问题将导致 B 也会延迟从而 A 也会延迟。A 会不断失败重新请求消耗占用系统资源最终会造成其他的请求同样不可用导致系统崩溃。熔断机制可以防止应用不断尝试可能超时或失败的服务保证自身快速响应提高系统吞吐量
降级机制是指在流量过大系统资源有限的情况下为了保证关键服务正常运行降低部分非关键服务的优先级或质量的一种策略。比如电商网站流量大的时候就把评论功能停掉把资源让出来给关键服务
9. 限流
大流量过来时如果系统资源有限实在没办法处理全部处理可以采用限流机制控制接口发送或接收请求的速率当超过阈值时限制新的请求对系统的访问从而保证系统的稳定性