首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏橙子架构杂谈

    【SEDA异步框架】【三】异步框架技术选型

    基于SEDA的异步框架设计与实现 三、异步框架技术选型        在这次实现的SEDA异步框架中,采用的基础架构原型如下: ?         如此既可以支持以后可能进行的分布式化扩展,也可以使得框架具有高可用性,在大数据处理的时候仍可具有较为客观的性能。同时,消息的传递过程中,采用了高性能的fastjson进行数据序列化和反序列化。 2、quartz        quartz 的介绍文档网上很多,quartz作为一款优秀的定时器框架可以和spring无缝结合,同时还具有java自带的定时器timer所不具备的定时启动的 功能。 语法见: http://www.blogjava.net/javainthink/archive/2006/10/19/76077.html        在异步框架中的使用场景:辅助实现定时功能,从而使得异步框架可以更加灵活的支持各种需求 4)开源,使用Apache License 2.0协议开源              在异步框架中的使用场景:辅助stage到stage之间的数据通信,负责数据在通信过程中的序列化和反序列化过程。

    1.3K41发布于 2019-02-28
  • 来自专栏橙子架构杂谈

    【SEDA异步框架】【四】异步框架总体设计与实现

    基于SEDA的异步框架设计与实现 四、异步框架总体设计与实现  1、框架中的stage理想结构        前文提到,基于SEDA的异步框架,一个stage的理想结构描述如下: ?        引此为框架的设计理念,于是有了如下基于SEDA的异步框架的架构设计。 2、SEDA异步框架的使用场景          该异步框架可以用来处理如下几个场景的问题:        1、系统资源监控(CPU、内存、线程池、队列)        2、外围服务交互情况(API被调用 4、异步框架原生态架构(Virtual Bundle)        基于上述的设计理念,最终实现的异步框架的原生态架构如下所示: ?       5、异步框架的AMQP实现(AMQP Bundle)          异步框架扩展的AMQP实现,其架构图如下所示: ?       

    1.4K21发布于 2019-02-28
  • 来自专栏python3

    python异步并发框架

    呵呵,这个标题有点大,其实只是想从零开始介绍一下异步的基础,以及 Python 开源异步并发框架的发展和互操作性。 另外,这是我在 OSTC 2014 做的一个同题演讲,幻灯片在这里,欢迎拍砖。 前面我们说的异步只是异步编码——从编写代码的方式上来判断。而通常说的异步框架,往往还会展现给用户一些同步的接口(后面还会提到),在框架内部,这些接口也都是用非阻塞的异步代码来实现的。 对于这样的框架,我们仍然叫他们异步框架——总不能叫非阻塞框架,或是同步框架吧。 框架 只用 socket 和 select 来写一个异步 web 服务器也行,只不过会出一两条人命而已。虽然是开玩笑,但是我们多数情况下还是会选择使用一些现有的框架。  Tornado 为例,来看一下最基本的异步框架是怎么用的——虽然 Tornado 并不仅限于此。

    2.7K10发布于 2020-01-08
  • 来自专栏网站建设、网站制作专栏

    C#8异步

    所以说这样不是很理想,最理想的办法是使用C#的异步编程模型,但是在C# 8之前,这是做不到的。但是从C# 8开始,我们就可以这样做了。 Asynchronous Streams 异步流 首先修改NumberFactory,在Task.Delay(1000)前边加上await关键字来代替.Wait()方法,然后再修改返回类型为IAsyncEnumberable <int>,并在前面添加async关键字: 回到Main方法,需要做出两个修改: 首先,就是在foreach循环前面加上await关键字,这看起来比较奇怪,但这就是我们遍历异步流的方式。 在这里流是异步的,当它await任务的时候,该线程是可以去做其它工作的。而当程序继续执行的时候,它确实可能结束于其它的线程。

    72710发布于 2019-11-04
  • 来自专栏后端技术

    Java8 异步编程

    Java8——异步编程 手动完成Future 提供空构造函数,complete, completeExceptionally,用于手动完成future CompletableFuture<String> ; 流程制定 常用的三种方法 方法名 是否可获得前一个任务的返回值 是否有返回值 thenApply 能获得 有 thenAccept 能获得 无 thenRun 不可获得 无 实际上相当于定义一个异步流程的

    64810发布于 2020-07-15
  • 来自专栏架构探险之道

    Rx Java 异步编程框架

    Rx Java 异步编程框架 名词定义 举个例子 基本概念 Backpressure Upstream, Downstream Objects in motion Assembly time Subscription 当数据流通过异步步骤运行时,每个步骤可以以不同的速度执行不同的操作。 R8 and ProGuard settings R8 和 ProGuard 设置 默认情况下,RxJava 本身不需要任何 ProGuard/R8 设置,应该可以毫无问题地工作。 Rx的操作符让你可以用声明式的风格组合异步操作序列,它拥有回调的所有效率优势,同时又避免了典型的异步系统中嵌套回调的缺点。 总结 Rx Java 作为优秀的异步编程框架,是一个使用可观察数据流进行异步编程的编程接口,ReactiveX 结合了观察者模式、迭代器模式和函数式编程的精华。

    3.9K20编辑于 2023-03-04
  • 来自专栏开源技术小栈

    Workerman Asyncio 异步游戏框架

    概述 一个面向 Workerman + pfinal-asyncio 的异步游戏框架,让你用 async/await 编排游戏逻辑,就像写故事剧本一样。 核心功能 Room 基类 - 带完整生命周期钩子的异步房间管理 Player 通信封装 - 简单易用的玩家消息收发 异步广播机制 - 支持即时和延迟广播 ⏰ 定时事件系统 - 灵活的定时器和延迟任务 onDestroy 完整钩子 RoomManager - 多房间管理和快速匹配 GameServer - 开箱即用的 WebSocket 游戏服务器 高级功能 单元测试 - 完整的 PHPUnit 测试框架 结构化异常系统,带上下文信息 日志系统 - 多级别日志,支持控制台和文件输出 状态持久化 - 支持 Redis、文件等多种存储方式 ⚖️ 负载均衡 - 多进程房间分配,支持轮询、最少连接等策略 框架定位 生产环境配置 $server = new GameServer('0.0.0.0', 2345, [ 'name' => 'ProductionGameServer', 'count' => 8,

    26710编辑于 2025-10-20
  • 来自专栏python3

    Python微型异步爬虫框架

    Amipy Python微型异步爬虫框架(A micro asynchronous Python website crawler framework) 基于Python 3.5 + 的异步async-await 框架,搭建一个模块化的微型异步爬虫。 回调函数 整个项目的主要实现在于回调函数的使用,利用异步请求得到响应后马上调用其请求绑定的回调函数来实现爬虫的异步爬取。 事件循环loop Amipy爬虫的异步请求基于python3的协程async框架,所以项目全程只有一个事件循环运行,如果需要添加更多的爬虫请求,可以通过回调函数传进事件循环,加入请求队列。 LJproject> amipy cspider lianjia 编写数据库模型 打开D:LianJiaLJprojectspidersLianjiaitem.py,编写数据保存模型: #coding:utf-8

    90810发布于 2020-01-03
  • 来自专栏陶士涵的菜地

    异步http框架与实现原理

    介绍github上的异步http框架android-async-http loopj开发 获取AsyncHttpClient对象,通过new 调用AsyncHttpClient对象的get(url,responseHandler 自己实现一个精简版的异步http框架 我们的http请求经历这样两个阶段: 1.开启子线程,在子线程执行一个http请求 2.子线程执行完毕之后,通知ui界面更新 创建一个类叫AsyncHttpClient

    98620发布于 2019-09-10
  • 来自专栏H2Cloud

    FF ASIO 异步消息网络框架

    编写分布式程序时,都是采用异步消息,但是asio 中对socket进行async_write不能保证线程安全,而且我们必须保证在单个socket上发送数据   必须是顺序的。 socket都需要io_service,所以经常要手动为io_service创建线程,但是经过测试表明,网络io分配的线程配置   2-4个效率最佳,在增加线程并不能增大吞吐量,这是由于asio采用全异步模式 在编写分布式程序中,变的往往只是逻辑层,网络框架、消息协议基本不怎么变化,所以网络框架必须能够保证逻辑层的接口足够灵活。在基于消息模式   通讯的框架下,每个程序需要单独定制自己的消息派发策略。 如果新增加支持的消息协议,必须保证无需重写框架,而且保证原来的消息派发策略仍然有效。 目前ff_lib已经能够很好的支持以上几点,当然,消息解析并没有来得及优化,目前仍然处于demo版本。

    1.5K30发布于 2018-03-09
  • 来自专栏Hadoop数据仓库

    MySQL 8 复制(一)——异步复制

    所谓异步包含两层含义,一是主库的二进制日志写入与将其发送到从库是异步进行的,二是从库获取与重放日志事件是异步进行的。 从实现角度分析,提交流程和代码框架分别如图3、图4所示。 ? 图3 MySQL两阶段提交流程 ? 图4 commit命令的MySQL代码框架 (1)先调用binglog_hton和innobase_hton的prepare方法完成第一阶段,binlog_hton的papare方法实际上什么也没做,innodb 两者都设置为1,数据最安全,能保证主从一致,这也是MySQL 8的默认设置。 双核双CPU,Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz . 8G物理内存,8G Swap . 100G物理硬盘 三、安装mysql-8.0.16

    5.9K21发布于 2019-05-25
  • Java 8 异步编程利器:CompletableFuture

    在Java 8中,推出了一个强大的异步编程工具:CompletableFuture。它提供了一套强大的API,使得异步编程更加容易和直观。 基本概念CompletableFuture是Java 8中新增的一个类,用来支持异步编程。它是对Future的增强,提供了更加强大的操作和组合方式。 高级功能除了基本用法之外,CompletableFuture还提供了一些高级功能,用来处理更加复杂的异步编程场景。 总结CompletableFuture是Java 8中一个强大的异步编程工具,提供了一套强大的API,使得异步编程更加容易和直观。 通过学习本文,读者可以深入理解CompletableFuture的使用方法,掌握异步编程的技巧,为实际开发工作打下坚实的基础。

    37710编辑于 2024-11-27
  • 来自专栏苏三说技术

    异步8种实现方案

    前言 我们在做接口性能优化的时候,经常需要把同步改成异步。 那么你知道在Java中有哪些异步方案吗? 今天这篇文章就跟大家一起聊聊Java中的8异步实现方案,希望对你会有所帮助。 异步编程的三大核心价值: 资源释放:I/O等待时释放线程,提升吞吐量(实测可达同步模式的3倍) 故障隔离:单个服务异常不影响整体流程 流量削峰:消息队列缓存突发流量 2.异步8种实现方案 方案1:线程与线程池 阻塞直到结果返回 String result = future.get(); 致命缺陷: 无法链式任务依赖 异常处理困难 无超时控制(需手动实现) 方案3:CompletableFuture 它是JDK8+ 方案8异步HTTP与非阻塞IO Vert.x实战: vertx.createHttpServer() .requestHandler(req -> { // 非阻塞处理 方案 延迟(ms) 吞吐量(QPS) 线程数 适用场景 线程池 45 2,000 200+ 简单任务 Future 40 2,500 200+ 需结果阻塞 CompletableFuture 25 8,000

    1.1K11编辑于 2025-08-06
  • 来自专栏码农沉思录

    Spring框架中的异步执行

    一、Spring框架中的异步执行 在Spring Framework中分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象,本节我们着重讲解基于TaskExecutor 支撑的的注解@Async如何实现异步处理的。 二、 @Async注解异步处理原理 在Spring中可以在方法上添加@Async注释,以便异步调用该方法。 那么Spring框架是如何做到我们dosomthingAsyncFuture时候会马上返回一个CompletableFuture那? (其马上返回一个 CompletableFuture对象),并且使用默认的SimpleAsyncTaskExecutor线程池做为异步处理线程,然后异步任务内在具体调用了 AsyncTask实例的dosomthingAsyncFuture

    1.1K10发布于 2019-12-31
  • 来自专栏欢迎加入非凸科技

    Rust异步框架的性能评估

    Zenoh是一个基于async_std的异步零开销发布/订阅、存储/查询和计算框架,Zenoh是用Rust编写的,它利用异步特性来实现高性能和可扩展性。 Zenoh官方评估了三个异步框架(async_std/Tokio/smol)在异步网络上的性能。对每一种方法进行评估,并与Rust标准库提供的等效同步原语提供的基线性能进行比较。 此外,Tokio似乎受到CPU限制(Rust)异步任务的不利影响。 基于这些结果,Zenoh认为他们别无选择,只能继续使用async_std。 目前,Tokio在本地主机上增加了8µs延迟,在网络上增加了10µs延迟。 下午.png

    1.3K20编辑于 2022-04-22
  • 来自专栏centosDai

    ssm框架整合+Ajax异步验证

    SSM框架是目前企业比较常用的框架之一,它的灵活性、安全性相对于SSH有一定的优势。说到这,谈谈SSM和SSH的不同点,这也是企业常考初级程序员的面试题之一。 说到这两套框架的不同,主要是持久层框架Hibernate和MyBatis的不同和控制层框架SpringMVC和Struts2的不同。 xml version="1.0" encoding="UTF-8"? 12:06:51 上午 org.apache.catalina.startup.Catalina start 信息: Server startup in 11060 ms  接下来开始写登录页面做异步验证     pageEncoding="UTF-8"%><!

    1.2K00发布于 2021-05-23
  • 来自专栏小工匠聊架构

    异步编程 - 09 Spring框架中的异步执行_@Async注解异步执行原理&源码解析

    / 3.返回结果 return result; } } 由于AsyncAnnotationExample类中方法doSomething被标注了@Async注解,所以Spring框架在开启异步处理后会对 AsyncAnnotationExample的实例进行代理,代理后的类代码框架如下所示。 到这里所有的执行使用的都是调用线程,调用线程提交异步任务到执行器后就返回了,异步任务真正执行的是具体执行器中的线程。下面我们看看代码5 doSubmit的代码。 其实还有一部分还没讲,前面说了要开始异步处理,必须使用@EnableAsync注解或者task:annotation-driven/来开启异步处理,那么这两个部分背后到底做了什么呢? 小结 我们梳理如何使用Spring框架中的@Async进行异步处理,以及其内部如何使用代理的方式来实现,并且可知使用@Async实现异步编程属于声明式编程,一般情况下不需要我们显式创建线程池并提交任务到线程池

    84930编辑于 2023-09-09
  • 来自专栏影子

    java8 异步api、循环、日期

    java8 异步api、循环、日期 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10801470.html 异步api 对于多任务耗时的业务场景,一般我们会用到线程异步处理 ,在以前我们用 Thread 或者 Runnable 来实现异步,这是oracle官方做法,不过缺点很明显 对于复杂业务场景需要配置线程池 代码繁杂,对于新手容易造成不必要的bug 如果涉及到线程锁或线程通讯就棘手了 现在,java8为我们提供了CompletableFuture类,可以完全解决以上问题。 b,c); String result = (String)any.get(); System.out.println(result); } 循环ForEach java8 concat(String.valueOf(v)))); String str = "hello"; } 新的时间类(LocalDate、LocalDateTime) java8

    1.1K60发布于 2019-07-04
  • 来自专栏Java后端技术栈cwnait

    Spring框架提供的异步执行能力

    一、前言 Spring Framework分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象。 那么Spring框架是如何做到我们dosomthingAsyncFuture时候会马上返回一个CompletableFuture那? (其马上返回一个 CompletableFuture对象),并且使用默认的SimpleAsyncTaskExecutor线程池做为异步处理线程,然后异步任务内在具体调用了 AsyncTask实例的dosomthingAsyncFuture ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setMaxPoolSize(8) ; executor.setCorePoolSize(8); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy

    1.2K40发布于 2019-07-20
  • 来自专栏数据科学(冷冻工厂)

    Python 异步: 使用和查询任务(8

    任务是异步程序的货币。在本节中,我们将仔细研究如何在我们的程序中与它们交互。1. 任务生命周期异步任务具有生命周期。首先,任务是从协程创建的。然后安排在事件循环中独立执行。在某个时候,它会运行。

    1.6K01编辑于 2023-02-09
领券