`

关于异步化带来的高并发和高吞吐量的分享

 
阅读更多
对于系统的并发量的提高的优化,除了对模块内部性能以及切分,分流等的考虑外,
我把以前做过的开放平台的并发和吞吐量的优化的经验分享一下
 
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实现高吞吐量异步处理详解(适用于高并发场景),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    springboot高并发下提高吞吐量的实现

    主要介绍了springboot高并发下提高吞吐量的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    X系统高可用&高并发解决方案.pptx

    1、高并发下服务稳定性。流量削峰:LRUK(自动识别&存储热点数据,QPS增加4倍,响应时间未见变化)、被动限流降压(中间层A系统并发平均降了14w/分钟,最高降了23w/分钟,回收了7台虚拟机(共21台)) 、操作异步化、分流...

    简单实现Java高并发之秒杀系统

    秒杀系统是一种针对高并发场景下的抢购活动设计的系统,旨在克服大量用户同时访问和购买同一商品的挑战。以下是秒杀系统的概念描述: 1. **限流与并发控制**:秒杀系统需要通过限制每秒钟的请求数量或者设置并发...

    decaton:Apache Kafka 上的高吞吐量异步任务处理

    由于它已经设计、优化并用于的服务器系统,每个流每秒产生超过 100 万个 I/O 密集型任务,其内部实现记录并发处理的实现高度优化,可以产生理想的吞吐量以最少的服务器数量,最大限度地提高资源利用率。入门/教程请...

    基于事件驱动和异步通信体系结构的Web服务器设计

    在设计支持高并发请求的服务器的软件时,提出采用异步通信技术和事件驱动模型来获得高吞吐量的 潜力. 该模型在Java JDK1. 4 NIO和编程模型之间插入一个基于事件驱动模型的异步Socket 通信适配子层aSocket , 以封装和...

    Workerman:一个异步事件驱动的 PHP 套接字框架-开源

    Workerman 是一个开源的高性能异步 PHP 套接字框架。 支持高并发、超高稳定... 基于高性能Epoll事件网络库,单机可支持百万并发连接,长连接吞吐量高达36W/S。 PHP 数据库等对象可以常驻内存,减少分析编译和网络开销。

    mojo编程语言介绍及示例代码.zip

    mojo编程语言 Mojo编程语言是一种相对较新的编程语言,它基于Perl 5...这意味着Mojo可以非阻塞地处理多个输入/输出操作,从而提高应用程序的响应性和吞吐量。这使得Mojo特别适合处理高并发和实时性要求较高的Web应用。

    基于Java+MySQL设计与实现的秒杀与抢购模型架构【100013279】

    总体来说第一种和第四种方案的吞吐量相当,平均响应时间也较快; 第三种方案的吞吐量慢于上述两种,CAS机制效果不错。 第二种方案的响应时间最慢,原因是高并发情形下多个线程不断回滚,耗费了大量的CPU资源,导致...

    seckill-rocketmq:seckill-rocketmq-基于RocketMQ-电商高并发场景实战

    消息队列(RocketMQ): 作用,长流程异步化,提升吞吐量,削峰填谷 |-普通消息的发布及订阅 SpringBoot |-配置资源预加载 RestTemplate |-application/x-www-form-urlencoded格式数据的发送 H2 |-嵌入式数据库 ...

    Java实现秒杀系统实现

    秒杀系统是一种高并发的应用场景,主要特点是在极短的时间内,大量用户同时访问系统进行抢购操作...监控和日志:对秒杀系统进行监控,关注系统的吞吐量、响应时间等指标,及时发现并解决问题。同时记录系统日志,......

    亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构

    6、后台服务的多线程并发架构设计:对于后台运行的服务,需要采用多线程并发设计大幅度提升系统的资源利用率以及吞吐量。 7、Redis集群的批量数据查询性能优化:对于分布式的Redis集群,数据在多个实例中分布式存储...

    高级JAVA工程师体系课2.0:深入剖析高可用、高性能分布式系统设计与实现 全面提升性能

    通过学习课程资料和实践项目,我学会了如何通过水平扩展、缓存技术、异步处理、并发控制等手段提高系统的性能和吞吐量。我深入了解了分布式系统中常见的性能瓶颈,并学会了针对性地优化和调整系统,以提供更好的性能...

    asp自动化测试工具(源代码+thesis).zip

    这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...

    ASP基于BS新闻自动化管理网站(源代码+thesis).zip

    这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...

    ASP基于WEB的办公自动化管理系统(源代码+thesis).zip

    这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...

    基于ASP办公自动化系统thesis+源代码+++外文翻译).zip

    这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...

    asp.net师电子化信息库的设计与实现(源代码+thesis).zip

    这将减少对数据库和服务器的访问次数,提高应用程序的响应速度和吞吐量。 异步编程:我们将使用ASP.NET提供的异步编程模型来处理并发请求和长时间运行的任务。这将提高应用程序的并发能力和响应性能,确保用户在高...

Global site tag (gtag.js) - Google Analytics