002、响应式,异步阻塞more.md

1. 概念

  • 响应式 Reactive
  • java异步非阻塞框架–Vert.x
  • 事件驱动
  • BIO、NIO和AIO
  • netty

2. 响应式 Reactive

https://developer.aliyun.com/article/1608152

https://blog.csdn.net/weixin_44231544/article/details/140200894

https://zhuanlan.zhihu.com/p/142527123

https://zhuanlan.zhihu.com/p/685046141

https://zhuanlan.zhihu.com/p/343233838

https://blog.51cto.com/u_13540373/9804244

https://blog.csdn.net/weixin_69422396/article/details/135768468

在命令式编程环境中,a:=b+c表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。

一、什么是 Reactive 编程?

Reactive 编程是一种异步编程范式,专注于数据流和事件的传播处理。与传统的阻塞式编程不同,Reactive 编程能够更好地处理高并发和异步操作,特别适合实时系统、流处理以及需要快速响应的场景。

Reactive 编程的核心原则包括:

响应性(Responsive):系统能够快速响应用户请求,并保持低延迟。
弹性(Resilient):系统能够自动处理故障并保持稳定运行。
伸缩性(Scalable):系统可以轻松扩展处理大量并发请求。
消息驱动(Message-Driven):系统通过异步消息传递实现松耦合。
Reactive 编程在微服务架构中非常重要,因为它可以帮助开发者高效地处理复杂的异步场景和并发操作。Vert.x 是一款非常流行的用于构建异步、反应式应用的工具,基于事件驱动的模型,为构建高性能、无阻塞的 Java 应用提供了支持。

二、特点

  • 事件驱动:响应式编程采用事件驱动的处理模式,即当数据或状态发生变化时,会触发相应的事件或消息进行处理。
  • 非阻塞和异步:它允许任务以非阻塞和异步的方式执行,从而提高程序的响应速度和吞吐量。
  • 背压管理:在响应式编程中,系统能够管理来自后端的压力(背压),避免消息积压和系统阻塞。

3. java异步非阻塞框架–Vert.x

Vert.x项目起始于2011年,最开始的名字叫做 node.x,是一个仿照Node.js以Java开发的,基于EventLoop的异步非阻塞编程框架。Eclipse Vert.x是一个事件驱动的JVM上的框架,可以帮助我们构建现代、灵活、可扩展的程序。

https://www.zhihu.com/topic/20169939/hot

https://zhuanlan.zhihu.com/p/407323966

https://www.open-open.com/lib/view/open1430903509085.html

https://blog.csdn.net/zwj1030711290/article/details/132339869

4. 事件驱动

https://www.cnblogs.com/Yunya-Cnblogs/p/13246517.html

https://blog.csdn.net/weixin_46529755/article/details/140209327

事件驱动其实是一种设计模式,其中程序的执行流程不是由预先定义的顺序控制流驱动的,而是由外部事件或者内部事件触发的。在事件驱动里面有很多核心的概念:事件源,事件,事件处理器,事件队列,事件循环

5. BIO、NIO和AIO

https://blog.51cto.com/u_16099186/10349827

https://cloud.tencent.com/developer/article/1131383

https://zhuanlan.zhihu.com/p/389511343

  • 阻塞: 方法会一直等待不往下执行就是阻塞。
  • 非阻塞:方法不会等待,直接向下执行就是非阻塞。
  • 同步:有阻塞功能的方法需要接受返回值就是同步方法。
  • 异步:有阻塞功能的方法不需要接受返回值有回调函数就是异步方法。

image-20241010154236446

//BIO: 同步阻塞 ServerSocket
//NIO: 同步非阻塞 ServerSocketChannel
//AIO: 异步非阻塞 AsynchronousServerSocketChannel

6. netty

https://www.jianshu.com/p/b9f3f6a16911

https://www.cnblogs.com/lbhym/p/12753314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空编程2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值