`

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

 
阅读更多
对于系统的并发量的提高的优化,除了对模块内部性能以及切分,分流等的考虑外,
我把以前做过的开放平台的并发和吞吐量的优化的经验分享一下
 
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框架...

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

    SpringBoot 高并发下提高吞吐量的实现 在 SpringBoot 应用程序中,高并发场景下提高吞吐量是一个非常重要的课题。本文将详细介绍如何使用多线程技术来提高 SpringBoot 应用程序的吞吐量,从而解决高并发场景下的...

    c# tcp 基于完成端口开发 高性能 高并发 吞吐量大 包含服务端 客户端完整代码 支持最大连接数支持65535个长连接

    本资源提供的是一套基于C#语言实现的TCP服务器和客户端代码,利用了完成端口(IO Completion Ports, I/OCP)技术来优化高并发和高性能的网络通信。 完成端口是Windows系统中的一种高级I/O模型,它通过将I/O操作的...

    .net使用的高性能大吞吐量socket

    在.NET框架中,为了实现高性能和大吞吐量的网络通信,开发者通常会利用I/O完成端口(IOCP,Input/Output Completion Port)技术来优化Socket编程。本文将深入探讨.NET下的高性能Socket编程,以及如何利用IOCP来提高...

    高并发解决方案

    在IT行业中,高并发解决方案是针对大量用户同时访问或操作同一系统、应用或服务时,保证系统稳定...文件"2016"可能包含的是2016年关于高并发解决方案的资料,深入学习这些资料,可以对当时的实践和趋势有更全面的了解。

    cpp-Recklesslogging低延迟高吞吐量异步C日志库

    "cpp-Recklesslogging低延迟高吞吐量异步C日志库" 是一个专为C++开发者设计的日志库,旨在提供高效的日志记录功能,尤其关注在性能关键的应用场景下,如实时系统和大数据处理。Reckless logging的核心特性在于其低...

    开源ThingLinks物联网一体化平台,高性能、高吞吐量、高扩展性的物联网平台

    开源的ThingLinks物联网一体化平台是一款专为应对物联网领域挑战而设计的高性能、高吞吐量、高扩展性解决方案。该平台旨在提供一个完整的框架,能够处理海量设备连接,支持百万级别的并发链接,确保在大规模物联网...

    牛客网Linux高并发服务器开发.zip

    高并发服务器设计通常基于TCP/IP协议栈,涉及套接字编程、多路复用技术(如select、poll、epoll)以及异步非阻塞I/O模型。epoll是Linux环境下高效处理大量并发连接的关键,通过边缘触发或水平触发模式,可以减少...

    springboot 同步解耦 异步化

    在IT行业中,SpringBoot是一个非常流行的Java开发框架,它简化了Spring应用的初始化和配置,使得开发者能够快速构建可运行的应用。"同步解耦"和"异步化"是两个重要的概念,它们对于提高系统性能和扩展性至关重要。在...

    下载高并发web架构pdf文档与视频

    本资源提供了一套关于“下载高并发web架构”的PDF文档和视频,旨在帮助开发者和系统架构师深入理解并掌握如何构建可扩展、高性能的Web系统。 首先,我们来探讨“高并发”这一概念。高并发是指系统在同一时间能处理...

    ActiveMQ高并发处理方案

    在现代分布式系统中,消息队列作为异步通信的核心组件之一,对于提高系统的吞吐量、降低响应时间和实现服务解耦等方面起着至关重要的作用。Apache ActiveMQ作为一款成熟且功能强大的开源消息中间件,被广泛应用于...

    构建高并发高可用的电商平台架构与双11促销cdn静态化架构.

    构建高并发高可用的电商平台架构与双11促销CDN静态化架构 构建高并发高可用的电商平台架构是当前电商平台架构设计的主要挑战之一。为解决这个问题,我们需要从设计理念、并行与分布式计算、多维度的可用、监控、...

    高吞吐量的一个日志函数类_用于IOCP (Delphi)

    此类函数适用于需要大量日志记录的应用场景,特别是在高并发服务器环境中,能够有效减轻系统资源的压力,提高整体系统的稳定性和性能。 总结来说,这个日志函数类通过采用一系列高性能技术和策略,实现了高效的日志...

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

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

    C#版支持高并发的HTTP服务器源码

    而异步处理则允许服务器在等待I/O操作完成时执行其他任务,显著提高了资源利用率和吞吐量。 异步编程在C#中主要通过`async`和`await`关键字实现。当一个方法标记为`async`时,可以使用`await`关键字来调用其他异步...

    构建WCF面向服务的应用程序系列课程(9):并发, 吞吐量与限流.rar

    另外,优化服务的处理逻辑,减少不必要的计算和I/O操作,以及利用异步操作也是提高吞吐量的有效手段。 限流则是为了防止过载情况的发生,通过控制服务的请求速率,避免短时间内大量请求导致系统崩溃。WCF提供了一些...

    java高并发的解决方案

    可以使用消息队列或异步线程池,将耗时的操作异步化,提高系统的吞吐量。 五、线程池 线程池可以帮助管理并发任务的执行,通过重用线程提高性能。需要合理配置线程池的大小和任务队列大小,避免线程过多导致资源...

    C#实现Socket高性能、大容量并发(附完整实例源码)

    - **异步编程模型**:C#支持异步I/O操作,通过BeginSend和EndSend等方法实现非阻塞发送,BeginReceive和EndReceive实现非阻塞接收,提高系统吞吐量。 - **缓冲区管理**:使用预分配的缓冲区池,减少内存分配和释放...

    java抽奖系统后台 springboot+mybatis redis队列处理高并发.zip

    同时,队列处理还可以实现异步操作,提高系统的吞吐量。 5. **高并发处理**: 高并发处理是互联网应用设计中的关键点。本系统利用SpringBoot的微服务架构和Redis的缓存能力,配合MyBatis的高效数据库操作,实现了...

    linux网络编程框架(C++)基于Reactor事件机制,支持线程池,异步非阻塞,高并发,高性能.zip

    高性能则意味着在处理大量请求的同时,还能保持较低的延迟和较高的吞吐量。 在"linux网络编程框架(C++)基于Reactor事件机制,支持线程池,异步非阻塞,高并发,高性能.zip"这个压缩包中,"SJT-code"文件可能包含...

Global site tag (gtag.js) - Google Analytics