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
- 阻塞: 方法会一直等待不往下执行就是阻塞。
- 非阻塞:方法不会等待,直接向下执行就是非阻塞。
- 同步:有阻塞功能的方法需要接受返回值就是同步方法。
- 异步:有阻塞功能的方法不需要接受返回值有回调函数就是异步方法。
//BIO: 同步阻塞 ServerSocket
//NIO: 同步非阻塞 ServerSocketChannel
//AIO: 异步非阻塞 AsynchronousServerSocketChannel
6. netty
https://www.jianshu.com/p/b9f3f6a16911
https://www.cnblogs.com/lbhym/p/12753314.html