Vert.x学习笔记-异步编程和响应式系统

2023-10-30 17:45

本文主要是介绍Vert.x学习笔记-异步编程和响应式系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GPT是指Generative Pre-Trained Transformer (生成式预训练Transformer模型),平时在生活和工作中碰到一些问题的时候会去通过这种方式来解决,一般用的比较多的是百度的文心一言

同步阻塞模式

该模式主要的行为特征就是当我们再执行某项操作时,当我们依赖的其它操作没有准备好之前,我们一直等在这里,直到依赖的其它操作完成为止

优点

  • 实现简单,容易理解

缺点

  • 阻塞操作比较浪费资源,在阻塞过程中CPU无法去处理其它操作
  • 并发处理能力比较弱

实例

  • Java中的BIO相关的操作,如 InputStream 、OutputStream等

异步非阻塞模式

其实在Java中,其实我们大部分的异步IO非阻塞模式都是通过Java底层的NIO来实现的,NIO本质是一个同步非阻塞的操作,通过IO多路复用事件循环线程模型来实现

优点

  • 并发处理能力强,对高并发的操作更加友好

缺点

  • 在处理过程中由于涉及到了多线程、回调等操作,处理过程比较复杂,比较难理解

实例

  • Vert.x

响应式系统的特点

  • 可伸缩性 (Elastic:弹性) :应用程序可以以不同数量的实例来进行工作,可以根据不同数量的实例来负载不同的流量。该特点保证了系统的高承载能力

  • 回弹性(Resilient) : 服务的回弹性是指在服务遇到问题时,能够作出反应并恢复正常运行的能力。该特点保证了系统的稳定性。为了实现回弹性,我们通常会采用负载均衡、容错处理、分布式缓存等手段

  • 即时响应 (Responsive): 稳定一致的响应时间(如果可伸缩的系统依赖了不可伸缩的资源,例如单个数据库,那么即时响应就无法实现,因为随着实例的增多,不可伸缩的资源会影响响应时间)

  • 消息驱动(Message-Driven): 异步的消息传递机制(远程过程调用(RPC)属于是阻塞式机制),消息驱动可以把消息分发到更多的实例,使系统具有更好的可伸缩性

响应式系统 : 具备可伸缩性、回弹性、即时响应、消息驱动这些特征的可靠的应用系统

响应式编程: 一种对变化和事件作出响应的变成模式。例如电子表格,当一个单元格发生了变化,依赖于它的使用了计算公式的其它表格将自动重新计算结果, RxJava是一个流行的Java响应式拓展

响应式流: 当系统间存在连续的数据流交换时,就会出现传统的 生产者-消费者 问题,响应式流是一种费阻塞背压方式处理异步数据流的标准,它提供了一种最小化的接口、方法和协议描述必要的操作和实体。在系统之间高并发的大量数据流交互中,通常采用异步的发布-订阅模式,当生产者产生的数据速度远远大于消费者的消费速度,消费者会承受巨大的资源压力而有可能奔溃,此时,需要一种背压机制,即通过控制数据流的速度以防止快速的数据流压垮目标

这篇关于Vert.x学习笔记-异步编程和响应式系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/309582

相关文章

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp