首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏johnhuster

    反应式编程之flux concatmap

    本文基于project reactor,,reactor-bom版本为Dysprosium-SR4,flux concatMap方法作用是将多个publisher组合起来,然后依次消费,消费的顺序跟传入的顺序相同,消费完一个publisher后才开始消费下一个publisher,下面看个例子

    73110编辑于 2022-03-28
  • 来自专栏响应式编程

    关于“反应式宣言”

    Reactive Manifesto 的中文版都已经是“反应式宣言”了。看来公众号也要择机改名了。 反应式宣言英文版:https://www.reactivemanifesto.org/ 反应式宣言中文版:https://www.reactivemanifesto.org/zh-CN 前几年开始看到这些没有一行代码的宣言感觉好飘渺 反应式宣言最关键的四个单词:Responsive、Resilient、Elastic、Message Driven。 反应式系统依赖异步的消息传递机制在组件间建立边界,这就保证了组件之间的松耦合、隔离、以及位置透明。【感觉官方中文版翻译的有问题 组件之间的松耦合、隔离、位置透明是实现回弹性、回弹的条件。

    85020编辑于 2022-05-30
  • 来自专栏johnhuster

    反应式编程之Mono.defer

    ); } m1.subscribe(System.out::println); m2.subscribe(System.out::println); } 输出结果 Fri Feb 07 10 :22:51 GMT+08:00 2020 Fri Feb 07 10:22:51 GMT+08:00 2020 Fri Feb 07 10:22:51 GMT+08:00 2020 Fri Feb 07 10:22:56 GMT+08:00 2020 我们可以看到,创建了两个数据源,一个使用Mono.just创建,一个用Mono.defer创建,然后分别通过lambda表达式订阅这两个publisher ,可以看到两个输出的时间都是10:22:51,延迟5秒钟后重新订阅,Mono.just创建的数据源时间没变,但是Mono.defer创建的数据源时间相应的延迟了5秒钟,原因在于Mono.just会在声明阶段构造

    1.2K10编辑于 2022-03-28
  • 来自专栏TopCoder

    从Redis异步到反应式架构

    反应式架构 反应式架构中的反应式就是 Reactive,分析反应式架构之前,先了解下常见的异步化处理机制:线程池、事件驱动、消息驱动等。 线程池:业务中将耗时操作交给线程池来处理,不影响当前线程。 反应式架构,从低纬度来说,比如针对网络通信这块,可以通过Reactor机制(比如Java的NIO/Selector等)来完成异步处理;从高纬度来说,就是在一整个业务链路中,涉及到可能造成阻塞的环节都改造成异步处理 目前针对反应式架构,业界已经有一些对应的开源解决方案,比如Java 8 已经逐渐普及,因为它包含对 Lambda 的支持,这让开发者对 Lambda 的接受度大大提高;同时 Reactive 相关的业务框架在业界已有成熟的实现 最后,包括 Java 9(引入 Reactive Sreams 规范 API)、Spring 5(引入 Reactor/WebFlux)、Spring Boot 2 都开始拥抱 Reactive,说明反应式编程的确是趋势 更多的反应式架构可参考:https://www.infoq.cn/article/2upHTmd0pOEUNmhY5-Ay

    1.2K20发布于 2019-11-06
  • 来自专栏CSDN技术头条

    Java 平台反应式编程(Reactive Programming)入门

    > $('#total').html(total)) }); </script> </head> <body>

    商品1,单价10 <input type="number" value="1" data-price="<em>10</em>">
    商品2,单价 在下面的代码中,Flux.interval 用来生成递增的序列,其中第一个 Flux 的时间间隔是100毫秒,第二个 Flux 的时间间隔是10毫秒,并有一秒的延迟。 bufferTimeout 的设置是最多10个元素和最长500毫秒。由于生成的流是无限的,我们使用 take(3) 来取前面3个元素。 第三个 List 则包含10个元素。

    9.4K60发布于 2018-03-26
  • 来自专栏咖啡拿铁

    反应式编程在微服务下的重生

    反应式编程在好几年前就已经出现了,它原理是基于反应式编宣言。但是,由于反应式编程推广速度比较缓慢,导致很多人现在对其不是很了解。 反应式编宣言: https://www.reactivemanifesto.org 本文将从微服务角度阐述反应式编程,在深入解读之前,先为大家简单地介绍一些反应式编程的基本概念。 组成 反应式编程的宣言是指导框架,具体的实现是有不同的版本。但是,它们都有两个共同的特征。 异步编程,非阻塞流:这是实现反应式编程的基础。 ? 但是,很多人把反应式编程和函数式编程混淆了。 这个时候,反应式编程的优点就体现出来了。它不管什么原因,处理不了就不请求发送。而且是立刻的。 微服务环境对反应式编程的新要求 ---- 不能以为反应式编程好像就是可以在微服务环境下安枕无忧。 这对很多现有的反应式编程框架都是挑战。 与云原生环境的整合 一些早期反应式编程框架,有自己的集群管理功能。而且这些功能,是以胖SDK的方式捆绑在反应式编程基本功能上的。

    1K20发布于 2019-10-13
  • 来自专栏kl的专栏

    为什么使用Reactive之反应式编程简介

    因为我们不是很了解反应式编程,所以会有这种感觉。没关系,下面看看反应式编程集大者Reactor是怎么阐述反应式编程的。   范例的一个实现,可以概括为: 反应式编程是一种涉及数据流和变化传播的异步编程范例。 反应式编程范例通常以面向对象的语言呈现,作为Observer设计模式的扩展。 Callback和Future的这些风险是相似的,并且是反应式编程与该Publisher-Subscriber对的关系。 想象一个buffer 运算符,它将元素分组为10个。如果订阅者请求1个缓冲区,则源可以生成10个元素。

    1K30编辑于 2023-11-18
  • 来自专栏一个会写诗的程序员的博客

    什么是反应式编程? 这里有你想要了解的反应式编程 (Reactive programming)

    Why 反应式编程的核心是基于事件流、无阻塞、异步的,使用反应式编程不需要编写底层的并发、并行代码。并且由于其声明式编写代码的方式,使得异步代码易读且易维护。 当Spring团队思考如何向Web层添加反应式编程模型时,如果不在Spring MVC中做大量工作,显然很难实现这一点。这会在代码中产生分支以决定是否要以反应式的方式来处理请求。 如果这样做,本质上就是将两个Web框架打包成一个,依靠if语句来区分反应式和非反应式。 与其将反应式编程模型硬塞进Spring MVC中,还不如创建一个单独的反应式Web框架,并尽可能多地借鉴Spring MVC。这样,Spring WebFlux就应运而生了。 反应式宣言(The Reactive Manifesto) 反应式系统是: 响应:该系统及时响应,如果在所有可能的。

    6.3K42发布于 2020-03-20
  • 来自专栏Android群英传

    Kotlin上的反应式流-SharedFlow和StateFlow

    点击上方蓝字关注我,知识会给你力量 在本教程中,你将学习Kotlin中的反应式流,并使用两种类型的流——SharedFlow和StateFlow,构建一个应用程序。 多年来,RxJava一直是反应式流的标准。现在,Kotlin提供了自己的反应式流实现,称为Flow。与RxJava一样,Kotlin Flow可以创建数据流并对其做出反应。 Kotlin Flow为反应式流提供了更直接和具体的实现。 Getting Started 你将在一个名为CryptoStonks5000的应用程序上工作。这个应用程序有两个界面。

    2.8K60发布于 2021-11-19
  • 来自专栏A周立SpringCloud

    反应式编程在微服务下的重生

    组成 反应式编程的宣言是指导框架,具体的实现是有不同的版本。但是,它们都有两个共同的特征。 异步编程,非阻塞流:这是实现反应式编程的基础。 ? 但是,很多人把反应式编程和函数式编程混淆了。 所以,用不是很准确的方式总结反应式编程的主要部分,就是异步编程、非阻塞流和背压。 这个时候,反应式编程的优点就体现出来了。它不管什么原因,处理不了就不请求发送。而且是立刻的。 微服务环境对反应式编程的新要求 ---- 不能以为反应式编程好像就是可以在微服务环境下安枕无忧。 这对很多现有的反应式编程框架都是挑战。 与云原生环境的整合 一些早期反应式编程框架,有自己的集群管理功能。而且这些功能,是以胖SDK的方式捆绑在反应式编程基本功能上的。 总结 ---- 最近的趋势告诉我们,在分布式应用架构变成熟的过程中,反应式编程的作用慢慢被重新认识。

    1K20发布于 2019-05-14
  • 来自专栏深度学习与python

    反应式单体:如何从 CRUD 转向事件溯源

    产品的愿景逐渐朝反应式特性演化,这意味着要在正确的背景下对多个领域事件作出实时反应。但是,问题在于我们的单体应用被设计成了一个典型的 CRUD 系统,也就是在状态发生变化时同步运行业务逻辑。 客户支持平台是实践反应式能力的一个很好的用例。因为客户代理会处理来自不同渠道的案例,在这个过程中,很容易错失对高优先级案例的跟踪。 在讨论我们采取了哪些行动将单体应用变得具有反应式特征之前,我想要描述一下如果没有任何的遗留代码,能够重新开始的情况下,理想的解决方案是什么。 如何通过重新划分事件来驱动反应式应用。 如何重新处理命令的历史,确保在响应事件的反应式服务不停机的情况下重建事件。

    1.2K20发布于 2021-11-11
  • 来自专栏vivo互联网技术

    反应式编程 RxJava 设计原理解析

    duO1pAfaKUI2_x_GVvZHMg 作者:Yunjie Ma 一、ReactiveX 与 RxJava ReactiveX 的全称为Reactive Extension,一般缩写为 Rx,即我们平常所说的反应式编程

    1.6K20发布于 2020-04-27
  • 来自专栏IT技术精选文摘

    使用Lagom和Java构建反应式微服务系统

    介绍 Lagom是一个帮助您构建反应式微服务的框架。 大多数微服务框架着重于帮助您构建脆弱的单实例微服务,根据定义,这些微服务不具可扩展性或不具有弹性。 反应式微服务架构:分布式系统的设计原则,JonasBonér介绍了现代系统背后的基本原理以及如何构建。 (JonasBonér) 反应式微服务需求 看看基于微服务的架构,您很快就意识到他们有各种需求需要满足。

    2.5K50发布于 2018-01-30
  • 来自专栏一个会写诗的程序员的博客

    【Kotlin 反应式编程】第1讲 你好,Reactive Programming

    【Kotlin 反应式编程】第1讲 你好,Reactive Programming ? 1.创建 Gradle Kotlin 项目 ? testImperative1() { val x1 = 7 val flag1 = isOdd(x1) println("flagA1:$flag1") val x2 = 10 fun testImperative2() { var x = 7 val flag = isOdd(x) println("flagB1:$flag") x = 10 { println("flagC1:${flag(7)}") } val t2 = Thread { println("flagC2:${flag(10 val t1 = Thread { subject.onNext(7) } val t2 = Thread { subject.onNext(10)

    71820发布于 2018-08-17
  • 来自专栏信数据得永生

    Java 设计模式最佳实践:六、让我们开始反应式

    这一章将描述反应式编程范式,以及为什么它能很好地适用于带有函数元素的语言。读者将熟悉反应式编程背后的概念。我们将介绍在创建反应式应用时从观察者模式和迭代器模式中使用的元素。 这些示例将使用反应式框架和名为 RxJava(版本 2.0)的 Java 实现。 我们将讨论以下主题: 什么是反应式编程? 下面的代码显示了如何在 10 个数字中创建两个bundle,一个有 6 个,另一个有其余 4 个: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvax2Bwa-1657721282490 发出聚合每个源的最新值的项 withLatestFrom:将给定的可观察对象合并到当前实例中 下面的示例(永远运行)显示了组合两个具有不同时间跨度的间隔可观察对象的结果—第一个每 6 毫秒发射一次,另一个每 10 该函数应用于给定的可观测项发出的多个项的组合 zipWith:发出一个指定的组合器函数的结果,该组合器函数应用于这个和给定的可观察对象的组合 下面的代码显示了如何基于字符串连接组合器将zip应用于从 1 到 5 到 10

    2.7K20编辑于 2022-09-08
  • 来自专栏一个会写诗的程序员的博客

    《Kotlin 反应式编程》使用 RxKotlin 实现一个极简的 http DSL ( Reactive Programming Using Rx Kotlin )《Kotlin 反应式编程》使用

    《Kotlin 反应式编程》使用 RxKotlin 实现一个极简的 http DSL Reactive Programming Using Rx Kotlin https://github.com/ReactiveX = null var timeout: Long = 10 internal var success: (String) -> Unit = {} internal var method 请求方法,例如 Get、Post 等,不区分大小写 body 请求头,为了简单起见我们直接使用 OkHttp的RequestBody类型 timeout 超时时间ms,我们设置了默认值是10s

    2.2K20发布于 2018-08-17
  • 来自专栏Play & Scala 技术分享

    反应式架构(1):基本概念介绍 顶

    PayPal凭借其基于Akka构建的反应式平台squbs,仅使用8台2vCPU虚拟机,每天可以处理超过10亿笔交易,与基于Spring实现的老系统相比,代码量降低了80%,而性能却提升了10倍。 举个例子来说,对于一个10核服务器,使用同步方式抓取10个网页,每个网页耗时1秒,则总耗时为10秒;如果采用异步方式,10个抓取任务分别在各自的线程上执行,总耗时只有1秒。 例如系统每秒接收1000个请求,每个请求的平均处理时间是10ms, 则合适的数据库连接池大小应该为10。 也就是说系统可以同时处理10个请求。 假设为了应付峰值情况,我们将线程池大小调整为50, 由于连接池大小仍为10,所以会导致大量线程在等待可用连接, 我们需要再次增大连接池大小以改善系统性能。 假设峰值请求是10, 000tps,并且会持续10秒, 那么在这10秒内系统也可以看做是稳定状态, 那么根据利特尔法则,就需要部署1250台计算节点。

    2.1K10发布于 2019-12-12
  • 来自专栏IT进修之路

    关系数据构建反应式的spring驱动程序

    先说说什么是响应式         响应式编程或反应式编程(英语:Reactive programming)是一种面向数据流和变化传播的编程范式,直白的说就是:将变化的值通过数据流进行传播。 反应式架构文章 WebFlux定点推送、全推送灵活websocket运用【推】 WebFlux前后端分离 -- 数据响应式展示 【推】 webflux+redis/mongodb提供响应式API【推】

    1.2K20发布于 2020-05-21
  • 来自专栏wxilejun的专栏

    Reactive UI -- 反应式编程UI框架入门学习 (转载非原创)

    推荐一个反应式编程的MVVM跨平台框架。 反应式编程 反应式编程是一种相对于命令式的编程范式,由函数式的组合声明来构建异步数据流。要理解这个概念,可以简单的借助Excel中的单元格函数。 图片 上图中,A1=B1+C1,无论B1和C1中的数据怎么变化,A1中的值都会自动变化,这其中就蕴含了反应式/响应式编程的思想。 反应式编程对于数据的处理不关心具体的数据值是多少,只要构建出数据的函数式处理,就能并行的异步处理数据流。 Reactive UI Reactive UI 是一种反应式编程的跨平台MVVM框架,支持Xamarin Forms、Xamarin.iOS、Xamarin.Android、Xamarin.Mac、Tizen

    3.4K20编辑于 2022-08-09
  • 来自专栏Java编程技术

    如何从JDK8 Stream转换为反应式流?

    反应式编程实现比如rxjava或者reactor是有丰富的流操作符,所以调研了下如何把JDK8 Stream转换为反应式流。 如果不想实现上面繁琐代码,我们可以考虑吧JDK 8Stream切换到反应式实现框架比如Reactor或者Rxjava,因为后者有丰富的流操作符。

    91110发布于 2020-07-03
领券