
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
高并发编程开发是目前大多数软件编程开发程序员都在学习和使用的一种编程开发方式,而本文我们就通过案例分析来简单了解一下,高并发架构设计分析。
1、高并发的说明和背景
高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。比如在线直播服务,同时有上百万甚至上千万人观看。比如秒杀品,同时有大量用户涌入。
高并发是从业务角度去描述系统的能力,实现高并发的手段可以采用分布式,也可以采用缓存等,当然也包括多线程、协程,但远远不仅如此;高并发的基本表现为单位时间内系统能够同时处理的请求数,高并发的核心是对资源的有效压榨,有限的资源应对大量的请求。
现代互联网服务,基本上都要考虑高并发问题,因为一般的产品,用户的请求量都很大。
2、高并发架构设计分析
(一)基础设施层
部署:多IDC+异地多活
基础设施层一般包含了服务器、IDC、部署方式等等。目前而言,我们一般都用容器部署的方式,而容器的底层能力基本也都是建立在k8s容器层之上的,服务本身的部署管理已经有成熟的设施帮我们实现了。具体到部署方式,包括但不限于:
多IDC部署。比如服务同时在广州、上海两地部署。这个依赖我们的服务是无状态的。
其他的参考下异地多活架构等相关部署。
监控:可观测性
系统的可观测性主要包含三个部分:logging、tracing、metrics。这个一般都要引入可观测系统,这样才能帮助我们在异常的时候能够快速定位问题。属于必备设施,一般而言,公司应该都有专门的团队去做这个事情。
(二)服务端架构层
服务端架构层是我们重点要关注的,这个也是考量个人架构能力的关键部分。
系统分层设计:分层、分割、分布式
架构分层
应用层:网站页,用户中心,商品中心,购物车,红包业务,活动中心等,负责具体业务和视图展示
服务层:订单服务,用户管理服务,红包服务,商品服务等,为应用层提供服务支持
数据层:关系数据库,nosql数据库等,提供数据存储查询服务
将系统在横向维度上切分成几个部分,每一层的功能职责要足够单一,然后通过上层对下层的依赖和调度组成一个完整的系统
比如把电商系统分成:应用层,服务层,数据层。(具体分多少个层次根据自己的业务场景)
业务分割
在纵向方面对业务进行切分,将一块相对复杂的业务分割成不同的模块单元,对应的是模块的划分,通过合理的模块划分,使得每个模块都能可以满足高内聚低耦合的设计要求,这样不同的模块可以分布式部署,也能提高并发处理能力和功能扩展
比如用户中心可以分割成:账户信息模块,订单列表模块,充值模块,优惠券模块等
分布式
分布式应用和服务,将分层或者分割后的业务分布式部署,独立的应用服务器,数据库,缓存服务器,当业务达到一定用户量的时候,再进行服务器均衡负载,数据库,缓存主从集群
集群架构设计:应用集群、数据集群
应对高并发系统,不管是应用层面还是数据层面,单机都不可能搞定,因此都需要搭建集群架构,然后通过负载均衡来对外提供服务。同时集群架构还能保证系统的可用性,当某台服务或者机器异常,负载均衡会自动剔除,不会影响对外服务。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。