第一篇:“大集中”应用系统的结构和技术特点1——高并发联机事务处理
来源:互联网 发布:python for loop循环 编辑:程序博客网 时间:2024/05/07 01:49
何谓高并发?不同的应用系统具有不同的数字指标,但往往和应用系统的物理承载能力有关。另外,同应用系统的业务复杂度也存在很大的关联关系。比如笔者所参与过的省级税收征管“大集中”系统,系统的实际并发数往往要超过100,峰值时刻可能会达到200。这个数值相比较于电信计费系统的并发数而言,在数值上可能比较小,但如果同时参考税收征管业务的复杂性,就会体会到服务器要承载的计算负荷是非常巨大的了。
除并发数指标外,还有另外一个技术指标来描述大集中应用系统所面临的计算压力:系统的响应时间。由于联机事务对交互性操作的敏感性,联机事务对访问响应时间的要求比较严格:一般在1-3秒钟,极端情况可以延长到5秒。一旦超过这个极限值,就会给使用者带来“慢、无法忍受”等不好的用户体验,系统的可用性就会大打折扣了。
在这里,我们必须要理清一个概念:什么是“并发数”。在工作过程中,笔者曾经见过将每秒处理交易数量、在线数量等当做并发数,这是错误的。对于并发数可以给予如下定义:并发数是系统同时在线实时处理联机交易的数量。如平均并发数为100,则在每一个给定的时刻,系统中都会有100个交易在处理中… …
对于并发数的确认,有多种方法。最简单的方式是通过系统监控实时跟踪系统的运行状态,并根据记录数据来统计系统的并发量。但这是典型的“事后诸葛亮”——因为很多时候要在系统架构设计之前估算系统的并发访问数量,并根据该数值来确定系统架构的技术和模式方案。——那时候系统还没有做出来呢。
事前估算也有不少方法,比如参考历史经验数值、类比推倒等。但如果不存在可供参考的案例和经验,笔者常用如下方法:
以税收征管业务为例,系统的终端数量为5000台,系统前后台交互的响应时间要求为3秒。计算并发数的方式如下:
假设:
1. 单笔业务处理时间为5分钟
2. 每笔业务需要前后台交互3次,每次3秒钟,其余为前台人机交互时间
3. 网络延迟时间为0秒,即忽略网络延迟
4. 每台终端所处理的业务类型和交易密度相同
5. 每天有效工作时间为6小时
计算:
1. 单笔业务后台处理时间比率:
后台时间比率 = 单笔业务后台处理时间/单笔业务前台业务处理时间
= 3*3/(5*60) = 3%
2. 每天可处理业务数量(上限)
总业务数量 = (有效工作时间/单笔业务处理时间)*终端数量
=(6*60/5)*5000 = 360000 (个)
3. 系统理论并发数计算(上限)
系统理论并发数 = 前台业务处理时间总数*后台时间比率/每日工作时间
= 360000*5*3%/(6*60) = 150
也就是说,按照上述前提和假设,目标系统的并发数不超过150。
其实,上述计算过程可以进一步简化:
系统理论并发数 = 前台业务处理时间总数*后台时间比率/每日工作时间
= 终端数量 * 每日工作时间 * 后台时间比率 / 每日工作时间
= 终端数量 * 后台时间比率
= 5000 * 3% = 150
高并发对系统设计的影响有哪些?主要体现在系统并发数、吞吐量和响应时间等因素的平衡方面。比如在一定范围内,增加设备可以提高系统的并发数,但良好的架构和应用模式设计同样可以提供很好的并发性能;降低并发数可以缩短系统访问的响应时间,但缩短响应时间同样可以通过架构、应用业务模式、均衡部署等多种手段实现。
- 第一篇:“大集中”应用系统的结构和技术特点1——高并发联机事务处理
- 第一篇:“大集中”应用系统的结构和技术特点2——海量数据处理
- 第一篇:“大集中”应用系统的结构和技术特点4——多线程和单线程的统一
- 第一篇:“大集中”应用系统的结构和技术特点3——复杂性和简单性于一体
- 一篇大访问量,高并发
- 单片机的技术特点及应用系统
- 【转】大访问量系统的设计——高并发高流量网站架构
- 转】大访问量系统的设计(二)——高并发高流量网站架构
- 【转】大访问量系统的设计(二)——高并发高流量网站架构
- 第一篇 安卓系统的介绍及特点
- zookeeper应用——集中配置管理系统的实现
- zookeeper应用——集中配置管理系统的实现
- 数据库中事务处理系统的特点--ACID
- 银行金融的数据大集中和灾难备份技术
- php的mysql事务处理,针对高并发
- 高并发和大数据的比喻
- 大数据和高并发的解决方案
- 大数据量高并发访问数据库结构的设计
- 堆栈处理二叉树先序输出的两种方式
- 四步使您的页面浏览量突破每天一千人次
- C#摄像头编程
- Flex标签语法的使用
- 背古诗
- 第一篇:“大集中”应用系统的结构和技术特点1——高并发联机事务处理
- reactos操作系统实现(59)
- 修改Linux系统最大打开文件数
- 开心农场给我们的20条人生启示
- oracle的优化器(optimizer)--强制使用索引
- 新生 开学要带些什么 开学做些什么 完全解答
- 没有人会告诉你赚钱的方法,但本文告诉你大方向
- 动态语言和静态语言最本质的区别是什么?
- Windows via C/C++ Part 1: Required Reading - Chapter1 错误处理