Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >响应式编程

响应式编程

作者头像
春哥大魔王
发布于 2019-11-19 04:50:51
发布于 2019-11-19 04:50:51
1.5K0
举报

写在前面

之前发了一篇Reactor到WebFlux,WebFlux整套技术栈是由Spring提供的,Pivotal致力于解决java在云平台上的工作负载。

erlang这种80年代的语言就提出了响应式编程模型,为什么最近流行起来了?

原因有:硬件多核cpu,虚拟化云计算,软件系统可以轻易获得更高性能,系统需要更快的响应,系统规模变得超载,需要更好的利用系统资源。

响应式宣言:更灵活的系统,能够容忍失败,更好地处理失败事件,更有效。

响应式编程特点

响应式编程不会让你的系统更快,但可以让你的系统更加高效,是一种非阻塞编程模型,面向未来的编程模型。

响应式编程在进行同步操作时,不会占用线程,在传统的servlet模型时,在进行跨服务调用时,等待响应结果时,依然会占用线程,对于内存而言线程是沉重的。

在同一条线程中需要等待和返回或者在不切换线程情况下执行一系列操作,这种场景下响应式编程会比较高效,框架会优化尽量让你的操作在一个线程上执行。

异步编程和响应式编程的区别:他们应用于相同领域,不同在于响应式编程有pull,push,和背压。

响应式真正意义在于打破servlet api的单线程连接,响应式编程在web层的意义在于能更合理的使用线程。

响应式编程和函数式编程一样,应该在合适的地方运用而不是强行使用它。

为了解决背压在网络中的应用,和Rsocket进行了合作,Rsocket是为了替代http信息和指令的异步传递。

响应式编程框架思想

rxJava2和Spring Reactor开发是一拨人,rxJava是对于2014年响应式编程标准的实现,Spring Reactor是对于2017年响应式编程标准的实现,rxJava推荐1.8之前使用,也只部分支持响应式编程,Spring Reactor推荐1.8+使用,Spring Reactor是真正的非阻塞响应式编程。

Mono和Flux类似于一个小票,在调用服务得到结果之前,不会阻塞,可以异步在完成任务之后通过小票获取结果返回响应。

响应式编程四种角色:publisher,subscriber,processor,subscription。

publisher发消息 —> subscription订阅消息 —> subscriber消费消息。

面对失败,传统方式通过try catch,响应式编程将失败看作一个事件,需要响应处理,其他任务还需要继续。

响应式编程中发布的事件只有对他感兴趣的订阅者才会处理,消息驱动是先订阅再处理。

设计模式的选择:观察者模式,迭代器模式,状态管理和持久模式,流程模式,消息流模式等。

响应式和微服务关系:利用消息驱动,异步非阻塞性质。

背压就是断路器。

写在后面

响应式编程是面向未来的编程模式,未来的世界是过载的,通过响应式编程可以最大限度的发挥系统的资源能力。

数据库存储还没有支持响应式,因为他们还是具体响应式io实现,jdbc是一种阻塞命令式的api,没法在异步编程中使用,社区有R2DBC响应式的jdbc。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 春哥talk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ARM 版 OpenEuler 22.03 部署 KubeSphere v3.4.0 不完全指南
本文介绍了如何在 openEuler 22.03 LTS SP2 aarch64 架构服务器上部署 KubeSphere 和 Kubernetes 集群。我们将使用 KubeSphere 开发的 KubeKey 工具实现自动化部署,在三台服务器上实现高可用模式最小化部署 Kubernetes 集群和 KubeSphere。
运维有术
2023/10/18
8310
ARM 版 OpenEuler 22.03 部署 KubeSphere v3.4.0 不完全指南
基于 KubeSphere 玩转 Kubernetes 第二季|KubeKey 扩容 Kubernetes v1.24 Worker 节点实战
本文是 openEuler 22.03 LTS SP2 基于 KubeKey 扩容 Kubernetes Worker 节点实战一文的更新版。
运维有术
2023/07/20
4080
基于 KubeSphere 玩转 Kubernetes 第二季|KubeKey 扩容 Kubernetes v1.24 Worker 节点实战
手把手教你离线部署 KubeSphere v4.1.2 和 k8s v1.30.6,超详细指南!
今天分享的主题是:如何在离线环境部署 Kubernetes v1.30.6 和 KubeSphere v4.1.2 高可用集群。
运维有术
2025/01/22
1.2K2
手把手教你离线部署 KubeSphere v4.1.2 和 k8s v1.30.6,超详细指南!
基于 KubeSphere 玩转 k8s 第二季|openEuler 22.03 安装 KubeSphere 实战入门
基于 KubeSphere 玩转 K8s 第二季系列文档,基于开源国产化操作系统 openEuler 全新打造,也算是在推进国产化浪潮、CentOS搞事情不能用等综合原因下的一种新的尝试。
运维有术
2023/07/16
9280
基于 KubeSphere 玩转 k8s 第二季|openEuler 22.03 基于 KubeSphere 安装 k8s v1.24 实战入门
本文是 openEuler 22.03 LTS SP2 基于 KubeSphere 安装 Kubernetes 的更新版。
运维有术
2023/07/18
8690
基于 KubeSphere 玩转 k8s 第二季|openEuler 22.03 基于 KubeSphere 安装 k8s v1.24 实战入门
CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战
上一期,我们实战讲解了使用 KubeKey v3.0.10 自动化部署 3 Master 和 1 Worker 的 Kubernetes 集群和 KubeSphere。
运维有术
2023/08/25
3680
CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战
手把手教你离线部署 KubeSphere v4.1.2 和 k8s v1.30.6,超详细指南!
今天分享的主题是:如何在离线环境部署 Kubernetes v1.30.6 和 KubeSphere v4.1.2 高可用集群。
运维有术
2025/01/22
1.1K0
手把手教你离线部署 KubeSphere v4.1.2 和 k8s v1.30.6,超详细指南!
KubeSphere 最佳实战:KubeKey 扩容 Kubernetes Worker 节点实战指南
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 KubeKey 扩容 Kubernetes Worker 节点实战指南。
运维有术
2024/07/16
4011
KubeSphere 最佳实战:KubeKey 扩容 Kubernetes Worker 节点实战指南
KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门
上一期实战课程,我们模拟真实的生产环境实战演示了如何使用 KubeKey 将新增 Worker 节点添加到已有的 Kubernetes 集群 。最终我们部署完成了一套 3 Master 和 3 Worker 节点的 Kubernetes 集群。
运维有术
2023/07/21
1.4K2
KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门
KubeKey 升级 KubeSphere 和 Kubernetes 补丁版本实战指南
KubeSphere v3.4.1 已于 2023 年 11 月 10 日正式发布,升级说明详见 Releases-v3.4.1 发布说明。该发布版修复了 v3.4.0 中存在的许多问题,建议所有人更新。
运维有术
2023/12/05
5520
KubeKey 升级 KubeSphere 和 Kubernetes 补丁版本实战指南
41 张高清大图带你抢先体验 KubeSphere v3.4.0 和 Kubernetes v1.27
首先声明,我不是标题党,本文初始目标是要体验用 KubeKey v3.0.9 部署最新版的 KubeSphere v3.4.0 和 Kubernetes v1.27,无奈部署过程中发现了自认为的 Bug,进行不下去了,不得不改换 Kubernetes v1.26。
运维有术
2023/07/29
1.7K1
41 张高清大图带你抢先体验 KubeSphere v3.4.0 和 Kubernetes v1.27
KubeSphere 最佳实战:征服 Docker 镜像访问限制:单节点 KubeSphere v3.4.1 部署攻略
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。
运维有术
2024/07/29
4490
KubeSphere 最佳实战:征服 Docker 镜像访问限制:单节点 KubeSphere v3.4.1 部署攻略
KubeSphere 最佳实战:KubeKey 助力 Kubernetes 扩容控制节点实战指南
在近期的技术分享中,我们实战讨论了Kubernetes 集群 Worker 节点的扩容。文章发布后,我收到了社区成员的反馈,询问控制节点的扩容是否可行。我的回答是:绝对可以。
运维有术
2024/07/20
1640
KubeSphere 最佳实战:KubeKey 助力 Kubernetes 扩容控制节点实战指南
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要。对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解决方案是关键的选型决策。目前,Ceph、GlusterFS、NFS、Longhorn 和 openEBS 等解决方案已在业界得到广泛应用。
运维有术
2024/08/07
4120
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
KubeSphere 最佳实战:一文搞定 KubeKey v3.1.1 离线部署 KubeSphere v3.4.1 和 Kubernetes v1.28
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 一文搞定 KubeKey v3.1.1 离线部署 KubeSphere v3.4.1 和 Kubernetes v1.28。
运维有术
2024/05/21
1K2
KubeSphere 最佳实战:一文搞定 KubeKey v3.1.1 离线部署 KubeSphere v3.4.1 和 Kubernetes v1.28
Zookeeper On Kubernetes 运维小白实战入门
今天我们的实战内容采用场景模拟的形式,模拟真实运维工作中,必然会遇到的一个场景。什么场景,还必然会,接着往下看...!!!
运维有术
2023/08/09
1.3K0
Zookeeper On Kubernetes 运维小白实战入门
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
备受瞩目的 KubeSphere v4.1.2 已经正式官宣发布,该版本带来了一个重大优化:增加默认的扩展组件仓库。
运维有术
2024/11/12
7600
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
KubeSphere 最佳实战:KubeKey v3.1.1 部署 KubeSphere v3.4.1 和 Kubernetes v1.28 实战指南
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 KubeKey v3.1.1 部署 KubeSphere v3.4.1 和 Kubernetes v1.28 实战指南。
运维有术
2024/05/22
4200
KubeSphere 最佳实战:KubeKey v3.1.1 部署 KubeSphere v3.4.1 和 Kubernetes v1.28 实战指南
KubeSphere 最佳实战:KubeKey 部署 Kubernetes v1.28.8 实战
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 KubeKey 部署 Kubernetes v1.28.8 实战。
运维有术
2024/04/25
6580
KubeSphere 最佳实战:KubeKey 部署 Kubernetes v1.28.8 实战
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
备受瞩目的 KubeSphere v4.1.2 已经正式官宣发布,该版本带来了一个重大优化:增加默认的扩展组件仓库。
运维有术
2024/11/11
3220
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
推荐阅读
ARM 版 OpenEuler 22.03 部署 KubeSphere v3.4.0 不完全指南
8310
基于 KubeSphere 玩转 Kubernetes 第二季|KubeKey 扩容 Kubernetes v1.24 Worker 节点实战
4080
手把手教你离线部署 KubeSphere v4.1.2 和 k8s v1.30.6,超详细指南!
1.2K2
基于 KubeSphere 玩转 k8s 第二季|openEuler 22.03 安装 KubeSphere 实战入门
9280
基于 KubeSphere 玩转 k8s 第二季|openEuler 22.03 基于 KubeSphere 安装 k8s v1.24 实战入门
8690
CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战
3680
手把手教你离线部署 KubeSphere v4.1.2 和 k8s v1.30.6,超详细指南!
1.1K0
KubeSphere 最佳实战:KubeKey 扩容 Kubernetes Worker 节点实战指南
4011
KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门
1.4K2
KubeKey 升级 KubeSphere 和 Kubernetes 补丁版本实战指南
5520
41 张高清大图带你抢先体验 KubeSphere v3.4.0 和 Kubernetes v1.27
1.7K1
KubeSphere 最佳实战:征服 Docker 镜像访问限制:单节点 KubeSphere v3.4.1 部署攻略
4490
KubeSphere 最佳实战:KubeKey 助力 Kubernetes 扩容控制节点实战指南
1640
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
4120
KubeSphere 最佳实战:一文搞定 KubeKey v3.1.1 离线部署 KubeSphere v3.4.1 和 Kubernetes v1.28
1K2
Zookeeper On Kubernetes 运维小白实战入门
1.3K0
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
7600
KubeSphere 最佳实战:KubeKey v3.1.1 部署 KubeSphere v3.4.1 和 Kubernetes v1.28 实战指南
4200
KubeSphere 最佳实战:KubeKey 部署 Kubernetes v1.28.8 实战
6580
33 张高清大图,带你玩转 KubeSphere v4.1.2 部署与扩展组件安装
3220
相关推荐
ARM 版 OpenEuler 22.03 部署 KubeSphere v3.4.0 不完全指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档