高并发架构技术解决方案?

高并发架构技术解决方案?,第1张

高并发架构的难点是什么?
高并发架构最大问题主要是由于网站PV访问量大,单台服务器承载大量访问所带来的压力,所以会采用多台服务器进行分流,采用服务器集群技术,对于每个请求访问会被 发送到不同的服务器。
这样架构的难点就在管理、维护、监控、负载等等都面临很大的技术问题,同时还需要应对某些业务的突发流量,像秒杀、促销等场景化使用什么技术解决高并发?
互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。
垂直扩展:提升单机处理能力。垂直扩展的方式又有两种:
(1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;
(2)提升单机架构性能,例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;
在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性能”往往是最快的方法。
不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。
水平扩展:只要增加服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计,以及互联网公司架构各层常见的水平扩展实践。
水平扩展要怎么来做?首先是软件服务拆分到不同的服务器进行部署,全部堆积在一台上性能将会受限。例如:Redis 就只是部署在独立的服务器上,其它软件都在这服务器上出现增加各个软件服务部署的服务后,采用技相关技术手段分担到各个服务器上。nginx反向代理层可以通过“DNS轮询”的方式来进行水平扩展。dns-server对于一个域名配置了多个解析ip,每次DNS解析请求来访问dns-server,会轮询返回这些ip。PHP站点层可以通过修改nginxconf实现负载均衡机制来进行水平扩展。从而设置多个web后端。服务层可以通过服务连接池来进行水平扩展;这里一部需要实现服务化,PHP像swoole tarsphp等数据库可以按照数据范围,或者数据哈希的方式来进行水平扩展;那高并发架构是什么样的?
常见互联网分布式架构如上,分为:
(1)客户端层:典型调用方是浏览器browser或者手机应用APP
(2)反向代理层:系统入口,反向代理
(3)站点应用层:实现核心应用逻辑,返回html或者json数据
(4)服务层:服务化,例如像Swoole
(5)数据-缓存层:缓存加速访问存储
(6)数据-数据库层:数据库固化数据存储

i系列
用志强E5的话可能不太好,e5是服务器,运算能力很强,差不多相当于I7的第三代处理器,运算能力比I7-2600强,但是在图像处理方面不太好,连I3的都比不上,做渲染的话还是要选择I系列的处理器要好些,I5-9300H第九代处理器,或者是I7-9750H
e5的主频和睿频都要低些。

用大白话说 部署图就是在使用的时候看看都需要哪些硬件、安装在硬件上的软件,还有连接各种硬件的各种协议和中间件
下面系统介绍一下部署图:

部署图描述了一个系统运行时的硬件节点,在这些节点上运行的软件构件将在何处物理运行以及它们将如何彼此通信的静态视图。部署图包括两种基本模型元素:节点和节点间的连接。每个模型中,仅包含一个部署图。

部署图的主要目的是在物理的层次上做整体的系统规划。
目的还包括:

节点包括两种类型:处理器和设备。

== 处理器 ==指本身具有计算能力且能执行各各软件的节点,如服务器。处理器具有处理能力,所以在描述处理器方面应当包含了处理器的调度和进程。调度指在处理器处理其进程中为实现一定的目的而对共同使用的资源进行时间分配。调度方式包含:抢占,无优先级,循环,算法控制,手动执行。进程表示一个单独的控制纯种,是系统中一个重量级的并发和执行单元。

== 设备 ==指本身不具备处理能力的节点,如打印机。

== 连接 ==用来表示两个节点之间的硬件连接。节点之间的连接可以通过光缆直接进行,或通过卫星等方式非直接连接,通常连接都是双向的。连接用实线表示,实线上可加连接名和构造型。

1、找出所要绘图系统的节点,确定节点。
2、找出节点间的通信联系。
3、绘制部署图,每个节点都有名称,写明节点间物理联系的名称。

说部署图之前,先看看某24小时便利店管理系统的网络拓扑结构图

这个图描述了本系统的整体物理结构,从该图我们可以得到以下信息:
1、该便利店集团有总部和多个门店,总部管理财务、仓库、采购等事宜。
2、二级配送可能是该集团的一个子单位,也可能是第三方公司,其作用是及时配送货物到门店。
3、每个门店都有终端电脑,这些终端电脑通过互联网与总部的服务器、二级配送的服务器有联系。
4、财务、仓管、采购子系统在总部的局域网内的。
5、二级配送的客户端直接与二级配送的Server相连。
第1、2点是业务信息,第3、4、5点是技术信息。

注意:标注及**底色的文字不是部署图的一部分,仅是用来说明而已。

部署图的基本要点如下:
1、实际环境中的一台电脑、服务器或者硬件设备,在部署图中可用节点(Node)来了表示,也就是图中的一个一个立体矩形框框。
2、每个节点有个名称,如图中的财务的PC、总部的Server等。
3、可以用标记(Tags)来详细说明每个节点的具体配置情况,如图中的总部的Sever,Number=1表示服务器数量只有一台,OS=Windows Server 2003则说明服务器采用Windows Server 2003为 *** 作系统。
4、节点与节点之间,如果有物理联系,则直接拉线条,在线条上面写上连接的方式。如总部的Server与门店的PC是通过Internet来联系的,总部的Server与财务的PC是通过局域网来联系的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10776555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存