对于系统的并发量的提高的优化,除了对模块内部性能以及切分,分流等的考虑外,
我把以前做过的开放平台的并发和吞吐量的优化的经验分享一下
A、B、C、D之间是分布式调用,统一由http接入A系统
传统方式:各个系统之间是同步的阻塞调用,包括Http接入也是阻塞式的。
当用户并发比较大的时,常见的现象时各个系统线程处于阻塞状态,线程相关的资源耗尽,系统的并发量上不去,相关的CPU等其实也不高。
因A系统要等待所有的后台调用都完成后,才释放接收的线程,返回结果,所以这个特别在A系统比较明显;间接导致无法提供足够的并发量给后面的D系统。·
异步化方式(SEDA):针对高并发的分布式系统,NIO方式很早提出来就是针对这个问题的,包括两部分,
一部分是后端系统之间的异步,典型的是Netty、Mina、xsocket等成熟的框架,
另外一部分是前端接入http的异步servlet(都有相应的规范), 在Http1.1中支持,对客户端LCP来讲是同步调用的的。典型是有Jetty6、jetty7、tomcat6、tomcat7以及其他商业服务器都有实现。
基本思想都是采用非阻塞方式,接受线程和工作线程分离,提高整 个系统的吞吐量。
好处是,整个系统的可用性大大增加,系统之间耦合度大大降低,并且有比较高的吞吐量,各个系统能高速运转,不会相互等待资源,可以充分利用资源。同时整个系统也可以有很好的伸缩性。
弊端是,中肯的讲,对CPU的要求还是比较高的。
对于分布式系统的调用,关注可用性的同时,也需要关注一致性,传统的事务(JTA、数据库)都不能很好无法解决(对性能也有比较大的影响),
业界对一致性的做法,利用CAP BASE原理,进行交易的冲正(支付系统、银行交易、电信生产系统都是这个做法)。
http://blog.csdn.net/yangbutao/article/details/7437297
相关推荐
主要介绍了Springboot实现高吞吐量异步处理详解(适用于高并发场景),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了springboot高并发下提高吞吐量的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1、高并发下服务稳定性。流量削峰:LRUK(自动识别&存储热点数据,QPS增加4倍,响应时间未见变化)、被动限流降压(中间层A系统并发平均降了14w/分钟,最高降了23w/分钟,回收了7台虚拟机(共21台)) 、操作异步化、分流...
秒杀系统是一种针对高并发场景下的抢购活动设计的系统,旨在克服大量用户同时访问和购买同一商品的挑战。以下是秒杀系统的概念描述: 1. **限流与并发控制**:秒杀系统需要通过限制每秒钟的请求数量或者设置并发...
由于它已经设计、优化并用于的服务器系统,每个流每秒产生超过 100 万个 I/O 密集型任务,其内部实现记录并发处理的实现高度优化,可以产生理想的吞吐量以最少的服务器数量,最大限度地提高资源利用率。入门/教程请...
在设计支持高并发请求的服务器的软件时,提出采用异步通信技术和事件驱动模型来获得高吞吐量的 潜力. 该模型在Java JDK1. 4 NIO和编程模型之间插入一个基于事件驱动模型的异步Socket 通信适配子层aSocket , 以封装和...
Workerman 是一个开源的高性能异步 PHP 套接字框架。 支持高并发、超高稳定... 基于高性能Epoll事件网络库,单机可支持百万并发连接,长连接吞吐量高达36W/S。 PHP 数据库等对象可以常驻内存,减少分析编译和网络开销。
mojo编程语言 Mojo编程语言是一种相对较新的编程语言,它基于Perl 5...这意味着Mojo可以非阻塞地处理多个输入/输出操作,从而提高应用程序的响应性和吞吐量。这使得Mojo特别适合处理高并发和实时性要求较高的Web应用。
总体来说第一种和第四种方案的吞吐量相当,平均响应时间也较快; 第三种方案的吞吐量慢于上述两种,CAS机制效果不错。 第二种方案的响应时间最慢,原因是高并发情形下多个线程不断回滚,耗费了大量的CPU资源,导致...
消息队列(RocketMQ): 作用,长流程异步化,提升吞吐量,削峰填谷 |-普通消息的发布及订阅 SpringBoot |-配置资源预加载 RestTemplate |-application/x-www-form-urlencoded格式数据的发送 H2 |-嵌入式数据库 ...
秒杀系统是一种高并发的应用场景,主要特点是在极短的时间内,大量用户同时访问系统进行抢购操作...监控和日志:对秒杀系统进行监控,关注系统的吞吐量、响应时间等指标,及时发现并解决问题。同时记录系统日志,......
6、后台服务的多线程并发架构设计:对于后台运行的服务,需要采用多线程并发设计大幅度提升系统的资源利用率以及吞吐量。 7、Redis集群的批量数据查询性能优化:对于分布式的Redis集群,数据在多个实例中分布式存储...
通过学习课程资料和实践项目,我学会了如何通过水平扩展、缓存技术、异步处理、并发控制等手段提高系统的性能和吞吐量。我深入了解了分布式系统中常见的性能瓶颈,并学会了针对性地优化和调整系统,以提供更好的性能...
这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...
这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...
这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...
这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...
这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...