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:

相关推荐
遇见尚硅谷3 小时前
C语言:20250805学习(文件预处理)
服务器·c语言·学习
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [arm][debug]
linux·运维·arm开发·笔记·学习
wdfk_prog5 小时前
实战教程:从“对象文件为空“到仓库重生——修复 Git 仓库损坏全记录
大数据·网络·笔记·git·学习·elasticsearch·全文检索
小杨爱搞嵌入式5 小时前
【STM32】GPIO的输入输出
c语言·笔记·stm32·单片机·学习
皮蛋sol周5 小时前
嵌入式学习硬件(一)ARM体系架构
arm开发·学习·架构
无名工程师7 小时前
浅谈RNN被Transformer 取代的必然性
rnn·学习·transformer
Virgil1399 小时前
【YOLO学习笔记】YOLOv8详解解读
笔记·学习·yolo
学习网安的doro9 小时前
3a服务器的基本功能1之身份认证
服务器·网络·学习·安全·身份认证·ac
Forever Nore11 小时前
Nginx 学习
运维·学习·nginx
2301_8016730112 小时前
ipv6学习
linux·服务器·学习