vertx的学习总结4之异步数据和事件流
一、异步数据和事件流
1.为什么流是事件之上的一个有用的抽象?
2.什么是背压,为什么它是异步生产者和消费者的基础?
3.如何从流解析协议数据?
1. 答:因为它能够将连续的事件序列化并按照顺序进行处理。通过将事件视为一个连续的流,我们可以更方便地处理和分析事件数据,并能够实时地对事件进行处理和响应。
异步:
package IO;
import io.vertx.core.Vertx;
import io.vertx.core.file.AsyncFile;
import io.vertx.core.file.OpenOptions;
public class Test {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
OpenOptions opts = new OpenOptions().setRead(true);
vertx.fileSystem().open("build.gradle.kts", opts, ar -> { //异步
if (ar.succeeded()) {
AsyncFile file = ar.result();
file.handler(System.out::println)
.exceptionHandler(Throwable::printStackTrace)
.endHandler(done -> {
System.out.println("\n--- DONE");
vertx.close();
});
} else {
ar.cause().printStackTrace();
}
});
}
}
2. 答:背压是一种机制,事件的消费者可以向事件的生产者发出信号,表明它正在以比消费者处理事件的速度更快的速度发出事件。在响应式系统中,背压用于暂停或减慢生产者的速度,以便消费者避免在无限的内存缓冲区中积累未处理的事件,从而可能耗尽资源。
为了理解为什么背压对异步流很重要,让我们以用于下载Linux发行版映像的HTTP服务器为例,并考虑在p中没有任何背压管理策略的实现

3:

vertx的学习总结4之异步数据和事件流的更多相关文章
- JavaScript学习总结【10】、DOM 事件
DOM 事件是 JS 中比较重要的一部分知识,所谓事件,简单理解就是用户对浏览器进行的一个操作.事件在 Web 前端领域有很重要的地位,很多重要的知识点都与事件有关,所以学好 JS 事件可以让我们在J ...
- 【转载】salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable
salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable 本篇知识参考:https://developer.salesforce.com/trailhead/for ...
- IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)
IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSX ...
- flask+sqlite3+echarts3+ajax 异步数据加载
结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...
- ASP.NET MVC 5 学习教程:控制器传递数据给视图
原文 ASP.NET MVC 5 学习教程:控制器传递数据给视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字 ...
- [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading
上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...
- echarts异步数据加载(在下拉框选择事件中异步更新数据)
接触echarts 大半年了,从不会到熟练也做过不少的图表,隔了一段时间没使用这玩意,好多东西真心容易忘了.在接触echarts这期间也没有总结什么东西,今天我就来总结一下如何在echart中异步加载 ...
- R学习笔记(4): 使用外部数据
来源于:R学习笔记(4): 使用外部数据 博客:心内求法 鉴于内存的非持久性和容量限制,一个有效的数据处理工具必须能够使用外部数据:能够从外部获取大量的数据,也能够将处理结果保存.R中提供了一系列的函 ...
- [20190213]学习bbed-恢复删除的数据.txt
[20190213]学习bbed-恢复删除的数据.txt --//以前也做过类似测试,当时在用bbed做verify时错误都不处理,当时的想法就是能读出就ok了.--//而且当时也做成功,纯粹是依葫芦 ...
- 学习Angularjs向数据库添加数据
今天学习angularjs向数据库添加数据. 学习此篇,得从以往几篇开始,因为那还有创建数据表等演示. 现在来创建一个添加的存储过程: SET ANSI_NULLS ON GO SET QUOTED_ ...
随机推荐
- 基于C#的消息处理的应用程序 - 开源研究系列文章
今天讲讲基于C#里的基于消息处理的应用程序的一个例子. 我们知道,Windows操作系统的程序是基于消息处理的.也就是说,程序接收到消息代码定义,然后根据消息代码定义去处理对应的操作.前面有一个博文例 ...
- mybatis-plus+nacos配置中心和服务发现保姆级教程
默认你已经看了我的Mybatis-Plus+Mysql的教程,现在有了一个简单的项目如下(之前的教程: https://www.cnblogs.com/leafstar/p/17638741.htm ...
- 如何做一个api接口?
程序员是公司里的技术岗位,是产品经理最亲密的伙伴.但是程序员可以理解产品经理的工作,产品经理却不一定理解程序员的工作,所以经常被无良程序员欺骗.从API接口这个维度,分析API的概念以及为什么要了解它 ...
- API接口的技术的概念
当今互联网技术的发展越来越快,越来越多的网站和应用程序需要获取外部数据来提供更好的服务和用户体验,这就需要使用API接口.本文将会对API接口的概念.类型以及如何调用API接口进行简要介绍. 一.什么 ...
- 掌握Go的运行时:从编译到执行
讲解Go语言从编译到执行全周期流程,每一部分都会包含丰富的技术细节和实际的代码示例,帮助大家理解. 关注微信公众号[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+ ...
- 入门篇-其之一-第一个Java程序
️注意: 本文中包含实际操作,需要安装JDK.如果需要安装JDK,请按照这篇文章的步骤进行安装:点我查看JDK安装教程 小白可以多看几遍这篇文章,多敲几次代码 前面我们已经安装了JDK,接下来就是写一 ...
- Windows 某些软件显示"口口"解决办法
和乱码不同,文字变成"口口",一般是语言环境出错了. 解决办法 开始->控制面板->区域 (时钟.语言和区域)->区域:更改设置->管理->非 Uni ...
- 如何理解DDD中的值对象
引言 实体和值对象是领域驱动设计中的两个重要概念.相对实体而言,值对象更加抽象,理解起来也更晦涩一些.那么该如何理解值对象?我们先来看一下<实现领域驱动设计>书中对值对象的定义: 值对象 ...
- 全网最详细Java-JUC
Java-JUC ⓪基础 ❶进程&线程 进程:指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间. 线程:比进程更小的执行单位,一个进程可以启动多个线程,每条线程并行执行不同的任务 ...
- 四千行代码写的桌面操作系统GrapeOS完整代码开源了
简介 学习操作系统原理最好的方法是自己写一个简单的操作系统. GrapeOS是一个非常简单的x86多任务桌面操作系统,源代码只有四千行,非常适合用来学习操作系统原理. 源码地址:https://git ...