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();
            }
        });
    }

}
  1. 答:背压是一种机制,事件的消费者可以向事件的生产者发出信号,表明它正在以比消费者处理事件的速度更快的速度发出事件。在响应式系统中,背压用于暂停或减慢生产者的速度,以便消费者避免在无限的内存缓冲区中积累未处理的事件,从而可能耗尽资源。

为了理解为什么背压对异步流很重要,让我们以用于下载Linux发行版映像的HTTP服务器为例,并考虑在p中没有任何背压管理策略的实现

3:

相关推荐
y = xⁿ11 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
HugoStudio_SWAN14 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
sakiko_15 小时前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
存在morning17 小时前
【Paimon 学习笔记 三】工作流程:Paimon 的批写、流写、批读与流读
笔记·学习
老当益壮梁奶奶18 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
凯尔萨厮20 小时前
Java学习笔记十(注解)
java·笔记·学习
JoannaJuanCV20 小时前
VLM学习-SFT(监督微调)
深度学习·学习·机器学习·大模型·视觉大模型·vlm·视觉编码器
程序员大雄学编程21 小时前
微积分43. 无穷积分入门:从概念到Python实战可视化
开发语言·python·学习·微积分
一条破秋裤1 天前
STM32 学习笔记:GPIO 输出实验——LED 闪烁、流水灯与蜂鸣器
笔记·stm32·学习
2601_962073971 天前
【MySQL】全面学习数据库查询技巧:查询指令深度学习指南
数据库·学习·mysql