构建高并发&高可用&安全的IT系统-高并发部分

什么是高并发?

狭义来讲就是你的网站/软件同一时间能承受的用户数量有多少

相关指标有

并发数:对网站/软件同时发起的请求数,一般也可代表实际的用户

每秒响应时间:常指一次请求到系统正确响的时间(以秒为单位)

TPS(每秒事务数):每秒钟可以处理的事务(请求响应),大概的计算公式为:并发数/每秒响应时间=TPS

QPS(每秒查询数):TPS事务有读有写,而QPS指的是读取,一般情况QPS应是高于TPS的

IP(独立IP):一个IP可以发生多次UV和PV

PV(访问量):即Page View,页面浏览或点周量,用户每次新刷新即被计算一次

UV(独立访客):一般通过cookies记录等判断为一个独立用户,同一IP可能有多个UV(共享IP),发生多次PV

流量(网络流量):请求所产生的网络流量,因为受限于带宽也是并发中的一个重要指

一般公司演化阶段

1、优化运算代码、SQL查询、数据库索引等

2、进行应用负载均衡、数据库做主从/主主复制进行读写分离、增加缓存(Redis\Mem)

3、对系统和数据进行垂直拆分,按业务模块拆分成不同的应用及数据库表

4、分布式服务化、异步消息机制、数据库表水平拆分

优化运算代码、SQL查询、数据库索引等

一般初创公司系统大多数都是单体单库的系统,按照成本优先级第一要做的就是对系统进行代码级的优化。比如应用代码逻辑梳理、合理使用多线程、SQL避免全表扫描、少使用LIKE、

根据业务创建索引等。

案例

单次LIKE大数据量统计查询Sending data状态过多导致数据库连接被耗尽,系统停止响应。通过在统计表建立触发器更新单值表解决

负载均衡、读写分离、缓存

到了第二阶段,单体应用通过优化与增加硬件配置已无法解决高并发的问题,这时可以考虑进行以下架构的演化,这种演化对系统基本没有侵入性,成本低廉

负载均衡:

可以通过Nginx反向代理、F5等进行应用的多流量分发,需要解决的问题就是会话问题,可采用Nginx的路由或是SESSION同步/独立。

读写分离:

采用数据库的主从复制机制,将写入库与读取库分离,可采用中间件进行代理路由,基本可以不改代码。

缓存:

可跟据业务规则将部分数据进行缓存

应用、数据垂直拆分

第二阶段支撑过一定量后,随着并发量再次的提升,由于单库表数据量变大以及访问限制已经不能满足,这时可以考虑进行数据库表的按系统模块垂直拆分。将内联的业务划分为独立的库表,相应的应用也

应随之拆分(应用这时加机器还能挺,不过做不到可审缩资源利用最大化)。同一应用系统访问同一库表,应用系统之间进行少量通信。

分布式服务化、异步消息机制、数据库表水平拆分

在经历过前三阶段后,能走到第四阶段说明平台的发展非常好了,对系统的高并发又有了进一步的要求,这也是成本最高最复杂的,系统架构需要进行很大的改造

分布式:

对系统应用进行服务化(如微服务),服务化的目的不只是为了高并发,也从系统的可维护性(团队大了)、资源利用最大化(对服务进行差异化支撑)方面考虑。

面临的挑战主要是分布式事务方面的控制,可采用二阶段提交方式或是分布式事务容器实现分布式事务。

异步消息机制:

主要解决大并发写入瓶颈,利用消息对列对写入消息进行排队,待数据库进

行处理。

数据库表水平拆分:按一定规则将同一业务表的数据拆分到不同的库/表中(如HASH),面临的挑战主要是跟业务关联性强、跨表的数据合并等。解决方案就是写

好代码吧。。。

http://www.cnblogs.com/assion/p/7239106.html

时间: 2024-12-06 15:13:30

构建高并发&高可用&安全的IT系统-高并发部分的相关文章

转---高并发Web服务的演变——节约系统内存和CPU

[问底]徐汉彬:高并发Web服务的演变——节约系统内存和CPU 发表于22小时前| 4223次阅读| 来源CSDN| 22 条评论| 作者徐汉彬 问底Web服务内存CPU并发徐汉彬 摘要:现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.一味地通过增加机器来解决并发量的增长,成本是非常高昂的.结合技术优化方案,才是更有效的解决方法. [导读] 徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小

【问底】徐汉彬:高并发Web服务的演变——节约系统内存和CPU

摘要:现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.一味地通过增加机器来解决并发量的增长,成本是非常高昂的.结合技术优化方案,才是更有效的解决方法. [导读] 徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设. 一.越来越多的并发连接数 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.以最简单粗暴

系统高可用

讨论系统高可用时,我们在讨论什么? 系统高可用,或者说系统的可用性,在计算机领域是一个相当久远并且重要的概念.小到CPU芯片.内存.硬盘等硬件组件,大到支付宝.微信等日常互联网服务,在设计.开发.维护的时候,都离不开对它的考量.本文首先介绍跟系统可用性相关的关键概念,然后讨论高可用系统的评价指标. 系统和模块 一个系统的可用性,由组成这个系统的模块的可用性,以及模块之间的关系决定.模块可以看成一个系统,由更小的子模块组成,而系统可以看成一个模块,从而组成更大的系统.所以计算机系统的可用性,可以一

系统高可用与有罪推定论

最新IT圈最火的支付宝与携程,注定要将蓝翔神技与运维逆袭载入史册.无论故障的过程与真实原因如何,都足以让大家对整个生产系统的建设进行反思并加以检讨. 多年以来各设备厂商,解决方案都在强调自身系统可用有多高,可用达到n个9.而这些n个9的SLA承诺通常是在使用统计学上的概念,甚至于在配置了双机或集群的状态下,计算可用性直接将故障率直接相乘,即(1-(1-99%)*(1-99%))=99.99%.这样的算法对于实际工作来说,其实是无意义的. 系统出故障好比中彩票,谈论百分比毫无意义.中了的人就是中了

[ Openstack ] Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs 高可用集群

目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署    Openstack-Mitaka 高可用之 memcache    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群    Openstack-Mitaka 高可用之 认证服务(keystone)    Openstack-Mitaka

数字资产高并发撮合币币场外交易所系统开发

数字资产撮合交易模式中并发和撮合是核心的要点.这也是运营方关注的重点.高并发是互联网分布式系统架构设计中必须要考虑的因素之一,它是指通过设计保证系统能够同时运行处理多个请求. 与高并发相关的指标有响应时间.吞吐量.每秒查询率.并发用户等.这些都是影响高并发的因素.要提高系统的高并发能力需从架构处理.主要有两种垂直扩展和水平扩展.垂直扩展可以通过提升单机硬件性能,或者提升单机架构性能,来提高并发性,但单机性能是有极限的.因此互联网分布式架构设计高并发终极解决方案还是后者:水平扩展. 然而在互联网分

高可用、高扩展、低延迟交易处理系统架构设计

为实现一个高TPS.高可靠性.高扩展性.低响应延迟的交易处理系统,在系统架构设计上,需要有诸多考虑.  1. 交易处理系统的功能 交易系统是用于连接多个不同的交易请求系统(上游系统)与交易受理系统(下游系统),在这些交易上下游系统之间传递不同格式的交易报文.同时一个交易请求可能需要发送多个不同的子交易请求到不同的交易受理系统,交易处理系统还负责子交易的拆分.交易完整性与一致性保证. 一个典型的交易处理系统,往往需要支持多种不同的通信协议(TCP长连接.TCP短链接.CTG.CICS.MQ等),支

高并发Web服务的演变——节约系统内存和CPU

节约系统内存和CPU http://www.csdn.net/article/2015-02-12/2823952 Web系统大规模并发——电商秒杀与抢购 http://www.csdn.net/article/2014-11-28/2822858(曾经阿里电话面试和腾讯的后台开发都说过的问题,记住记住) 作者博客http://hansionxu.blog.163.com/blog/#m=0&t=1&c=fks_084075093082081069081085082095086082080

PHPCUSTOM更新,动态界面引擎酷炫华丽,WIN系统高承压首选PHP环境

PHPCUSTOM再度更新,动态界面引擎酷炫华丽,WIN系统高承压首选PHP环境 功能大全添加了网页克隆,以及新的承压模块,后期我会制作出更多实用功能 下图界面特效并不会耗费电脑性能,如果不喜欢可以在PHPCUSTOM的设置里关闭 丰富的环境启动方式以及多样化的右键菜单让您操作更加便捷 多种方式打开Mysql版本设置,也可以在此设置Mysql默认配置的性能 点击功能大全,使用PHPCUSTOM高性能承压模块 点击左侧的防护中心,就可以看到这两个网站保护功能, 服务器运行需知:如果在服务器上运行P